samba 4 ubuntu 12.04 - active directory
TRANSCRIPT
Samba 4: Controlador Active Directory parte 1 de 3
Sin duda, Active Directory es la característica más 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 gestión de usuarios y
equipos permite una gestión tremendamente productiva, especialmente si
trabajamos con clientes Windows.
Por otro lado Samba, la implementación para el mundo Linux del protocolo
CFIS de Windows, permitía hasta la fecha implantar un servidor de dominio
NT, que aunque permite la autenticación centralizada, quedaba muchos
pasos atrás respecto las funcionalidades de cualquier Windows Server de
2003 hacia adelante. Pero, ahora la nueva versión de Samba, Samba 4,
permite implementar un DC (Domain Controller) basado en Active
Directory.
En este primer post, vamos a documentar la instalación 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 configuración 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 sesión 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 público de Google en este caso).
A continuación 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 estén 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 España. Así mismo, habilitamos el servicio para que nuestra red pueda
consultar la hora al servidor (podemos consultar los servidores disponibles
en la página de NTP project.
A continuación procederemos a instalar Samba 4. Aunque se puede
descargar como paquete ya construido mediante apt-get, la página de
Samba recomienda bajar las fuentes y compilarlas. De hecho, si se intenta
bajar el paquete del repositorio da un error a media instalación ( en algunos
blogs comentan cómo seguir la instalación 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 instalación, bajaremos la versión más 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 añadiremos 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 construcción
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 dirección 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 contraseña, para las pruebas realizadas
hemos elegido P@ssw0rd (obviamente en producción debeis elegir una
contraseña más original )
A continuación editaremos el archivo smb.conf (cuidado, que en lugar de
/etc/samba/, lo tenemos en /usr/local/samba/etc!!) y añadiremos la opción
que los clientes puedan actualizar su registro dns.
A continuación reiniciamos la máquina y cuando iniciamos sesión iniciamos
el servicio de samba: # /usr/local/samba/sbin/samba start
Ahora realizamos una prueba para comprobar que efectivamente funciona
el servicio de DNS:
Ahora probaremos el servicio Kerberos, para ello instalaremos la utilidad de
cliente:
# apt-get install krb5-user
Cuando nos pida el reino Kerberos, deberemos poner el que hemos
elegido, pero muy importante en mayúsculas! Una vez instalado
podemos testear por ejemplo la password de administrador:
Si todo funciona sin problemas, podemos seguir, pero si tenemos algún
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 añadiendo 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 añadiremos el dns forwarder y la
opción 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 configuración de red
del cliente, pondremos como DNS la IP de nuestro servidor samba:
Ahora procederemos a agregar el equipo al dominio:
Comprobamos como el cliente se ha agregado correctamente al dominio:
Samba 4: Controlador Active Directory parte 2 de 3
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 básica ( creación de usuarios,
grupos, configuración de perfiles, etc.).
Aunque Samba 4 dispone de herramientas gráficas 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 permitirán gestionar nuestro controlador de dominio,
de forma idéntica a si estuviéramos delante de un Windows 2008R2 Server.
El primer paso será descargarnos de la página de Microsoft la versión 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 características,Activar características de Windows:
Aquí activaremos las herramientas de administración que sean necesarias,
en nuestro caso tendremos suficiente con la administración básica del AD y
la administración de políticas 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 máquinas al dominio. Aquí a modo de ejemplo, creamos
dos usuarios que llamaremos aduser1 yaduser2.
Vamos a crear ahora la carpeta en el servidor donde ubicaremos las
carpetas personales de los usuarios del dominio y a continuación
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 acción, 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 botón derecho sobre la carpeta, seleccionamos Seguridad y
elegimosOpciones 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.
Repetimos los mismos permisos para el grupo Domain Admins.
Elegimos idéntica configuración para SYSTEM.
A CREATOR OWNER (el usuario que crea un recurso) le damos control
total perosolo de subcarpetas y archivos.
Al grupo Domain Users les daremos permiso de Atravesar
carpeta/Ejecutar archivo, mostrar carpeta/leer datos, Crear
archivos/escribir datos y Cambiar permisos, perosolamente en esta
carpeta.
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 sesión en el cliente con uno de los usuarios, por
ejemplo aduser1comprobamos como nos aparece su carpeta personal.
Samba 4: Controlador Active Directory parte 3 de 3
En los post anteriores de esta serie, hemos visto cómo crear un DC
mediante Samba 4, realizando posteriormente el despliegue del dominio
utilizando las herramientas de RSAT de Microsof. En esta última
entrega,realizaremos la aplicación de directivas de grupo o GPO (Group
Object Policies).
La utilización de las GPO para administrar los diferentes objetos del dominio
es uno de los aspectos que hacen que los Active Directory sean apreciados
por los administradores de sistemas. El despliegue de dichas políticas desde
el controlador de dominio, facilitan de forma extrema la administración
tanto de los usuarios como de los equipos.
Una excelente y detallada explicación de las GPO la podeis encontrar en
este enlace, pero a mode de resumen rápido, sólo recordar que las GPO
tienen como ámbito (scope) de aplicación el dominio o una Unidad
Organizativa (OU), si bien es posible filtrar la aplicación de dicha política a
usuarios, equipos o grupos específicos.
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 sesión.
Para aplicar las GPO en nuestro caso, desde el equipo cliente y validados
como administrador del dominio, abrimos la herramienta Administración 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 ejemplomapear, una vez creada clicamos con el botón
derecho y procedemos a editar:
Desplegamos el árbol de directivas hasta la opción deseada, configuración
de usuario -> Configuración de Windows -> Redirección de carpetas ->
Documentos y con el botón derecho seleccionamos Propiedades.
En Destino, marcamos la opción básica, la opción de crear una carpeta para
cada usuario en la ruta raíz y como ruta raíz, elegimos la ruta donde
tenemos las carpetas en red de los usuarios.
En Configuración marcamos la opción de Mover el contenido de
Documentos a la nueva ubicación.
Finalmente sobre la máquina cliente forzamos la actualización de las
directivasgpupdate/force y cerramos sesión.
Iniciamos sesión 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 sesión de usuario la primera vez
para que los cambios tengan efecto.
Comprobamos creando un archivo en la carpeta Documentos de
Bibliotecas, cómo 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.