• No se han encontrado resultados

Cómo configurar SAMBA para que los usuarios accedan a un recurso mediante validación en un dominio NT

N/A
N/A
Protected

Academic year: 2021

Share "Cómo configurar SAMBA para que los usuarios accedan a un recurso mediante validación en un dominio NT"

Copied!
6
0
0

Texto completo

(1)

Cómo configurar SAMBA para que los

usuarios accedan a un recurso mediante

validación en un dominio NT

Víctor Martín Goyeneche

1. Notas aclaratorias

Este documento no trata de ser una verdad absoluta ni nada por el estilo. Estará lleno de fallos, errores de concepto y un montón de cosas más, con lo que cualquiera puede modificar, corregir o ampliar esta pequeña guía que no es más que una serie de conclusiones a la que llegué después de muchos quebraderos de cabeza que espero que pueda evitar a alguien

2. Introducción

SAMBA es la implementación en plataformas UNIX del protocolo de comunicación de equipos Windows conocido como SMB. La idea consiste en conseguir que cohabiten un servidor NT con un servidor Linux de manera que las tareas de administración de usuarios se sigan administrando por el servidor NT mientras que las tareas más pesadas como la compartición de ficheros las soporte el servidor Linux.

Para conseguir este propósito, se deberá lograr configurar SAMBA en el servidor Linux como un servidor dentro de un dominio NT, de manera que confíe en la autenticación realizada por el servidor NT y logre trabajar con los usuarios y grupos del dominio.

Esto puede ser muy útil como primer paso para migrar una red basada en Windows a una basada en Linux, ya que poco a poco, el servidor Linux ganará responsabilidades que le irá quitando al servidor NT

3. Configuración de SAMBA

El primer paso consiste en dar de alta el nuevo servidor dentro del dominio, y para eso se deberá entrar en el servidor NT y añadir el nuevo servidor. Es importante recordar el nombre del servidor linux deberá ser el mismo que le asignemos en NT, y para ello podemos utilizar la instrucción

$hostname NombreDelServidor

La configuración de SAMBA se realiza en el fichero /etc/smb.conf. En este fichero se establecen las características del servidor, así como los recursos que serán compartidos en la red. El fichero se encuentra dividido en secciones, encabezadas por una palabre entre corchetes. Los valores de las opciones aparecen según la forma "etiqueta = valor ".

(2)

Para configurarlo, se ha utilizado la herramienta webmin, aunque después se haya retocado a mano. Esta herramienta publica en el puerto 10000 una aplicación web de configuración de todos los servicios de red del servidor.

3.1. Smb.conf

#fichero /etc/smb.conf [global]

add user script = /usr/bin/useradd -s/bin/false %u printing = lprng

winbind uid = 10000-20000 dns proxy = No

encrypt passwords = yes template shell = /bin/false

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 template homedir = /home/%U

max log size = 0 preferred master = no

password server = SERVIDORNT obey pam restrictions = Yes

delete user script = /usr/bin/userdel %u security = domain

winbind separator = +

server string = Nombre del servidor Linux en entorno de red workgroup = DOMINIONT

winbind gid = 10000-20000 comment = samba

winbind enum groups = yes

log file = /var/log/samba/%m.log netbios name = SERVIDORLINUX netbios aliases = SERVIDORLINUX os level = 10

winbind enum users = yes [homes]

browseable = no

comment = Home Directories writeable = yes

available = no create mask = 0664 directory mask = 0775 [printers]

comment = All Printers path = /var/spool/samba printable = Yes browseable = No [DirCompartido] path = .../DirCompartido writeable = yes create mask = 0740 directory mask = 0750 hide unreadable = yes inherit permissions = yes hide local users = yes map archive = yes map system = yes map hidden = yes

(3)

Dentro del fichero, existen una serie de opciones que requieren un comentario

[global]

add user script : script para añadir un usuario winbind uid = rango de usuarios de dominio NT

template shell = ruta donde está el shell que se ejecutará tras login template homedir = directorio home de cada usuario

password server = servidor de dominio que valida a los usuarios delete user script = script para eliminar un usuario

security = tipo de validación en el caso de domain, las valida el servidor de dominio ( password server)

winbind separator = separador que se utiliza entre el dominio y el usuario server string = descripción del servidor

workgroup = dominio

winbind gid = grupo de los usuarios

log file = ficheros de log. En este caso, /var/log/samba/%m.log, un fichero por cada máquina que intenta acceder

netbios name = nombre NETBIOS netbios aliases = alias NETBIOS Además también incluyen las etiquetas map archive = yes

map system = yes map hidden = yes

Que sirven para que Samba sea capaz de mapear los atributos de los ficheros en Windows a partir de los atributos en Linux

3.2. Winbind

Como se puede apreciar, se está utilizando un servicio llamado winbind, que es el que se encarga de validar y ofrecer los servicios de nombres de NT,de modo que no acaba aquí la configuración, ahora habrá que permitir que los usuarios validados en un dominio NT puedan acceder a los servicios del sistema, y para ello hay que modificar el fichero

/etc/ nsswitch.conf.

En nuestro caso se añade winbind en passwd y en group de manera que queda así.

#/etc/nsswitch.conf

passwd: files winbind nisplus shadow: files nisplus

group: files winbind nisplus

Una vez añadido esto, ya se puede lanzar el servicio winbindd, que se deberá lanzar desde /etc/rc.d/init.d/winbind start

(4)

getent passwd obtiene una salida similar a /etc/passwd pero con todos los usuarios del dominio getent group obtiene una salida con todos los grupos del dominio

3.3. PAM

El último paso consiste en conseguir que los usuarios puedan entrar en el servidor (siempre y cuando tengan privilegios para ello).

Se podría permitir que los usuarios que se validan en el servidor NT pudieran hacer iniciar sesión, conectarse por telnet etc. En este caso, sólo se va a permitir acceder a los recursos que le permita Samba

Para esto se utiliza PAM, como sistema de autenticación. Para ello se deben modificar una serie de ficheros que se encuentran en /etc/pam.d/ dependiendo de los servicios que necesitas permitir la validación.

En este caso se han modificado el fichero system-auth, que es genérico y se llama desde todos los servicios y el fichero login, para permitir este servicio

3.3.1. /etc/pam.d/system-auth

#fichero /etc/pam.d/system-auth auth required /lib/security/pam_env.so

auth required /lib/security/pam_unix.so use_first_pass likeauth nullok auth required /lib/security/pam_deny.so

account required /lib/security/pam_unix.so password required /lib/security/pam_cracklib.so

password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow password required /lib/security/pam_deny.so

session required /lib/security/pam_limits.so session required /lib/security/pam_unix.so

3.3.2. /etc/pam.d/login

#fichero /etc/pam.d/logi

auth required /lib/security/pam_securetty.so auth required /lib/security/pam_nologin.so

auth sufficient /lib/security/pam_stack.so service=system-auth

# Esta linea se eliminará en el caso de querer validación local de usuarios auth required /lib/security/pam_winbind.so

account sufficient /lib/security/pam_winbind.so

account required /lib/security/pam_stack.so service=system-auth password required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_stack.so service=system-auth session optional /lib/security/pam_console.so

(5)

El mecanismo de estos ficheros consiste en una serie de reglas que se deben cumplir para permitir el acceso al servicio. Así auth required /lib/security/pam_securetty.so comprueba mediante la librería pam_securetty.so si se está ejecutando desde un terminal seguro, y esta condición es requerida, es decir obligatoria.

También se requiere en este ejemplo que se la autenticación se valide mediante pam_winbind. Y esto signfica que los usuarios locales de la máquina Linux no podrán iniciar sesión, porque se requiere para iniciar sesión ser validado mediante winbind.

En el caso de la cuenta de usuario, account, es suficiente si pam_winbind lo valida, con lo que si el dominio NT valida la cuenta se podría hacer login en la máquina Linux.

4. Los usuarios de dominio y LINUX

El último paso consiste en sincronizar la base de datos de usuarios de dominio y la del servidor NT, para ello debe ejecutar la orden

smbpasswd -j <Dominio> -r <Servidor PDC> -U <usuario con claves administrativas de dominio>

A continuación deberás permitir que el usuario inicie sesión en el servidor LINUX.

A partir de aquí, el usuario podrá ver el contenido compartido del servidor, y si existe una carpeta en home con su nombre de usuario es posible que la vea, aunque podría suceder que no fuera capaz de validarse para ese recurso. Esto es debido a que para LINUX, el usuario será<DOMINIO>+<USUARIO>, en vez de

<USUARIO>con lo que no considera que el usuario sea propietario del recurso y no le permite acceder.

Para cambiar el propietario de un recurso se utiliza el comando chown.

chown <usuario ( DOMINIO+USUARIO) > <recurso>

También puede cambiar el grupo de un recurso

chgrp < ( DOMINIO +GRUPO)> <recurso>

Una última nota, los usuarios del dominio deberán tener permiso para validarse en el servidor, con lo que se deberá añadir a los usuarios inicio de sesión en el servidor Linux.

5. Para saber más

(6)

el "Samba Cómo" una lectura imprescindible para empezar (http://www.insflug.org/COMOs/Samba-Como/Samba-Como.html)

Integrating Linux into Windows Networks (ranger.dnsalias.com/mandrake/samba/ Integrating%20Linux%20into%20Windows%20Networks.pdf)

Referencias

Documento similar