jump to navigation

openSUSE 11.1 como controlador de Dominio, la manera facil mayo 18, 2009

Posted by easgs in opensuse.
trackback

samba

 

Este es un ejemplo de un servidor openSUSE 11.1 configurado como PDC usando samba, en este escenario era requerido un controlador de dominio para una red de hasta 50 computadoras con Windows XP Professional SP-3 sin necesidad de un BDC por lo que se usara el backend tdbsam, de lo contrario se tendría que usar LDAP, se usara wins para la resolución de nombres, este servidor no funcionara como servidor de impresión por lo que esas opciones no se explican, para evitar redundancia tampoco se explican opciones ya planteadas previamente en el documento, también se necesita el servicio de DHCP para asignar dinámicamente las direcciones IP a las estaciones de trabajo y ofrecer el servidor wins, lo cual se explica en otro tutorial.

¿Porque este escenario?

Porque este es el escenario mas comun con el que se encuentra un administrador de redes y abarca una gran cantidad de empresas en el ambito nacional, redes de 10 hasta 50 computadoras, de hecho el equipo samba dice que el tdbsam se puede usar en redes con hasta 250 usuarios, en cualquier otro escenario LDAP es la recomendacion.

¿Pero que rayos es un controlador de dominio?

Un Domain Controller contiene una base de datos de todos los usuarios y las maquinas que son parte de nuestra red, de esta manera podemos administrar los recursos y politicas de seguridad de manera centralizada y esto nos permite tener un ambiente mas seguro.

 

Para comenzar debemos crear primero los usuarios easgs easgs1 easgs2 easgs3 (sustituya con el nombre que mas le convenga) en openSUSE usando Yast.

 

Este es el archivo smb.conf completo el cual se encuentra en la ruta /etc/samba y se puede editar usando kwrite.

 [global]

                workgroup = BLUE

                netbios name = suse-blue

                domain logons = yes

                domain master = yes

                local master = yes

                os level = 65

                preferred master = yes

                security = user

                logon path =

                logon drive = P:

                passdb backend = tdbsam

                add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$

                name resolve order = wins bcast host lmhost

                server string = “opensuse”

                printing = cups

                printcap name = cups

                printcap cache time = 750

                cups options = raw

                wins support = yes

 [homes]

                 comment = Home Directories

                valid users = %S, %D%w%S

                browseable = No

                read only = No

                inherit acls = Yes

[profiles]

                comment = Network Profiles Service

                path = %H

                read only = No

                store dos attributes = Yes

                create mask = 0600

                directory mask = 0700

 [printers]

                comment = All Printers

                path = /var/tmp

                printable = Yes

                create mask = 0600

                browseable = No

[print$]

                comment = Printer Drivers

                path = /var/lib/samba/drivers

                write list = @ntadmin root

                force group = ntadmin

                create mask = 0664

                directory mask = 0775

[netlogon]

                comment = network logon service

                path = /var/lib/samba/netlogon

                write list = root

 [datos]

                comment = datos varios

                force user = easgs

                guest ok = No

                inherit acls = Yes

                path = /home/easgs/datos/

                valid users = easgs easgs1 easgs2 easgs3

                write list = easgs easgs1

                read list = easgs2 easgs3

 

Sección [Globals]

 

La sección [globals] aparece en todos los ficheros de configuración de Samba, aunque no es obligatoria su definición. Cualquier opción de esta sección se aplicará al resto de recursos, como si los contenidos de la sección se copiasen a todas las demás. Sólo una salvedad: otras secciones pueden contener la misma opción pero con distinto valor; lo último prevalece siempre sobre lo antiguo, así que ese último valor prevalecerá sobre el establecido en la sección [globals].

 

Workgroup = BLUE

 

Esta opción establece el nombre de nuestro dominio a BLUE.

 

Netbios name = suse-blue

 

Este parámetro fija el nombre NetBIOS por el cual es conocido el servidor Samba a suse-blue.

 

Domain logons = yes

 

Configura a Samba para aceptar accesos en el dominio actuando como PDC.

 

Domain master = yes

 

Activa la comparación de lista WAN. Este parámetro indica a nmbd que solicite un nombre NetBIOS de dominio especial que lo identifica como  examinador principal del dominio para el grupo de trabajo dado. Los examinadores locales del mismo grupo de trabajo dado en subredes-aisladas proporcionan a este nmbd sus listas locales, y solicitan a smbd una copia completa de la lista a la red amplia. Entonces las listas de clientes contactan con sus servidores locales y reciben una lista de la red amplia, en lugar de las listas de las subredes.

 

En pocas palabras mantiene una lista completa de todas las maquinas del dominio.

 

Local Master = yes

 

Le indica al servidor a mantener una lista local de las maquinas de su subred.

 

Os level = 65

 

Este entero controla el nivel en que se anuncia samba a si mismo para la elección de examinador. El de este parámetro determina si nmbd tiene oportunidad de convertirse en examinador principal del Grupo de Trabajo en el área de difusión local.

 

Al poner el valor a 65 se asegura que ganara sobre cualquier otro sistema operativo en la red

 

Preferred master = yes

 

Este parámetro booleano controla si Samba es un examinador principal de listas principal para su grupo de trabajo.

 

Si se pone a yes, al iniciar, samba forzará una elección y tendrá una ligera ventaja para ganar la elección. Es recomendable que este parámetro se use en conjunción con domain master = yes, para que samba pueda garantizar convertirse en un domain master.

 

Use esta opción con precaución, porque si hay varios hosts (servidores samba, Windows 95 o NT) que son examinadores de listas preferidos en la misma subred, intentarán continua y periódicamente convertirse en examinador principal local. Esto ocasiona un tráfico de difusión innecesario y reduce las capacidades de las listas.

 

Security = user

 

La seguridad a nivel de usuario es la configuración predeterminada para Samba. Aún si la directriz security = user no está listada en el archivo smb.conf, es utilizada por Samba. Si el servidor acepta la combinación de nombre de usuario/contraseña del cliente, el cliente puede montar múltiples recursos compartidos sin tener que especificar una contraseña para cada instancia. Samba también puede aceptar solicitudes de nombre de usuario/contraseña basadas en la sesión. El cliente mantiene múltiples contextos de autenticación usando un único UID por cada inicio de sesión.

 

Logon path =

 

Este parámetro indica el directorio home donde se guardan los ficheros de perfiles (NTuser.dat para windows NT).

 

Esta opción toma las sustituciones estándar, permitiendo 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” y se muestran en sus clientes Windows NT.

 

El recurso y la ruta deben poderse leer por el usuario para que las preferencias y los directorios sean cargados en los clientes Windows NT. El recurso debe 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 se necesita, 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).

 

Los clientes Windows algunas veces pueden mantener conexiones a los recursos [homes], incluso si no hay usuario registrado. Por tanto es vital que la ruta de logon no incluya una referencia a los recursos homes (i.e \\%L\HOMESrofile_path causará problemas). .

 

Esta opción toma las sustituciones estándar, permitiendo tener script de conexión para cada usuario o máquina.

 

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

 

Para deshabilitar los perfiles móviles esta opción se deja sin definir, de esta manera se forzara a Windows a crear el perfil en la maquina local que es el caso de nuestro ejemplo, bajo Windows Xp esto se puede verificar en propiedades de la PC, opciones avanzadas, perfiles de usuarios configuración, en el campo tipo debe de decir local.

 

Logon drive = F:

 

Mapea la carpeta home del usuario a la unidad F: cabe mencionar que puede ser cualquiera siempre y cuando no entre en conflicto con una existente, al dar doble clic sobre el icono de Mi Pc nos aparecerá esta unidad.

 

Passdb backend = tdbsam

 

Esta opción permite al administrador elegir qué sistema o backend usa para guardar y recuperar contraseñas. Permite, por ejemplo, usar smbpasswd y tdbsam sin recompilar. Se pueden especificar múltiples backends separados por espacios. Los backends se usan en orden en el que se especifican. Los nuevos usuarios siempre se añaden al primer backend especificado, en nuestro ejemplo se usar tdbsam.

 Add machine script = /usr/sbin/useradd –c Machine –d /var/lib/nobody –s /bin/false %m$

 Esta es la ruta completa a un guión que smbd(8) ejecutará cuando agregue una máquina a su dominio usando el método con las contraseñas y claves del administrador.

 

En este ejemplo se creara la cuenta de la maquina usando el nombre netbios de la misma junto con el carácter $ en el archivo de passwords, también se pondrá el comentario Machine y lo agregara al grupo users que es el predeterminado para opensuse, después que unamos una maquina si revisamos nuestra lista de usuarios Linux y samba tendremos la nueva entrada con el nombre de la maquina con el carácter $ al final.

 

Name resolve order = wins bcast host lmhost  

Esta opción se usa en los programas de Samba para determinar qué servicios de nombres y en qué orden resolver nombres de hosts a direcciones IP. Su principal función es controlar como se realiza la resolución NetBIOS. Esta opción toma una cadena, separada por espacios, de diferentes opciones de resolución.

 

Las opciones son “lmhosts”, “host”, “wins” y “bcast”. Hacen que los nombres se resuelvan de la siguiente forma:

 

lmhosts : Busca una dirección IP en el fichero lmhosts de Samba. Si la línea de lmhosts no tiene tipo de nombre adjuntado al nombre NetBIOS (vea lmhosts(5)) entonces vale cualquier tipo para la búsqueda.

 

host : Hace una resolución de nombre de host a dirección IP usando el sistema de resolución del sistema /etc/hosts , NIS, o búsquedas DNS. Este método de resolución depende del sistema operativo (por ejemplo, en IRIX o Solaris esto puede ser controlado por el fichero /etc/nsswitch.conf). Observe que este método se usa sólo si el tipo de nombre NetBIOS consultado es tipo 0x20 (server) o nombre tipe 0x1c (controladores de dominio). El último caso es sól útil para dominios Active directory y resultan de una consulta para la entrada SRV RR queverifique _ldap._tcp.domain.

 

wins: Pregunta por un nombre en la dirección IP address indicada en el parámetro wins server. Si no se ha especificado servidor WINS, este método se ignora (no se debería usar wins si no se cuenta con mas de una subred).

 

bcast : Efectúa una difusión (broadcast) en cada interfaz local conocido listado en el parámetro interfaces = . Este es el método de resolución menos seguro ya que depende de los hosts que están conectados en la red local.

 

Server String =”opensuse”

 

Esto controla qué cadena aparecerá en el cuadro de comentario de la impresora en el gestor de impresión y en la conexión IPC en “net view”. Puede ser cualquier cadena que quiera que vean sus usuarios y es la descripción de su equipo en el entorno de red.

 

Wins support = yes

 

Este parámetro booleano controla si Samba actúa como servidor WINS. No debería ponerlo como yes salvo que tenga una red multi-sub-red y quiera que un nmbd particular sea su servidor WINS. Tenga en cuanta que NUNCA debería poner esto como true en más de una máquina de su red. .

La sección [homes]

 Si existe una sección denominada [homes] incluida en el fichero de configuración, los clientes se podrán conectar a su directorio HOME del servidor.

 

Comment = Homes directories

 

Descripción del servicio

 

Valid users = %S, %D%w%S

 

Significa que para los usuarios validos se tomaran del valor del servicio actual o el nombre del dominio o grupo de trabajo del usuario actual, nadie más podrá entrar.

 

Browseable = no

 

Significa que los usuarios no podrán navegar en el recurso a través del entorno de red pero si podran ver el recurso homes, cuando se configura a yes en el entorno de red aparecen dos recursos compartidos unos con el nombre del usuario y otro llamado homes.

 

Read only = no

 

Por defecto samba siempre configura cualquier directorio como de solo lectura por razones de seguridad, por lo tanto debemos indicarle que queremos ser capaces de escribir en este directorio.

 

Inherit acls = yes

 

Este parámetro se puede usar para asegurar que si existen ACL predeterminadas en el directorio padre, estas se asignan cuando se crean subdirectorios. El comportamiento predeterminado es usar el modo especificado cuando se crea un directorio. Al activar esta opción fija el modo 0777, así garantiza que el las acl predeterminadas del directorio se propagan.

 

Las ACL son listas que le dicen al sistema operativo u otros dispositivos de red que permisos tiene cada usuario sobre cada objeto en una computadora o dispositivo de red.

 

Seccion [Profiles]

 

Es una sección especial que define parámetros para perfiles de red de los usuarios.

 

Path = %H

 

Es la ruta dada por el nombre del directorio home del usuario obtenido por %u que es el nombre del servicio actual.

 

Store dos attributes = yes

 

Esta opción le indica a samba usar el atributo extendido “userDOSATTRIB” para almacenar los permisos ocultos del sistema de archivos DOS “hidden” y “system”.

 

Create mask = 0600

 

Cuando se crea un fichero, los permisos necesarios se calculan de acuerdo con la asociación de los modos DOS a los permisos UNIX, y los modelos UNIX resultantes son una AND bit a bit con este parámetro. Este parámetro es una máscara de bits para los modelos UNIX. Cualquier bit no puesto se elimina del conjunto cuando se crea un fichero.

 

En este caso el propietario tendrá derecho de lectura y escritura y le quitara todos los privilegios a los demás.

 

Directory mask = 0700

 

Este parámetro es el modo octal que se usa cuando se convierte el modo DOS al modo UNIX al crear directorios UNIX.

 

Cuando se crea un directorio, los permisos necesarios se calculan de acuerdo con la traducción de los modos DOS a los permisos UNIX, y el modo UNIX resultante es un AND de los bits correspondientes con este parámetro. Este parámetro puede ser un máscara de bits para los modos UNIX de un directorio. Cualquier bit not puesto aquí se elimina de los modos del directorio cuando se crea.

 

En este caso el propietario tendrá derechos de lectura escritura y ejecución y les quitara todos los privilegios a los demás.

  

Sección [netlogon]

 

Aquí especificamos dónde está el netlogon.

 

Path= /var/lib/samba/netlogon

 

Dentro de esta carpeta debemos ubicar los archivos logon script en caso que deseemos usar uno

 

Write list = root

 

Esto significa que solo el administrador tiene acceso de lectura a este recurso nadie mas.

 

Recurso compartido [datos]

 

Force user = easgs

 

Esta opción fuerza que los usuarios que se logean al servicio lo hagan como el usuario easgs por lo tanto todo lo que hagan será con los mismo derechos de este usuario.

 

path = /home/easgs/datos/ 

 

El recurso compartido se encuentra en la carpeta home del usuario easgs.

 

Guest ok = no

 

Si este parámetro es yes para un servicio, entonces no se requiere clave para conectar con dicho servicio. Los privilegios serán los mismos de guest account.

 

En este caso no permitiremos eso.

 

Valid users = easgs easgs1 easgs2 easgs3

 

Estos usuarios son los únicos permitidos para usar este recurso.

  

Write list = easgs easgs1

 

Estos usuarios son lo únicos permitidos para escribir en este recurso.

 

Read list = easgs2 easgs3

 

Estos usuarios solo tienen permiso de lectura en este recurso.

  

Agregar los usuarios a samba.

  

Para que esto funcione primero debemos crear los usuarios en Linux usando yast (lo cual ya hicimos al inicio de este documento), luego ejecutamos el siguiente comando por cada usuario para agregarlo a samba.

 

pdbedit –a easgs

 

Mapear los grupos UNIX a grupos Windows.

 

Cuando unimos una maquina con Windows XP a un controlador de dominio de la gama se servidores Windows server y queremos compartir un recurso tenemos la opción de agregar los grupos domain users u otros para abarcar todos esos usuarios, para tal efecto, en samba ejecutamos los siguiente lo cual es mandatorio al menos para estos tres grupos.

 

net groupmap add ntgroup=”Domain Admins” unixgroup=root rid=512 

net groupmap add ntgroup=”Domain Users” unixgroup=users rid=513 

net groupmap add ntgroup=”Domain Guests” unixgroup=nobody rid=514

 

Esto hará que el grupo detectado por la estación Windows como Domain Users sea en verdad el grupo UNIX users, y tomara todos los usuarios de dicho grupo siempre y cuando existan en el password backend de samba.

 

El FIREWALL

 

Para que esto funcione debemos habilitar en el firewall los servicios samba server, DHCP, y Netbios

El uso del servidor DHCP nos ahorra el trabajo de estar configurando manualmente los protocolos TCP/IP en cada maquina, lo unico que tendremos que hacer es unir las estaciones con Windows XP a nuestro server a como lo hariamos con cualquier controlador de dominio con Windows server 2003 o 2008.

Con esto ya tenemos funcionando nuestro servidor samba como controlador de dominio.

 

Lea tambien:

Variables usadas por samba

Como limpiar la cache de wins en openSUSE

openSUSE en un grupo de trabajo mixto

Comentarios»

1. Alex Rodriguez - mayo 18, 2009

Buenisimo el tutorial …. esta super bien explicado … hasta con detalles que ya se me habian olvidado para que eran..

Felicidades ! =D

2. Ricardo Perez - mayo 19, 2009

Muy buen tutorial…
Te Felicito, esta completo y a la vez sencillo…

Espero que muy pronto elabores otros como este!

3. Luis Méndez - febrero 20, 2012

tengo problemas con Mapear los grupos UNIX a grupos Windows.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: