Saltar al contenido

Servidor SAMBA

    servidor samba

    Servidor SAMBA es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux o Mac actúen como clientes en redes de Windows.

    Samba también permite validar usuarios haciendo de Controlador Principal de Dominio, como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios.

    Samba fue desarrollado originalmente para Unix por Andrew Tridgell utilizando un sniffer o capturador de tráfico para entender el protocolo a través de la ingeniería inversa. El nombre viene de insertar dos vocales al protocolo estándar que Microsoft usa para sus redes, el SMB o server message block.

    En un principio, Samba tomó el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marca registrada. Tridgell buscó en el diccionario de su máquina Unix alguna palabra que incluyera las letras “s”, “m” y “b” con la orden grep hasta que dio con Samba.

    Instalación de Samba

    Para llevar a cabo la instalación, se necesitarán los siguientes paquetes:

    • «samba»
    • «samba-client»
    • «samba-common».

    Para instalarlos haga uso de la terminal como se muestra a continuación:

    [BASH]# yum install -y samba samba-client samba-common

    Configuración de Samba

    Los ficheros que modificaremos serán:

    * /etc/samba/lmhosts
    * /etc/samba/smb.conf

    Fichero /etc/samba/lmhosts

    El fichero /etc/samba/lmhosts es el fichero de gestión de los equipos de red estándar usado para resolver nombres a direcciones IP en el sistema.

    Podría decirse que este fichero es el equivalente al fichero /etc/hosts que es un estándar de Linux-Unix y su estructura es idéntica a la que se muestra a continuación:

    192.168.220.100 desarrollo
    192.168.220.101 ventas

    La única diferencia es que los nombres de la columna derecha son nombres NetBIOS y solo son usados en Linux por samba.

    Recordemos que los servidores DNS sirven para los casos en donde un equipo requiere conectarse a otro y no tener que hacerlo por la dirección IP, por ejemplo:

    66.102.11.104 hydra

    El fichero /etc/samba/lmhosts es una simplificación muy básica de ese proceso, pero solo válida para tu propio equipo.

    Recordemos que el propósito del fichero /etc/hosts es resolver los nombres de equipos que no pueden ser resueltos de otra manera. También se puede usar para resolver nombres de equipos en pequeñas redes sin servidor DNS.

    Es por ello que agregaremos al fichero lo siguiente:

    /etc/samba/lmhosts

    A continuación está nombre que tiene especificado en el fichero:


    /etc/hosts

    Ejemplo:

    Fichero /etc/hosts/
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1 localhost.localdomain localhost localhost
    192.168.1.105 servidor.empresa.com.mx

    Fichero /etc/samba/lmhosts
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    127.0.0.1 localhost
    192.168.1.105 servidor.empresa

    Como podemos observar solo agregamos la linea final del fichero /etc/hosts al final del fichero /etc/samba/lmhosts

    Fichero /etc/samba/smb.conf

    La configuración básica de Samba se hará sobre el fichero localizado en:

    “/etc/samba/smb.conf”

    Configuración de parámetros globales

    Con la ayuda de algún editor de textos, busque la siguiente línea:

    workgroup = MYGROUP

    En esta línea puedes especificar un nombre para el grupo de usuarios que podrán hacer uso de este recurso. Ejemplo:

    workgroup = Desarrollo

    Posteriormente, busque la siguiente línea:

    server string = Samba Server Version %v

    En esta línea puedes poner un mensaje de bienvenida para el Servidor Samba. Ejemplo:

    server string = Servidor Samba Desarrollo

    Luego, busque la siguiente línea

    netbios name = MYSERVER

    En esta línea deberás especificar el nombre que tiene asignado el equipo. Su nombre debe ser igual al especificado en el fichero /etc/samba/lmhosts

    Ejemplo:

    netbios name = servidor.empresa

    Después, busque la siguiente línea:

    interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24

    Esta línea especifica desde qué segmentos de red escuchará peticiones el servidor Samba. Cualquier otra interfaz no listada aquí será ignorada.

    Ejemplo:

    interfaces = lo eth0 192.168.1.1/24 10.10.1.1

    A continuación, busque la siguiente línea:

    hosts allow = 127.192.168.12. 192.168.13.

    Esta otra línea también especifica desde que segmentos de red escuchará peticiones el servidor Samba.

    Ejemplo:

    hosts allow = 192.168.12.2.

    Note el punto al final de la línea:

    log file = /var/log/samba/log.%m
    max log size = 50

    Esta líneas especifican la ubicación donde quedarán los logs, en este caso la extensión sera conformado por el nombre del equipo desde la cual se hizo la conexión La segunda linea especifica el tamaño máximo para los archivos de logs.

    Configuración de los recursos compartidos

    La configuración de las recursos que compartiremos deben ir especificados al final del fichero

    “/etc/samba/smb.conf”

    Y deben seguir la siguiente estructura:

    [nombreDescriptivoDelRecursoCompartido]
    comment = Comentarios
    path = rutaDelREcurso
    public = yes
    writable = yes
    printable = no
    write list = desarrollo

    Algunas de las opciones que podemos agregar a esta estructura son las siguientes:

    servidor samba

    Un ejemplo sobre el uso de estas opciones se ve a continuación:

    [FacturasDiarias]
    comment = Facturas
    path = /var/facturas
    guest ok = no
    write list = jefe
    directory mask = 1770
    create mask = 0660
    browseable = yes
    admin users = jefe contador
    valid users = jefe contador
    writable = yes
    public = yes

    Alta de usuarios en Samba

    Para dar de alta cuentas de usuario en Samba usaremos el comando useradd el cual deberá ser aplicado según la siguiente estructura:

    [BASH]# useradd -s /bin/nologin cuentaDeUsuario

    Aquí está otro parámetro:

    -s /sbin/nologin

    Este indicará al sistema que el usuario no tendrá acceso al intérprete de comandos

    Asignación de contraseñas a usuarios en Samba

    Para asignar contraseñas a los usuarios en Samba usaremos el comando smbpaaswd el cual deberá ser aplicado según la siguiente estructura:

    [BASH]# smbpasswd -a cuentaDeUsuario

    Iniciar, detener o reiniciar el servidor Samba

    Para iniciar el servidor samba por primera vez solo deberá teclear en terminal el siguiente comando:

    [root@ localhost ~]# /etc/init.d/smb start

    Igualmente existen opciones ya sea para reiniciar, detener, recargar o conocer el status en el que se encuentra el servidor Samba. Estas opciones pueden ser consultadas en la siguiente tabla:

    servidor samba

    Como alternativa también podemos ocupar el siguiente comando para iniciar el servidor samba.

    [root@ localhost ~]# service smb start

    Y de igual manera podemos usar las opciones antes descritas en la tabla anterior.
    Recuerde que estos comandos se ejecutan como root.

    Conectando con el Servidor Samba

    La forma para conectar al servidor samba desde terminal sigue la siguiente sintaxis

    [BASH]# smbclient //IPdelServidorSamba/recursoCompartido -U usuario