Samba-4-4

En este artículo voy a explicar cómo restringir el acceso a un directorio compartido (típicamente conocido como share) de Samba por usuario y por IP/subred.

Supongamos que tenemos una configuración de share como la del artículo Agregar shares y usuarios a un servidor Samba:

[Compartido]
   comment = Nuevo share
   path = /var/samba/compartido
   guest ok = no
   browseable = no
   writable = yes
   write list = cfulanito
   create mask = 0777
   directory mask = 0777

Previamente hemos creado el usuario "cfulanito" tal como explica el mencionado artículo, y deseamos restringir el acceso al share para mejorar la seguridad del servidor Samba.

Restringir acceso por usuario

Si deseamos que sólo el usuario "cfulanito" pueda acceder a "Compartido", es necesario recurrir a la opción valid users. Esta opción admite como parámetro una lista de nombres de usuarios y grupos (separados por espacios) que pueden acceder al share:

[Compartido]
   comment = Nuevo share
   path = /var/samba/compartido
   valid users = cfulanito
   guest ok = no
   browseable = no
   writable = yes
   write list = cfulanito
   create mask = 0777
   directory mask = 0777

Con esta nueva configuración, sólo "cfulanito" podrá acceder al share "Compartido".

Si se requiere permitir el acceso a un grupo de usuarios, los nombres de grupo de usuarios Unix se identifican anteponiendo un arroba, por ejemplo:

   valid users = cfulanito @wheel

Esta configuración permite el acceso a "cfulanito" y a todos los usuarios que pertenezcan al grupo "wheel".

Restringir acceso por IP/subred

Supongamos que además, deseamos que "cfulanito" sólo pueda conectarse al share desde un cliente ubicado en una subred o IP en particular, por ejemplo 192.168.37.0/24. Para ello se debe recurrir a la opción hosts:

[Compartido]
   comment = Nuevo share
   path = /var/samba/compartido
   valid users = cfulanito
   guest ok = no
   browseable = no
   writable = yes
   write list = cfulanito
   create mask = 0777
   directory mask = 0777
   hosts deny = ALL
   hosts allow = 192.168.37.0/24

Con esta configuración se niega el acceso a todas las IP, excepto aquellas que pertenezcan a la subred 192.168.37.0/24. Una vez más, la opción hosts allow permite especificar una mezcla de subredes y direcciones IP separadas por espacios.

Sin embargo, para el filtrado por IP, una opción más conveniente y segura consiste en utilizar directamente un firewall. De esta forma, el sistema operativo se encarga de permitir o denegar los accesos a los puertos de Samba para las direcciones IP y subredes en cuestión, antes de que los clientes puedan siquiera conectarse con el servidor Samba, evitando así cualquier tipo de vulnerabilidad en el demonio smbd.

Por ejemplo, para permitir el acceso al servidor Samba sólo a la subred 192.168.37.0/24, utilizar las siguientes reglas:

iptables -A INPUT -p tcp --sport 1024:65535 -s 192.168.37.0/24 --dport 139 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --sport 1024:65535 -s 192.168.37.0/24 --dport 445 -m state --state NEW -j ACCEPT

Referencias

 

Fuente: linuxito

¿Quién está en línea?

Hay 19519 invitados y ningún miembro en línea