Resumiendo la entrada sobre NFS, se pasa a
describir los pasos para bastionar un servicio NFS instalado:
1.- Instalar
la versión 4 de NFS con un sistema de autenticación basado en Active
Directory, ya que se ganaría la autenticación
por usuario. Si no fuera así, se sigue recomendando el uso de la versión 4
de NFS, aunque el bastionado de la versión implicaría la NO autenticación por usuario.
2.- Incluir en el archivo: /etc/exports, los directorios que se van a compartir, así como los
hosts que van a tener permiso para acceder a dichos directorios y los permisos
que tendrán estos son el directorio compartido.
La estructura de la línea sería la siguiente:
directorio
equipo1(opcion11,...) equipo2(opcion21,...)
|
Donde:
·
directorio: es
el nombre del directorio que se comparte
·
equipo<1...n>: es
la dirección IP o nombre DNS del hosts que tendrá acceso al recurso compartido
NOTA:
Se permite el uso de los
comodines: "*" y "?", aunque
no se recomienda su uso
·
opcion
<11 ... nn>: son las diferentes permisos de acceso que se
tendrán por parte del hosts en el directorio compartido.
De las opciones más significativas que
se pueden ver en la entrada NFS , las más
adecuadas para bastionar nuestro servicio NFS es:
A. ([ro | rw], root_squash,anonuid=<digito
del usuario>,anongid=<digito del grupo del usuario>)
Está opción implica crear un usuario y
su grupo dentro del sistema/s que contenga/n el/los directorio/s a los que el
usuario pueda acceder, y vincularlo con la IP o nombre DNS de la máquina desde
donde se puede realizar la conexión.
B. ([ro | rw], root_squash)
Está opción implica crear un usuario
dentro del sistema/s que contenga/n el/los directorio/s a los que el usuario
pueda acceder y vincularlo con la IP o nombre DNS de la máquina desde donde se
puede realizar la conexión. El usuario a crear debe tener el mismo nombre de
usuario con el que se trabaja desde la máquina desde donde se realiza la
conexión.
Si el usuario con el que se conecta el
cliente no existe en el servidor, dicho usuario trabajará con los permisos del
usuario “nobody”.
Ejemplo:
/home vale(rw,root_squash) vstout(rw,root_squash)
/usr/X11R6 vale(ro,root_squash)
vstout(ro,root_squash)
/home/ftp (ro,root_squash)
3.- Administrar los permisos de cada uno de los
usuarios dentro de los directorios que se van a compartir.
IMPORTANTE:
Esto implica una gran carga
de administración debido a la creación de los usuarios y la configuración de
los permisos en la estructura del servidor. Eso sí, esta administración no
permite tener un pseudo-control basado
en usuarios.
4.- Incluir dentro del archivo: /etc/hosts.deny, la sentencia:
portmap: ALL
nfs:
ALL
NOTAS:
Con la primera línea se
denegará el acceso al puerto 111/TCP (Portmap) a toda máquina.
Con la segunda línea se
denegará el acceso al puerto 2049/TCP (NFS) a toda máquina.
5.- Incluir dentro del archivo: /etc/hosts.allow, la sentencia:
Portmap: host [o red/mascara_subred], host [o
red/mascara_subred]
NFS: host [o red/mascara_subred], host [o
red/mascara_subred]
Ejemplo:
portmap:192.168.0.0/255.255.255.0,10.20.30.40
nfs:192.168.0.0/255.255.255.0
NOTAS:
Con la primera línea se
permitirá el acceso al puerto 111/TCP (Portmap) a toda máquina declarada.
Con la segunda línea se
permitira el acceso al puerto 2049/TCP (NFS) a toda máquina declarada.
Estos dos últimos puntos pueden ser sustituidos/complementados
con el uso de un firewall de equipo, como pueda ser IPTABLES.
6.- Como las comunicaciones a través de NFS se
realizan en texto claro, se procedería a bastionar
las comunicaciones tunelizando a través del protocolo SSH, mediante la
característica del “port forwarding”
Para lo cual será necesario tener algún programa
que nos permita utilizar dicho protocolo, como por ejemplo, OpenSSH.
RECOMENDACIÓN:
Lectura del apartado 6.4, de la URL: http://nfs.sourceforge.net/nfs-howto/ar01s06.html
No hay comentarios:
Publicar un comentario