Samba 4
Samba 4
Samba 4
de 3
Posted on mayo 12, 2013 by Carlos Alonso Martnez
Sin duda, Active Directory es la caracterstica ms atractiva a la hora de decidirnos por Windows Server
como servidor de nuestra red local. El conjunto de servicios y utilidades que ofrece para la gestin de
usuarios y equipos permite una gestin tremendamente productiva, especialmente si trabajamos con clientes
Windows.
Por otro lado Samba, la implementacin para el mundo Linux del protocolo CFIS de Windows, permita
hasta la fecha implantar un servidor de dominio NT, que aunque permite la autenticacin centralizada,
quedaba muchos pasos atrs respecto las funcionalidades de cualquier Windows Server de 2003 hacia
adelante. Pero, ahora la nueva versin de Samba, Samba 4, permite implementar un DC (Domain Controller)
basado en Active Directory.
En este primer post, vamos a documentar la instalacin de Samba 4, en este caso sobre un Ubuntu Server
12.04 y vamos a agregar un cliente al dominio. En los posts siguientes, seguiremos con la configuracin de
nuestro directorio activo y con el despliegue de directivas de grupo.
En primer lugar configuraremos la red de nuestro futuro servidor, editando el archivo
/etc/network/interfaces (trabajaremos a lo largo del post con privilegios elevados, por tanto, iniciaremos
sesin como root o haremos sudo su):
Observamos como configuramos como primer servidor de nombres el propio equipo, como secundario
elegimos alguno que nos permita acceder a Internet ( el de nuestro ISP o el pblico de Google en este caso).
A continuacin instalaremos el servicio NTP (Network Time Protocol) para asegurar que nuestro equipo
siempre tenga la hora correcta (el funcionamiento de Kerberos exige que los equipos estn sincronizados en
cuanto la hora). Para instalar el servicio:
# apt-get install ntp
Una vez instalado, configuraremos el servicio para elegir el servidor horario de nuestra preferencia, en
nuestro caso, elegimos los servidores ubicados en Espaa. As mismo, habilitamos el servicio para que
nuestra red pueda consultar la hora al servidor (podemos consultar los servidores disponibles en la pgina de
NTP project.
A continuacin procederemos a instalar Samba 4. Aunque se puede descargar como paquete ya construido
mediante apt-get, la pgina de Samba recomienda bajar las fuentes y compilarlas. De hecho, si se intenta
bajar el paquete del repositorio da un error a media instalacin ( en algunos blogs comentan cmo seguir la
instalacin a partir de ese punto).
En primer lugar, nos bajamos los archivos necesarios o prerequisitos:
# apt-get install build-essential libacl1-dev python-dev libldap2-dev pkg-config gdb libgnutls-dev
libreadline-dev libattr1-dev python-dnspython libpopt-dev libbsd-dev attr docbook-xsl libcups2-dev git
Una vez finalizada la instalacin, bajaremos la versin ms reciente del repositorio GIT:
# git clone git://git.samba.org/samba.git /usr/src/samba4/
Una vez finalizada la descarga procederemos a compilar:
# sudo ./configure enable-debug
# make (gracias a luigdima por el aviso)
# make install
y aadiremos el path de las carpeta bin y sbin de samba:
# export PATH=/usr/local/samba/sbin:/usr/local/samba/bin:$PATH
Ya tenemos el Samba instalado, ahora podemos proceder a la construccin del dominio, para ello
utilizaremos el comando samba-tool domain provision y procederemos a rellenar los datos de nuestro
dominio. En DNS forwarder, pondremos la direccin IP del DNS que queremos que resuelva las peticiones
externas (reenviador).
En cuanto la password que nos solicita, deber tener complejidad, caso contrario nos pedir una nueva
contrasea, para las pruebas realizadas hemos elegido P@ssw0rd (obviamente en produccin debeis elegir
una contrasea ms original
)
Si todo funciona sin problemas, podemos seguir, pero si tenemos algn problema deberemos reiniciar el
proceso, para ello borraremos el archivo smb.conf y procederemos a repetir el proceso de crear el dominio,
pero muy importante aadiendo el argumento use-ntvfs al final y configurando directamente con el
comando los argumentos, por ejemplo:
# samba-tool domain provision realm casa.local domain CASA adminpass P@ssword server-role=dc
use-ntvfs
Posteriormente en el archivo smb.conf aadiremos el dns forwarder y la opcin de update de los clientes.
Llegados a este punto, podemos probar a agregar un equipo al dominio, en nuestro caso un Windows 7
Enterprise. Para ello, en la configuracin de red del cliente, pondremos como DNS la IP de nuestro servidor
samba:
Durante el proceso nos pedir el nombre del REALM (reino Kerberos) donde pondremos el nombre del
dominio que elijamos, el nombre y nos pedir confirmar el dominio, el rol del servidor y muy importante
nos pregunta que servicio DNS vamos a usar, como en nuestro caso, nicamente queremos que el
controlador haga resolucin de dominio, elegimos SAMBA_INTERNAL y confirmamos como reenviador
DNS la IP del dns-nameserver que tengamos configurado actualmente. Finalmente, nos pide un password
que deber cumplir los requerimientos de seguridad por defecto que marca Active Directory, en este caso,
como no es un servidor en produccin elegimos P@ssword.
Ahora y este paso es muy importante no olvidarlo, debemos hacer que el servidor se apunte a s mismo
(recordad que un controlador de dominio en Active Directory utiliza el servicio DNS), para ello editaremos
el archivo de interfaces:
Para finalizar, realizaremos las comprobaciones que ya vimos en el post citado anteriormente, para
comprobar que tanto el servicio de DNS, como el de Kerberos funcionan correctamente:
En primer lugar hacemos las comprobaciones de DNS, miramos si el servicio LDAP y el servidor se
resuelven va servicio de nombres:
En el proceso de instalacin nos solicita el nombre del Realm, donde introduciremos el que hemos utilizado
para nuestro dominio:
De esta manera ya tenemos nuestro controlador de dominio configurado, ahora slo queda agregar los
clientes Windows y administrar el dominio como ya vimos en los post 2 y 3 de la serie original.
Actualizacin (21/04/2016)
ltimamente el paquete que instala por defecto es la versin 4.3.8 que est dando problemas a la hora de
agregar clientes al dominio, ya que aparece un error de recurso en red no disponible
De momento, la solucin que he encontrado para salir del paso, es forzar la instalacin de la versin 4.1.6:
Cuando instala, saldr un primer mensaje proponiendo una solucin, que debemos contestar No y la segunda
propuesta, un dowgrading de diversos paquetes ya instalados, al que deberemos contestar afirmativamente.
Intentado ver las diferencias, observamos que la versin que se instala por defecto es la 4.3.8. De momento,
la solucin que he encontrado para salir del paso, es forzar la instalacin de la versin 4.1.6 con la que
estaba seguro que era posible realizar el proceso.
En primer lugar, si trabajamos con mquinas virtuales, iremos a la instantnea previa a la instalacin de
Samba y procederemos a instalar la versin deseada con el siguiente comando:
Cuando instala, saldr un primer mensaje proponiendo una solucin, que debemos contestar No
A partir de ah, contestar S (Y) a las preguntas que formule y ya tendremos la versin 4.1.6 correctamente
instalada.
Actualizacin (30/04/2016)
En clase, despus de instalar las RSAT en las mquinas virtuales Windows 10 Enterprise, nos hemos
encontrado en que en muchas mquinas, a la hora de intentar crear los usuarios desde la MMC Usuarios y
Equipos se mostraba el siguiente error:
Lo curioso, es que hay alumnos que s que les funciona, teniendo la misma configuracin. An no he
encontrado ninguna explicacin, pero para salir del paso, lo ms sencillo es crear los usuarios directamente
en el controlador de dominio, mediante el comando samba-tool :
samba-tool user add nombre_usuario
De hecho, al igual que en un servidor Windows Server podemos administrar totalmente el dominio mediante
comandos de la consola o an mejor, mediante PowerShell, en Samba4, disponemos del comando sambatool.
En este link se muestra una lista muy completa de todas las opciones de esta herramienta.
Actualizacin (10/05/2016)
Alberto (gracias por el aporte) nos comenta cmo solucionar el problema con las versiones de samba 4.3.x
apt-get install winbind libnss-winbind
Al instalar estos dos paquetes ya podremos agregar nuestro cliente sin problemas al dominio creado.
En el post anterior vimos como crear un controlador de dominio de Active Directory con Samba 4. En este
segundo post, procederemos a administrar dicho dominio y realizar algunas de las tareas bsica ( creacin de
usuarios, grupos, configuracin de perfiles, etc.).
Aunque Samba 4 dispone de herramientas grficas web como SWAT, utilizaremos para administrar el
dominio, el conjunto de herramientas gratuitas que ofrece Microsoft, conocido como RSAT (Remote Server
Administration Tool). Dichas herramientas, disponibles tanto para Windows 7 como Windows 8, no
permitirn gestionar nuestro controlador de dominio, de forma idntica a si estuviramos delante de un
Windows 2008R2 Server.
El primer paso ser descargarnos de la pgina de Microsoft la versin RSAT adecuada a nuestro equipo
cliente. En nuestro caso, un Windows 7 Enterprise de 32 bits:
Una vez instalado el paquete de herramientas, procederemos a habilitar aquellas que necesitemos, para ello
deberemos ir a Panel de Control, Programas y caractersticas, Activar caractersticas de Windows:
Aqu activaremos las herramientas de administracin que sean necesarias, en nuestro caso tendremos
suficiente con la administracin bsica del AD y la administracin de polticas de grupo. Si posteriormente
se necesitan herramientas adicionales, siempre se pueden activar.
Una vez hemos activado las diferentes herramientas, vamos a comenzar a administrar nuestro dominio. En
primer lugar, abrimos Usuarios y Equipos de Active Directory. En esta consola podemos crear OU, grupos,
usuarios y preaprovisionar mquinas al dominio. Aqu a modo de ejemplo, creamos dos usuarios que
llamaremos aduser1 y aduser2.
Vamos a crear ahora la carpeta en el servidor donde ubicaremos las carpetas personales de los usuarios del
dominio y a continuacin editaremos el archivo smb.conf (recordar que lo tenemos en /usr/local/samba/etc
para compartir dicho recurso. En el ejemplo que estamos realizando voy a llamar a dicha carpeta Usuaris:
# mkdir /Usuaris
Una vez realizada esta accin, reiniciamos el servidor y volvemos a iniciar el servicio de samba (
/usr/local/samba/sbin/samba start) para que los cambios tengan efecto.
El siguiente paso es configurar los permisos de este nuevo recurso. Esto lo haremos desde el cliente. Es muy
importante recordar que debemos evitar que un usuario tenga acceso a la carpeta personal de otro, para ello,
es necesario bloquear las herencias de los permisos de la carpeta Usuaris a las carpetas hijas creadas en su
interior. Para acceder desde el cliente a la carpeta compartida utilizaremos el explorador de archivos.
Clicamos botn derecho sobre la carpeta, seleccionamos Seguridad y elegimos Opciones Avanzadas.
Eliminamos todos los permisos que aparecen y procedemos ahora a crear los que necesitamos:
Administrator (administrador del dominio) tiene control total para esa carpeta,
subcarpetas y archivos.
A CREATOR OWNER (el usuario que crea un recurso) le damos control total pero solo
de subcarpetas y archivos.
Toca ahora configurar el perfil de los usuarios definidos anteriormente para que crear su carpeta personal.
Para ello, desde la consol de Usuarios y Equipos seleccionamos el usuario y en Propiedades ->
Perfil escribimos la ruta de su carpeta personal, utilizamos la variable de entorno %username% que nos
permitir que usuarios nuevos creados a partir de copiar uno de los anteriores, utilicen su nombre de usuario
para crear la carpeta.
Si ahora iniciamos sesin en el cliente con uno de los usuarios, por ejemplo aduser1 comprobamos como
nos aparece su carpeta personal.
Aqu finalizamos este segundo post. En la prxima entrega veremos como aplicar directivas de grupo (GPO)
sobre nuestro dominio.
Una excelente y detallada explicacin de las GPO la podeis encontrar en este enlace, pero a mode de
resumen rpido, slo recordar que las GPO tienen como mbito (scope) de aplicacin el dominio o una
Unidad Organizativa (OU), si bien es posible filtrar la aplicacin de dicha poltica a usuarios, equipos o
grupos especficos.
A modo de ejemplo vamos a ver como mapear directamente a las carpetas personales en red de los usuarios
que se han creado en el servidor, la carpeta de Mis Documentos que aparece en el perfil de cada usuario. De
esta manera, cuando un usuario guarde el archivo en Mis Documentos, realmente lo est guardando en red y
por tanto, ver ese documento independientemente del equipo desde el cual inicie sesin.
Para aplicar las GPO en nuestro caso, desde el equipo cliente y validados como administrador del dominio,
abrimos la herramienta Administracin de directivas de grupo del conjunto RSAT que instalamos en el post
anterior.
Creamos una nueva GPO y la vinculamos al dominio le ponemos un nombre, por ejemplo mapear, una vez
creada clicamos con el botn derecho y procedemos a editar:
Desplegamos el
rbol de directivas hasta la opcin deseada, configuracin de usuario -> Configuracin de Windows ->
Redireccin de carpetas -> Documentos y con el botn derecho seleccionamos Propiedades.
En Destino, marcamos la opcin bsica, la opcin de crear una carpeta para cada usuario en la ruta raz y
como ruta raz, elegimos la ruta donde tenemos las carpetas en red de los usuarios.
Finalmente sobre la mquina cliente forzamos la actualizacin de las directivas gpupdate/force y cerramos
sesin.
Iniciamos sesin con un usuario del dominio y comprobamos como si vamos a la ruta de red, aparece la
carpeta Documentos creada en su carpeta personal. A veces es necesario, reiniciar la sesin de usuario la
primera vez para que los cambios tengan efecto.
Comprobamos creando un archivo en la carpeta Documentos de Bibliotecas, cmo este archivo realmente se
crea en la carpeta en red y por tanto estar disponible desde cualquier cliente del dominio.
A partir de aqu se puede aplicar cualquier tipo de directiva, tanto de equipo como de usuario a los miembros
del dominio.
Aqu finalizamos esta serie dedicada a Samba 4, espero que haya sido de vuestro inters.