Instalación de Samba como PDC.

Primero necesitamos un controlador primario de dominio. Esta máquina será la que albergará la base de datos que usuarios que van a compartir todos los equipos de la red y que va a permitir iniciar sesiones de trabajo tanto en máquinas Linux como en máquinas Windows.

El primer paso para crear un PDC funcional en Samba es entender qué parámetros son necesarios en el fichero smb.conf. En el siguiente ejemplo podemos encontrar un caso de smb.conf para actuar como PDC. Lo ponemos primero para los impacientes y más tarde se describen los parámetros.


[global]
netbios name = jefe
workgroup = IESBEZ
passdb backend = tdbsam
os level = 33
preferred master = yes
domain master = yes
local master = yes
security = user
domain logons = yes
logon path = \\%N\perfil\%u
logon drive = H:
logon home = \\servidor\%u\perfil
logon script = %u.bdat
add user script = /usr/sbin/useradd -d /dev/null -s /bin/false -g samba -M %u
add user to group script = /usr/sbin/groupmod -m "%u" "%g"
add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev /null -s /bin/false %u
delete user script = /usr/sbin/userdel "%u"
delete group script = /usr/sbin/groupdel "%g"
delete user from group script = /usr/sbin/groupmod -x "%u" "%g"
set primary group script = /usr/sbin/usermod -g "%g" "%u"
passwd program = /usr/sbin/passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated*
unix password sync = Yes
[netlogon]
path = /var/samba/netlogon
read only = yes
write list = root
[profiles]
path = /var/samba/perfil
read only = no
create mask = 0600
directory mask = 0700
            

El resto sería la descripción de los servicios que queremos que comparta el servidor.

A continuación vamos a describir las opciones fundamentales mostradas en este ejemplo:

passdb backend

Aquí indicamos que tipo de base de datos tiene que usar Samba para guardar las datos de los usuarios y los grupos. Hemos obtado por poner "tdbsam", pero también podríamos haver usado smbpasswd, el sistema clásico de versiones antiguas de Samba o ldapsam, para tener los datos en un directorio LDAP. La entrada guest (invitado) es la cuenta por omisión y está incluida de forma predeterminada, no es necesario añadirla explícitamente. Si vamos a usar un Contoladores Secundarios de Dominio (BDC), la única elección lógica es usar LDAP para que el passdb backend se pueda distribuir, pero esto se tratará en otro documento distinto. En este casos los ficheros tdbsam y smbpasswd no se pueden distribuir y en consecuencia no se deberían usar.

Es posible indicar una lista de valores para este parámetro, por ejemplo:


passdb backend = tdbsam:/etc/samba/private/passdb.tdb smbpasswd:/etc/samba/smbpasswd

              

Si ponemos varias bases de datos, estas se consultan en el mismo orden en el que se especifican, pero tenemos que tener en cuenta que los nuevos usuarios siempre se añaden a la primera base de datos especificada.

Parámetros del control del dominio

Los parámetros os level, preferred master, domain master, security, encrypt passwords y domain logons juegan un papel central para asegurar el control del dominio y las sesiones de red.

El parámetro os level tiene que tomar un valor superior a 32. Un controlador de dominio tiene que ser el examinador principal. El valor de parámetro controla el nivel en que se anuncia samba a si mismo para la elección de examinador.

Un controlador de dominio tiene que tener el modo de seguridad como user, tiene que admitir contraseñas cifradas compatibles con Microsoft y tiene que proporcionar el servicio de sesiones del dominio (domain logons). La contraseñas cifradas tienen que estar activadas.

Parámetros de entorno

Los parámetros logon path, logon home, logon drive y logon script definen los valores que determinan el entorno que ayudan a facilitar las operaciones de sesión y de control automático y de red.

logon path indica el directorio home donde se guardan los ficheros de perfiles (NTuser.dat para windows NT). A diferencia de versiones previas, no influye en los perfiels de W9X. Para gesionar los perfieles en Win 9X tenemos que usar logon home.

Esta opción toma las sustituciones estándar, por ejemplo %u para el nombe de usuari o %m para el nambre de máquina cliente, lo que permite tener script de conexión para cada usuario o máquina. También especifica el directorio desde el cual se cargan los contenidos de las carpetas "escritorio", "menú inicio", "programas" y "entorno de red" tal y como queremos que se muestren en los clientes Windows NT.

El usuario debe poder leer el servicio y la ruta para que las preferencias y los directorios se carguens en los clientes Windows NT. El recurso dtiene que tener permiso de escritura, al menos la primera vez que el usuario se conecta, para que los clientes Windows NT puedan crear el fichero user.dat y otros directorios. Los directorio y cualquiera de los contenidos, pueden, si es necesario en nuestro caso, ponerse como sólo lectura. No es conveniente que el fichero NTuser.dat se haga de sólo lectura, renómbrelo como NTuser.man para llevar a cabo los efectos deseados ( MANdatory profile que impide su escritura).

logon home especifica la ubicación del directorio home cuando se conectan estaciones Win95/98 a un PDC Samba. Esto le permite hacer:


C:\>NET USE H: /HOME

              

desde la línea de órdenes, o desde un script albergado en el servidor para poder montar en la máquina cliente el directorio personal que tiene el usuario en el servidor, por ejemplo.

Esta opción, al igual que vimos en el anterior paráemtro, toma las sustituciones normales, permitiendole tener scripts distintos por usuario o máquina.

Este parámetro se puede usar con Win9X para asegurarse que los perfiles se almacenan en un subdirectorio del directorio personal del usuario. Esto se hace de la siguiente forma:


logon home = \\servidor\%u\perfil
              

Tenga en cuenta que esta opción sólo es válida si Samba está configurado como logon server.

logon drive especifica la ruta local al cual se conectarán los directorios home las estaciones de trabajo NT. Tenga en cuenta que esta opción sólo es válida si Samba está configurado como logon server.

logon script especifica el fichero de lotes (.bat) o fichero de comandos NT (.cmd) que el cliente tiene que cargar y ejecutar cuando se conecta correctamente al dominio. El fichero debe tener el estilo de fin de línea de DOS (cr/lf). Se recomienda usar un editor estilo DOS para crear este fichero. El script debe ser relativo al path del servicio [netlogon]. Si el servicio [netlogon] especifica un path de /var/samba/netlogon y logon script = CONEX.BAT, entonces el fichero que se carga será:


/var/samba/netlogon/CONEX.BAT

              

El contenido del fichero está enteramente a disposición del administrador. Se puede poner NET TIME \\SERVIDOR /SET /YES, para forzar a cada máquina que sincronice su reloj con el del servidor. Otro que se podría añadir sería NET USE U: \\SERVER\PROGRAMAS para las utilidades de uso común. Observe que es particularmente importante no permitir acceso de escritura al servicio [netlogon] o de escritura sobre los ficheros de lotes, o le permite a los usuarios modificar arbitrariamente los ficheros batch y comprometer la seguridad. Esta opción también toma las sustitucions estándar, permitiéndole tener scritps de logon separados para cada usuario o máquina.

Gestión de cuentas

Parte de la gestión del controlador del dominio se puede realizar de forma remota. Hay situaciones en las que el PDC tiene que añadir una cuenta d eusuari o grupo nueva y tenemos que enesñarle a hacerlo. Por ejemplo, cada máquina que se agrega al dominio necesita una cuenta de máquina en el servidor y lo ideal es que se cree automáticamente. También es posible, desde un cliente NT, añadir o eliminar grupos o usuarios. Los siguientes parámetros no facilitan el desarrollo de todas estas acciones.

add user script: Esta opción permite a Samba crear los usuarios UNIX requeridos bajo demanda cuando, porejemlo, un usuario del dominio que no está dado de alta en el servidor SAMBA accede al servidor Samba. Por ejemplo, podríamos poner:


 add user script = /usr/sbin/useradd -d /dev/null -s /bin/false -g samba -M %u
              

add machine script: Esta opción se ejecutará cuando agregue una máquina a su dominio. Los nombres de máquina terminan en "$". Por ejemplo, nos podría servir:


add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev /null -s /bin/false %u
              

El resto de los parámetros tienen una características similares:

add user to group script = /usr/sbin/groupmod -m "%u" "%g"
delete user script = /usr/sbin/userdel "%u"
delete group script = /usr/sbin/groupdel "%g"
delete user from group script = /usr/sbin/groupmod -x "%u" "%g"
set primary group script = /usr/sbin/usermod -g "%g" "%u"
              

El recurso NETLOGON

El recurso NETLOGON, como ya hemos visto en la descripción de los parámetros de configuración del PDC. Juega un papel central en las sesiones de dominio y en el soporte de la pertenencia al dominio. Este recurso está presente en todos los controladores de dominio Microsof. Se usa para proporcionar guiones o scripts de conexión, almacenar ficheros de políticas de grupo (NTConfig.POL) y otras herramientas que pueden ser necesarias para procesar las sesiones. Es un recuros esencial en un controlador de dominio.

Recurso PROFILES

Este recurso se usa para guardar los periles del escritorio. Cada usuario tiene que tener un directorio en la raíz de este recurso. Este directorio tiene que tener permiso de escritura para el usuario y tiene que tener permiso de lectura global.

Gestión de los usuarios del dominio

Primero creamos un grupo para incluir a todos los usuarios de Samba que vamoms a compartir en la red:


groupadd samba
              

Con esto hemos creado un grupo llamado samba en el cual vamos a integrar a todos los usuarios

Ahora tenemos que agregar los usuarios al dominio en la máquina con samba. En primer lugar es necesario, para la base de datos de usuarios que hemos elegido, que cada usuario de Samba tenga una correspondencia con un usuario Unix. Entonces ejecutaremos:


useradd -s /bin/false -g samba usuario
              

Si el usuario tuviera que hacer ciertas operaciones con el servidor podríamos asignarle otra shell, es decir cambiamos /bin/false por /bin/bash

Una vez que tenemos creado el usuario Unix, agregamos ese usuario a Samba:


smbpasswd -a usuario
              

y con esto hemos terminado la configuración del servidor.

Ahora reiniciamos Samba:


/etc/init.d/smb restart