• Debian 8 como servidor Samba

    Con este MiniTutorial vas a poner rápidamente en marcha un servidor Samba que te permitirá compartir archivos alojados en tu servidor Debian 8 con toda la red. Vamos allá:

    Para instalar los paquetes necesarios abre una cli y ejecuta:

    apt-get -y install libcups2 samba samba-common cups
    
    

    Ahora, haz una copia de seguridad del archivo de configuración con:

    cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
    
    

    A continuación ejecuta las siguientes órdenes:

    echo "[global]" > /etc/samba/smb.conf
    echo "  workgroup = WORKGROUP" >> /etc/samba/smb.conf
    echo "  server string = Servidor Samba %v" >> /etc/samba/smb.conf
    echo "  wins support = yes" >> /etc/samba/smb.conf
    echo "  netbios name = Ordenador" >> /etc/samba/smb.conf
    echo "  security = user" >> /etc/samba/smb.conf
    echo "  guest account = nobody" >> /etc/samba/smb.conf
    echo "  map to guest = bad user" >> /etc/samba/smb.conf
    echo "  dns proxy = no" >> /etc/samba/smb.conf
    echo "  encrypt passwords = yes" >> /etc/samba/smb.conf
    echo "" >> /etc/samba/smb.conf
    echo "[publica]" >> /etc/samba/smb.conf
    echo "  path = /publica/" >> /etc/samba/smb.conf
    echo "  comment = Compartida para usuarios anónimos" >> /etc/samba/smb.conf
    echo "  browseable = yes" >> /etc/samba/smb.conf
    echo "  public = yes" >> /etc/samba/smb.conf
    echo "  writeable = no" >> /etc/samba/smb.conf
    echo "  guest ok = yes" >> /etc/samba/smb.conf
    echo "" >> /etc/samba/smb.conf
    echo "[usuario]" >> /etc/samba/smb.conf
    echo "  browsable = yes" >> /etc/samba/smb.conf
    echo "  read only = no" >> /etc/samba/smb.conf
    echo "  valid users = usuario" >> /etc/samba/smb.conf
    echo "  path = /home/usuario/" >> /etc/samba/smb.conf
    echo "  comment = Carpeta de usuario" >> /etc/samba/smb.conf
    
    

    Dichas órdenes han creado el archivo /etc/samba/smb.conf y han metido dentro una configuración para una compartición básica. Ahora vamos a crear la carpeta compartida a la que hace referencia el archivo y vamos a darle los permisos correctos para una compartición anónima:

    mkdir -p /publica/
    chown -R nobody:nogroup /publica/
    chmod -R 0755 /publica/
    
    

    Una vez terminado lo anterior, reiniciamos el servicio samba con:

    service smbd restart
    

    Después de reiniciarse el servidor sabe, podrás encontrar en tu red el recurso llamado Pública que te permitirá acceder a lo que tengas dentro de la carpeta /publica/. Ese archivo de configuración te permitirá hacerte una idea sobre como funciona una compartición en samba. La opción global configura parámetros globales y, en este caso, la opción publica configura parámetros para una compartición individual.

    Hay muchas otras opciones que se pueden configurar en la sección global. Por ejemplo, en mi caso, mi configuración global agrega algunas cosas a la expuesta arriba:

    hosts allow = 192.168.1. 192.168.0.
    hosts deny = 192.168.1.255
    interfaces = lo eth1
    bind interfaces only = yes
    
    

    Lo que hago con esas 4 líneas extras es que permito acceder a la compartición samba sólo a los ordenadores que estén en el rango de IPs de 192.168.0.1 a 192.168.0.255, y de 192.168.1.1 a 192.168.1.255. Sin embargo no dejo que acceda a esa compartición al ordenador que tiene la IP 192.168.1.255. Según esa configuración todos los otros ordenadores o sistemas que no estén en ese rango de IPs no van a poder acceder a los recursos compartidos por Samba. Además, agrego una medida más, que es que Samba transmita sólo a las interfaces detalladas. Esto es muy importante si tienes dos tarjetas de red, porque Samba normalmente se «mostrará» en eth0 y no en eth1 y puede que eso no te interese.

    Las opciones de configuración de Samba son muy extensas. Mejor echa un vistazo a la documentación oficial (en inglés).

    PD: Recuerda que si quieres usar la cuenta de un usuario del sistema para conectarte a un recurso compartido con samba debes crear una contraseña samba para el usuario con el que quieras conectarte. Por ejemplo, si la cuenta de usuario es pepe y nunca creaste una contraseña samba para pepe deberás ejecutar:

    smbpasswd -a pepe

    … y poner la nueva contraseña dos veces. No te preocupes, esa contraseña no tiene nada que ver con la propia contraseña de la cuenta del usuario en Linux. Es solamente para samba.