Compartición de archivos
Servidores de archivos
Este capítulo trata de Linux con rol de servidor Samba y NFS.
1. Configuración de un servidor Samba
El objetivo de esta sección es de enseñarle a:
-
configurar un servidor Samba para clientes de tipos diferentes;
-
configurar Samba como servidor autónomo o integrado en un dominio Active Directory;
-
configurar comparticiones simples CIFS y comparticiones de impresoras;
-
configurar un cliente Linux del servidor Samba. Resolución de problemas de instalación.
a. Competencias principales
-
Documentación de Samba 4.
-
Archivos de configuración de Samba 4.
-
Herramientas de Samba 4.
-
Montar recursos compartidos CIFS en Linux.
-
Asociar cuentas de usuario Windows a cuentas de usuarios Linux.
-
Seguridad a nivel del usuario, recursos compartidos y Active Directory.
b. Elementos empleados
-
smbd, nmbd, winbindd
-
smbcontrol, smbstatus, testparm, smbpasswd, nmblookup
-
samba-tool
-
net
-
smbclient
-
mount.cifs
-
/etc/samba/
-
/var/log/samba/
2. Configuración de un servidor NFS
El objetivo de esta sección es de enseñarle a:
-
exportar los sistemas de archivos con NFS, gestionar las restricciones de acceso, montar un sistema de archivos NFS en un cliente y proteger NFS.
a. Competencias principales
-
Archivos de configuración NFS versión 3.
-
Herramientas de NFS.
-
Restricciones de acceso a ciertas máquinas y/o ciertas subredes.
-
Opciones de montaje en el servidor y en los clientes.
-
TCP Wrappers.
-
Conocimientos...
Configuración de un servidor Samba
Samba es un conjunto de software libre que permite a los sistemas Linux y Unix compartir recursos de discos e impresoras con los sistemas Windows, usando el protocolo de compartición de recursos SMB.
El nombre del programa, SaMBa, está derivado del protocolo SMB (Server Message Block) usado por Microsoft para la compartición de recursos.
CIFS (Common Internet File System) es un derivado del protocolo SMB, desarrollado por Microsoft pero que fue abandonado. Samba es compatible con CIFS y con SMB.
En Linux, Samba está constituido por un conjunto de programas, que implementan un servidor de compartición de recursos, un cliente, así como herramientas comunes al servidor y al cliente. Lo proporcionan varios paquetes de software independientes: samba para el programa del servidor, samba-client (o smbclient) para el programa del cliente y samba-common (y samba-common-tools o samba-common-bin) para las herramientas comunes a los dos.
La versión principal actual de Samba es la versión 4.
La documentación de Samba se encuentra disponible en el sitio de Samba: https://wiki.samba.org/
Ejemplos
Instalación de Samba (servidor y cliente) en una distribución de tipo Red Hat.
dnf install samba
[...]
Instalado:
python3-dns-1.15.0-10.el8.noarch python3-ldb-2.3.0-2.el8.x86_64
python3-samba-4.15.5-8.el8_6.x86_64 python3-talloc-2.3.2-1.el8.x86_64
python3-tdb-1.4.3-1.el8.x86_64 python3-tevent-0.11.0-0.el8.x86_64
samba-4.15.5-8.el8_6.x86_64 samba-common-tools-4.15.5-8.el8_6.x86_64
samba-libs-4.15.5-8.el8_6.x86_64 tdb-tools-1.4.3-1.el8.x86_64
¡Listo!
dnf install samba-client
[...]
Instalado:
samba-client-4.15.5-8.el8_6.x86_64
¡Listo!
Instalación de Samba (servidor y cliente) en una distribución de tipo Debian.
1. Configuración del servidor Samba
El servidor Samba permite a los clientes SMB/CIFS (Windows, Unix, Mac OS, Linux…) acceder a los recursos de...
Configuración de un servidor NFS
NFS (Network File System) es un protocolo cliente-servidor de compartición de archivos y directorios, creado por Sun Microsystems en 1984, y que se convirtió en el estándar de facto de los entornos Unix. Fue definido por una serie de RFC, adaptado a Linux y a Windows.
La versión mayor, la más reciente del protocolo, es la versión 4 (RFC 7530), pero la versión 3 (RFC 1813) sigue siendo muy usada.
NFS que es un protocolo de nivel aplicación. Se basa en un protocolo de nivel de sesión, los RPC (Remote Procedure Call, llamada de procedimiento remoto), creado también inicialmente por Sun Microsystems.
1. NFS versión 4
La version 4 del protocolo NFS es el resultado de una reestructuración completa. Al contrario que para las versiones anteriores que funcionaban en modo sin estado (stateless) y utilizaban UDP o TCP, esta versión implementa un servidor con estado, y solamente usa TCP.
El protocolo ya no se basa en los RPC, lo que le permite evitar las restricciones relativas al daemon rpcbind/portmapper (uso posible en Internet y a través de firewalls).
Es mucho más seguro (identificación a través de Kerberos, comunicaciones cifradas, etc.).
2. El servicio rpcbind/portmapper
Este servicio tiene como función gestionar las solicitudes RPC, enviadas por los clientes hacia los diferentes servidores que se basan en este protocolo de nivel de sesión para comunicar con sus clientes.
a. Principio de funcionamiento
El daemon (rpcbind o portmapper, dependiendo de las versiones) se inicia y se pone en escucha en el puerto bien conocido de los RPC, el puerto 111 en UDP y en TCP.
Cada servidor que quiera utilizar los RPC se registra en el daemon rpcbind/portmapper (que tiene que haber sido iniciado anteriormente), indicándole su identificador de protocolo aplicativo RPC y su versión, así como el número de puerto dinámico en el que se pone en espera.
Cuando el daemon recibe una solicitud de un cliente RPC en el puerto 111 (UDP o TCP), especificando el protocolo de aplicación y la versión del servidor solicitada, el daemon le devuelve el número de puerto del servidor asociado, para que puedan comunicar directamente juntos.
b. Protección del servicio
Como el daemon rpcbind/portmapper es un punto...