TEMA 5 - Escenarios Heterogéneos - Samba
TEMA 5 - Escenarios Heterogéneos - Samba
TEMA 5 - Escenarios Heterogéneos - Samba
CONTROLADOR DE DOMINIO
Y COMPARTICIÓN DE RECURSOS EN REDES
MIXTAS
4. Configuración de Samba..................................................................................................... 5
1. INTRODUCCIÓN
Samba es una implementación libre para sistemas Linux y Unix de los servicios de red más
importantes utilizados en redes formadas por equipos con sistemas Microsoft Windows. Los
dos principales servicios de red que puede cubrir Samba son:
Por una parte permite a un equipo con Linux compartir archivos e impresoras con otros equipos
que utilicen Windows. Y por otra parte, se puede configurar un equipo Linux para realizar las
funciones de controlador de un dominio Windows; de esta forma, se puede llevar a cabo la
validación de usuarios en equipos cliente con Windows utilizando un servidor Linux.
Adicionalmente a los dos programas anteriores, Samba ofrece varias utilidades. Algunas de las
más relevantes son las siguientes:
2 TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS
La instalación de Samba sigue el mismo procedimiento que cualquier otro software a instalar
en el servidor Ubuntu. El paquete a instalar junto con sus dependencias se llama samba.
Samba se instala como un servicio más del sistema operativo, por lo que se puede utilizar el
comando service para gestionarlo. Por ejemplo, para reiniciar el servidor Samba:
necesario generar una contraseña específica para Samba. A la operación de asignar a una
cuenta de usuario su contraseña específica para Samba se la denomina activación de la
cuenta de usuario Samba.
Por defecto, después de la instalación del servidor Samba, ningún usuario existente en el
equipo tiene su contraseña en Samba, por lo que ningún usuario podrá utilizar sus servicios, es
decir, no están activados para utilizar Samba. Por tanto, la primera operación que conviene
realizar es establecer dicha contraseña (se puede utilizar la misma contraseña que se usa en la
cuenta local aunque no tienen por qué coincidir). El comando utilizado para ello es smbpasswd.
Después de esta operación, la cuenta de usuario está habilitada para acceder a los servicios
proporcionados por Samba.
Las contraseñas de acceso a los recursos compartidos por Samba se almacenan en el archivo
/var/lib/samba/passdb.tdb. Esta archivo realiza la función de base de datos de los
usuarios activados en Samba, algo similar al archivo /etc/shadow del sistema. La diferencia
es que el archivo passdb.tdb no es un archivo de texto plano sin formato, por lo que para
acceder a su contenido es necesario utilizar un comando específico para ello. Este comando es
pdedit y algunas opciones que permite son:
• -Lw: muestra un listado de los usuarios dados de alta en la base de datos de usuarios
Samba.
4. CONFIGURACIÓN DE SAMBA
Todos los ficheros de configuración que tienen que ver con el servidor Samba se encuentran
bajo el directorio /etc/samba. El fichero principal de configuración se denomina
/etc/samba/smb.conf. Es un fichero de texto plano sin formato y por tanto se puede
visualizar desde cualquier editor de texto plano.
Es muy conveniente hacer una copia de seguridad del fichero antes de su modificación. Esta
operación se puede llevar a cabo simplemente con el comando cp:
El fichero smb.conf está formado varias secciones, las cuales comienzan con el nombre de la
sección entre corchetes ([ ]) en una nueva línea. Cada sección contiene cero o más pares
parámetro/valor separados por un signo de igualdad (=).Todas las líneas que comienzan
por almohadilla (#) son líneas de comentarios y no tienen valor a efectos de configuración; si la
línea empieza por uno punto y coma (;) indica que la línea está inactiva.
• La sección principal es la sección [global] que nos permite configurar los parámetros
generales del servicio.
• La sección [homes] nos permitirá compartir las carpetas home de cada usuario, para
que cada usuario pueda acceder a su carpeta home por la red.
• La sección [printers] nos permitirá compartir impresoras.
Una de las funcionalidades que ofrece Samba, además de permitir compartir recursos en red
con equipos que utilicen sistemas operativos Windows, es emular el funcionamiento de un
controlador de dominio Windows. El control de un dominio Windows normalmente se lleva a
cabo desde un equipo con Windows Server junto con el llamado Directorio Activo. Sin
embargo, gracias a Samba, un equipo con Linux también puede ejercer como controlador de
dominio Windows.
• server string: En este parámetro se escribe un texto descriptivo del equipo. Este
texto se mostrará en algunas utilidades de red referentes a servicios Samba. No es
necesario configurarlo pero sí muy aconsejable.
Otras opciones que tenemos que modificar son las opciones WINS (Windows Internet Naming
Service). Es un sistema que determina la dirección de IP asociada con ordenadores de red en
particular. Esto se denomina resolución de nombres. WINS soporta ordenadores clientes y
servidores de red corriendo Windows y puede proveer resolución de nombres para otros
equipos con otros sistemas operativos o configuraciones especiales. WINS usa una base de
datos distribuida que se actualiza automáticamente con los nombres de los equipos disponibles
y la IP de cada una. El DNS es un sistema alternativo para resolver nombres pero utilizado
básicamente en redes mayores o en sustitución de WINS. En este caso modificaremos los
siguientes parámetros:
• dns proxy. Con esta opción indicaremos que Samba haga peticiones para nombres de
máquinas usando DNS, siempre y cuando no se haya podido asociar el nombre de
máquina con su IP a través del servicio WINS.
• time server. Con esto conseguiremos que nuestros clientes sincronicen la hora con
el controlador de dominio.
8 TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS
También es necesario modificar las opciones de seguridad, que nos permiten configurar de
qué forma se podrá acceder al controlador de dominio.
• security. Este parámetro define el nivel de seguridad usado por Samba. Se permiten
cuatro opciones:
• security = share. En este caso, cada recurso compartido tiene una
contraseña de acceso asociada a dicho recurso. No se utiliza la validación por
cuentas de usuario.
• security = user. En este caso, para acceder a un recurso es necesario
validarse mediante una cuenta de usuario y una contraseña. El usuario debe ser
un usuario local del equipo y la contraseña se guardará por defecto en el fichero
de contraseñas para Samba /var/lib/samba/passdb.tdb.
• security = server. En este caso, la validación de usuarios para el acceso a
un recurso compartido se hace en otro ordenador, normalmente un equipo con
Windows Server.
• security = domain. Esta opción es similar a la anterior pero en este caso el
servidor donde se validan las credenciales de los usuarios Samba debe ser un
controlador de dominio.
• encrypt passwords. Se utiliza para que el equipo Linux pueda aceptar contraseñas
cifradas. Estas contraseñas normalmente son gestionadas por equipos Windows que
potencialmente pueden ser clientes del controlador de dominio.
• unix password sync. En este parámetro se activa la sincronización entre las claves
Unix y las claves Samba.
[global] LDAP
Como hemos elegido como base de datos donde guardar la información del dominio el servidor
LDAP, Samba tiene que tener un mecanismo de comunicación con el servidor LDAP.
• ldap admin dn. Esta línea le dice a Samba quien es el administrador del directorio
LDAP. Este será el usuario empleado por Samba cuando se realicen operaciones de
añadir, borrar o modificar cuentas de usuario.
• ldap delete dn. Este parámetro especifica si al realizar una operación de borrado
en ldapsam, se borra la entrada completa o solamente los atributos específicos de
Samba.
• ldap suffix. Parámetro que especifica la base para todas las búsquedas en LDAP.
• ldap user suffix. Parámetro que indica donde se añaden los usuarios dentro del
árbol.
• ldap group suffix. Parámetro que indica donde se añaden los grupos de usuarios
dentro del árbol.
• ldap machine suffix. Parámetro que indica donde se añaden las máquinas dentro
del árbol.
• ldap ssl. Opción que determina si cifrar o no las comunicaciones entre el servidor
Samba y el servidor LDAP.
• logon path. En esta opción indicaremos dónde queremos ubicar los perfiles de
usuario de los usuarios que se validen al equipo. Podremos modificarlo indicando una
carpeta creada por nosotros o dejar la que viene por defecto.
Estos perfiles de usuario funcionan de la misma forma que los perfiles móviles con los
que trabajamos en Windows Server. Si recordamos, cuando asignábamos un perfil
móvil en Windows Server creábamos una carpeta, y al asignar el perfil al usuario
indicábamos algo como lo siguiente:
\\nombre_equipo_controlador_dominio\carpeta_perfiles\%username%,
en donde:
• admin server. Podemos habilitar un usuario del servidor Linux como administrador
del dominio. Por defecto, dicho usuario es el usuario root del sistema Linux. Sin
embargo, se pueden añadir otros usuarios administradores en Samba, de forma que se
puedan utilizar para unir un cliente al dominio.
• socket options. Distintas opciones que mejoran el rendimiento del servidor Samba.
• os level. Indica el nivel de visibilidad del sistema operativo que Samba va a adoptar y
en un proceso de elección de varios controladores de dominio. Si queremos que Samba
gane la elección de visualizador maestro frente a otros equipos Server en la red,
estableceremos el primer nivel, o nivel superior de sistema operativo, al de cualquier
otro controlador de dominio Linux que pueda existir en tu red. De esta forma, los
clientes se podrán unir al controlador de dominio sin ningún problema.
• preferred master. Con esta opción estamos indicando que Samba será del
controlador de dominio Maestro preferido en la red, respecto de otros controladores de
TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS 13
Administración de Sistemas Operativos
dominio Linux. Esto le da al servidor el estatus más alto en el grupo de trabajo con
respecto al resto de máquinas al mismo nivel de sistema operativo.
• domain master. Con esta opción indicamos que el equipo Linux será el controlador
de dominio Maestro utilizado para hacer visibles en la red otros controladores de
dominio Linux de la misma red o de otras subredes.
• local master. Especifica si Samba intentará convertirse en el visualizador maestro
local para la subred cada vez que se inicie el servicio Samba.
Si se muestra la información anterior, pulsar Intro para ver el resultado del fichero smb.conf.
14 TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS
Dicha contraseña debe ser la misma que aparece en el fichero de configuración del servidor
LDAP (/etc/openldap/slapd.conf), (en nuestro caso 1234).
Sin embargo, se puede dar otro escenario en el que existan en la red, tanto equipos con Linux
como equipos con Windows como sistema operativo. Es lo que se podría denominar escenario
heterogéneo. La solución para poder acceder a recursos compartidos en el servidor Linux
desde todos los equipos es utilizar Samba.
Al ser Samba una implementación libre de los protocolos para compartir recursos en redes
Windows, los equipos que utilicen Windows tendrán acceso a los recursos compartidos
mediante Samba. Además, un equipo Linux también puede acceder a recursos compartidos
mediante Samba ya que existe software cliente bajo Linux para los servicios de red propuestos
por Samba.
En este apartado se describe el procedimiento para compartir un directorio, es decir, para que
un directorio existente en el Servidor Ubuntu Server sea accesible a un equipo que utilice
Windows o a un equipo con Linux configurado como cliente Samba.
Las credenciales para el acceso a un directorio compartido con Samba siguen las reglas del
protocolo de compartir archivos en Windows, es decir, los permisos de acceso a un directorio
se asignan por cuentas de usuario y no por equipos como ocurría en NFS. Las cuentas de
usuario que pueden acceder a los directorios compartidos con Samba se corresponden con los
usuarios locales del equipo donde está instalado el servidor Samba, pero convenientemente
activadas con el comando smbpasswd.
Esta sección permite la compartición del directorio home de los usuarios, de forma que,
dependiendo qué usuario se haya autentificado en el sistema, Samba compartirá su directorio
personal únicamente a él.
Este recurso compartido se utiliza para almacenar los perfiles de escritorio de los usuarios.
Cada usuario ha de tener un directorio en el raíz de este recurso compartido. Este recurso ha
de tener permisos de escritura para los usuarios y debería tener los permisos de lectura
globales.
• path. Directorio donde se almacenarán los perfiles móviles, bajo este directorio, cada
usuario tendrá una carpeta con su nombre.
• writeable (read only). Permitir o no escribir en el recurso compartido.
• guest ok. No se permitirán las conexiones sin autentificación a este recurso.
• browseable. Indica si este recurso aparecerá en la lista de recursos compartidos o no
• create mask. Máscara de creación de archivos, el valor de este parámetro indicará los
permisos que tendrán los archivos de nueva creación.
• directory mask. Máscara de creación de directorios, el valor de este parámetro
indicará los permisos que tendrán los directorios de nueva creación.
18 TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS
Otro ejemplo: Compartir un directorio llamado informes, existente en el directorio home del
usuario mgonzalez. Además, se desea que el único que pueda acceder a dicho directorio sea
el propio usuario mgonzalez.
Para que se apliquen los cambios debemos reiniciar el servicio. Podemos antes comprobar la
integridad del fichero de configuración smb.conf.
TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS 21
Administración de Sistemas Operativos
En apartados anteriores se han definido una serie de directorios dedicados a distintas tareas
dentro de Samba, como pueden ser alojar los perfiles móviles de los usuarios, los scripts para
Netlogon o el directorio home de los usuarios.
En esta sección se van a crear los anteriores directorios para preparar el sistema para alojar
usuarios:
NOTA: permisos 1757, permisos adicionales. El carácter (t) que se utilizará para indicar
que el bit de ejecución estará asignado también.
Para integrar clientes Windows en un controlador de dominio Samba, tendremos que realizar
unas operaciones un poco particulares en el Servidor Linux.
22 TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS
En primer lugar, tenemos que crear las cuentas de equipo que serán válidas en el dominio, es
decir, no podemos hacer la integración de clientes de forma directa como en Windows Server,
sino que es estrictamente necesario crear previamente las cuentas de equipo que van a unirse
al dominio.
Las cuentas de equipo que vamos a añadir al servidor se denominan cuentas de confianza y
definen qué equipo de la red pertenecerá al dominio. Estas cuentas de confianza se
implementan en forma de usuarios con unas características especiales.
Vamos a ir paso a paso para ver cómo se crean las cuentas de confianza.
En primer lugar, y de forma necesaria, tendremos que crear un grupo de usuarios en el equipo
Linux que tenga exactamente el mismo nombre que el dominio que hemos creado. Si el
dominio se llama miempresa00, entonces crearemos un grupo de usuarios llamado
miempresa00.
El grupo a crear es un grupo de Linux, sin ninguna consideración especial, y para crearlo
ejecutaremos el comando:
Creado el grupo de usuarios, tendremos que crear las cuentas de equipo o cuentas de
confianza. Para ello tenemos que tener muy claro cuál es el nombre NetBIOS del equipo
Windows (Mi PC → Propiedades).
TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS 23
Administración de Sistemas Operativos
Ahora crearemos la cuenta de confianza. Esta cuenta debe tener el mismo nombre que el
equipo pero con la particularidad de tener que añadir el símbolo $ al final de la cuenta. El grupo
a crear es un grupo normal de Linux, sin ninguna consideración especial, y para crearlo
ejecutaremos el siguiente comando:
En este caso, el parámetro --force-badname es necesario ponerlo para que el sistema Linux
admita un nombre de usuario a priori incorrecto respecto de los valores normales de nombre de
usuario. Si no se indica este parámetro, no se podrá crear el usuario especial, con el símbolo $.
La contraseña que pide el comando para la cuenta de equipo no se utilizará, así que no es
importante.
24 TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS
Creado el usuario, tenemos que agregarlo al grupo que hemos creado anteriormente y que
tiene del nombre del dominio. Esta operación se puede hacer con el comando adduser.
Para activar la cuenta de equipo como una cuenta Samba podemos utilizar el comando
smbpasswd. En este caso, no hay que poner el carácter $ al final del nombre del equipo.
En primer lugar configuraremos los clientes Windows para poder unirlos sin problemas al
dominio.
Ahora comprobaremos que línea del registro requiresignorseal tiene el valor 0. Para ello,
ejecutamos Regedit (Inicio → Ejecutar → Regedit) y buscamos:
HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet→Services→Netlogon→Param
eters→requiresignorseal
1. Tengamos una dirección IP y máscara de subred dentro del mismo rango que el
equipo Linux Server.
2. Como servidor DNS principal no ponemos nada, ya que las resoluciones de
nombres de harán con WINS (nombres NETBIOS). Como DNS secundario podemos
poner la dirección DNS servidor de Internet (u otro servidor si lo tenemos
configurado).
26 TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS
Cuando pida el nombre de usuario y contraseña escribir un usuario con privilegios para
administrar del dominio SAMBA y la contraseña asignada en Samba.
A partir de este momento, se pueden utilizar los usuarios creados en el servidor Linux para
acceder al equipo del dominio. Los usuarios válidos son tanto los usuarios locales como los
usuarios LDAP.
28 TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS
Si se intenta acceder a algún recurso compartido, el sistema pedirá las credenciales. La cuenta
de usuario utilizada para validarse debe existir en el equipo que ejecuta el servidor Samba y se
ha debido establecer la contraseña con el comando smbpasswd.
El procedimiento para acceder a un directorio compartido con Samba desde un equipo que
utilice Linux depende de la distribución. Para acceder a dichos recursos desde XUbuntu, es
necesario tener instalado el software cliente Samba (que viene instalado por defecto).
TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS 29
Administración de Sistemas Operativos
También se puede hacer, descubriendo la barra de navegación y escribir el nombre del equipo
o su dirección IP precedido de smb://.
Después de esta operación ya será posible utilizar el comando mount para montar directorios
compartidos.
donde:
Podemos incluir la opción –o para especificar el usuario. Durante la ejecución del comando se
solicita la contraseña.
O bien podemos incluir los directorios que se quieren montar en el archivo /etc/fstab,
añadiendo una línea con el formato:
La opción username es obligatoria y hay que especificar el usuario con el que se quiere
acceder al recurso compartido. Si la contraseña no se especifica, se pedirá al realizar el
montaje
Por tanto, para compartir una impresora instalada en un servidor Linux primero tiene que estar
correctamente configurada con CUPS. De esta forma, las impresoras ya serán accesibles a
equipos Linux. Para hacerlas accesibles, además, a equipos con Windows, se deben seguir los
siguientes pasos en el equipo cliente:
TEMA 14: SAMBA. CONTROLADOR DE DOMINIO Y COMPARTICIÓN DE RECURSOS EN REDES MIXTAS 31
Administración de Sistemas Operativos
A partir de aquí el asistente solicitará los drivers para terminar la instalación de la misma.