Basado en Linux Debian 10

Seguridad Servidor Samba

YouTube

Proyecto P4El servidor de archivos SAMBA funciona genial con la configuración que le dimos en el articulo anterior llamado “Cómo compartir tu disco duro con Linux, Windows y Mac con SAMBA” puede trabajar sin problemas entre ordenadores conectados a la misma red sean del sistema operativo que sean.

Esto está muy bien y es practico para hacerlo funcionar de una manera fácil pero no aplica nada de seguridad. Cualquiera conectado a tu red local puede tener acceso y si tu servidor está conectado a Internet desde una línea ISDN o una conexión PPP o simplemente la IP del servidor está dentro de la zona DMZ del router.

También nos podemos encontrar con que tenemos dos servidores dedicados contratados siendo uno GNU/Linux y el otro Windows cada uno con su IP diferente. Estos servidores están conectados a Internet con todos los puertos abiertos por lo que al instalar SAMBA el servidor esta listo para funcionar por Internet.

Por otro lado no hay ningún tipo de autentificación que nos pida un nombre de usuario y contraseña siendo esto una de las primeras cosas que tenemos que tener en cuenta a la hora de securizar un servidor de archivos SAMBA.

Sea cual sea vuestro escenario ahora vamos a darle seguridad de una forma muy sencilla así podremos tener nuestro servidor conectado a Internet compartiendo sus discos duros con nuestra red local y estar tranquilos de que desde el exterior no se puede acceder.

Aplicando seguridad al servidor SAMBA

Comenzamos arrancando nuestro servidor con Debian GNU/Linux y nos identificamos como super usuario ROOT con …

su

Agregar y eliminar usuarios en SAMBA

Una vez identificados vamos a crear un usuario que solo tendrá acceso a nuestro servidor para acceder a los recursos compartidos que SAMBA les ofrece con …

useradd -c “nuevousuario” -s /sbin/nologin nuevousuario

El comando useradd sirve para crear usuarios en el sistema pero sí le decimos /sbin/nologin no pueden tener acceso al servidor por SSH.

Ahora vamos a crear una contraseña para el nuevo usuario con …

smbpasswd -a nuevousuario

Si queremos eliminar el usuario podemos hacerlo con el comando …

userdel nuevousuario

Ahora tenemos que asignarle el usuario y grupo de usuario al directorio que compartimos con SAMBA. En mi caso el directorio se encuentra en la ruta /mnt/HDA-500GB/500GB-A, lo haremos así …

cd /mnt/HDA-500GB/

Le damos permisos …

chown -R nuevousuario:nuevousuario 500GB-A

Ahora ya tenemos el usuario, contraseña y directorio compartido preparado para funcionar pero tenemos que modificar el fichero de configuración de SAMBA para que esto sirva de algo.

Configurar usuarios en SAMBA

Editamos el fichero de configuración con …

nano /etc/samba/smb.conf

Ahora bajamos al final del fichero y si recordamos en el artículo anterior le dimos esta configuración …

[500GB-A]
comment = Disco duro A de 500 Gb
path = /mnt/HDA-500GB/500GB-A
browseable = yes
public = yes
writeable = yes
create mask = 0644
directory mask = 0755

Aquí vamos a modificar la opción public = yes por public = no y agregaremos guest ok = no quedándonos así …

[500GB-A]
comment = Disco duro A de 500 Gb
path = /mnt/HDA-500GB/500GB-A
browseable = yes
public = no
guest ok = no
writeable = yes
create mask = 0644
directory mask = 0755

Ahora guardamos el fichero, salimos del editor nano y volvemos en breve. Antes de aplicar seguridad a este fichero lo primero vamos a ver nuestra configuración de la tarjeta de red con …

ifconfig

o

ip addr

Y veremos algo así …

seguridad samba

Cómo podemos ver en mi servidor la tarjeta de red está dentro del rango 192.168.1.X. Tomamos nota de esto y volvemos al fichero de configuración smb.conf con …

nano /etc/samba/smb.conf

Servidor SAMBA dando acceso solo a ordenadores o redes específicas

Si tenemos un servidor con conexión directa a Internet como puede ser un dedicado podemos darle algo más de seguridad al decirle que no funcione SAMBA de cara a Internet pero si de cara a una IP especifica o para una red local. Para hacer esto debajo de la directiva [global] introducimos lo siguiente …

hosts allow = 127.0.0.1 192.168.1.0/24 IP.DE.OTRO.SERVIDOR
hosts deny = 0.0.0.0/0

Introducimos nuestro rango de IP, como en mi caso es la 192.168.1.110 mi rango es 192.168.1.0/24 y en el sitio IP.DE.OTRO.SERVIDOR podemos introducir una IP de otro servidor que esté conectado a Internet y queramos que tenga acceso al recurso compartido.

Finalmente guardamos el fichero, salimos del editor nano y reiniciamos SAMBA con …

service smbd restart

Con esto no es que no se pueda acceder desde internet a la pantalla de login lo que pasa es que se mostrará igualmente el mensaje para que le demos el nombre de usuario y contraseña pero aunque le pongamos los correctos no podremos identificarnos 😉