Hola a tod@s. En esta serie de cursos os voy a enseรฑar como montar un servidor Active Directory para redes con equipos Windows bajo Debian (si vamos a montar un servidor, vamos a hacerlo como es debido, leรฑes). En esta primera entrega explicare la instalaciรณn y configuraciรณn del servidor y en la segunda enseรฑare a usar las herramientas de administraciรณn remota de Windows 7 y como unir los equipos al dominio (el Windows 7 propiamente dicho y un Windows XP). Mas adelante harรฉ una tercera entrega aparte de como unir equipos con GNU/Linux ya que es algo que tengo pendiente de probar.
Esta idea me surgiรณ mientras estoy (o estaba, depende de cuando leas esta entrada ) cursando un curso del paro de Tรฉcnico de reparaciรณn de equipos microinformรกticos en el cual montรกbamos un servidor de red con Windows 2008 (no RC2) y me puse a buscar si podรญa implementar lo mismo bajo GNU/Linux y el resultado la verdad es bueno, hasta mi profesor se quedo sorprendido de la rapidez del servidor.
Antes de seguir, y seguramente muchos os preguntรฉis ยฟQuรฉ es Active Directory? Pues es el termino que usa Microsoft para referirse a su conjunto de herramientas para la administraciรณn de redes como el servidor DNS, la administraciรณn de los usuarios de la red, etc.
Necesitaremos lo siguiente:
- Debian en su rama estable (en mi caso Wheezy 7.5 con XFCE como entorno de escritorio)
- Samba 4
- Un cliente con Windows 7/8/8.1 con el paquete para instalar las funciones de control del servidor remoto (necesario para administrar el servidor, como por ejemplo compartir una carpeta con los usuarios). Esto se explicara en el siguiente tutorial.
Configurando el servidor
Antes de seguir debemos de editar algunos archivos para que todo funcione, sobre todo para que los equipos de la red encuentren el servidor del dominio.
Lo primero es dar a nuestro servidor una direcciรณn IP fija. En el caso de mi Debian de pruebas en Virtualbox uso networking, que es lo que viene de base, pero en el servidor real lo configure desde Network Manager, por lo que explicare como se hace en ambos.
Networking
El primer archivo que editaremos es /etc/network/interfaces.
# This file describes the network interfaces available on your system
and how to activate them. For more information, see interfaces(5).
The loopback network interface
auto lo
iface lo inet loopback
The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.67
netmask 255.255.255.0
gateway 172.26.0.1
dns-nameservers 192.168.0.67
dns-search clase.org
dns-domain clase.org
Siendo:
- address: la IP de nuestro equipo.
- netmask: la mascara de red. En una red pequeรฑa o de una casa suele ser esta.
- gateway: la puerta de enlace. Normalmente es la IP del router que nos da la salida a Internet.
- dns-nameservers: La ip del servidor DNS. En este caso el del servidor, pero se puede aรฑadir un segundo, por ejemplo las publicas de Google.
- Las 2 ultimas indican el nombre de bรบsqueda del dominio y el nombre del dominio en si.
Ahora debemos aรฑadir las siguientes lineas a /etc/hosts:
127.0.0.1 Matrix.clase.org Matrix
192.168.0.67 Matrix.clase.org Matrix
Con esto se resolverรก el nombre del dominio para que pueda ser encontrado en la red. Matrix es el nombre que le di al servidor.
Por ultimo editamos /etc/resolv.conf:
nameserver 192.168.0.13
En algunos tutoriales que encontrรฉ aรฑadรญan otra linea nameserver y un par de variables mas, pero en mi caso me ha bastado solo una linea.
Ahora reiniciamos el servicio de red y listo:
/etc/init.d/networking restart
Network Manager
Pulsamos con el botรณn derecho del ratรณn sobre el icono de redes y seleccionamos Editar las conexiones. Nos saldrรกn las redes que tengamos configuradas, pero solo nos interesa la llamada Red cableada 1 o como lo hayas nombrado. Hacemos doble click sobre ella y nos saldrรก una nueva ventana y nos iremos a Ajustes de IPv4. En mรฉtodo seleccionamos Manual. Ahora pulsamos en Aรฑadir y rellenamos todos los campos:
Ahora nos vamos a la pestaรฑa General y nos aseguramos que esta marcado Todos los usuarios deben conectarse a esta red. Pulsamos en Guardar y salimos.
Instalando Samba 4
En nuestro caso vamos a descargar y compilar Samba 4 desde su pagina debido a que en Debian solo esta disponible a travรฉs del repositorio Backports y me dio problemas de dependencias.
Nos dirigimos a http://samba.org para descargarnos la ultima versiรณn estable y descomprimimos el paquete en alguna carpeta.
Para compilarlo necesitaremos instalar los siguientes paquetes:
apt-get install build-essential libacl1-dev libattr1-dev \
libblkid-dev libgnutls-dev libreadline-dev python-dev libpam0g-dev \
python-dnspython gdb pkg-config libpopt-dev libldap2-dev \
dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl
Una vez descargado y descomprimido abrimos una terminal y nos movemos hasta la carpeta y ejecutamos los siguientes comandos:
./configure --enable-debug
make
make install
Ahora aรฑadimos las nuevas rutas en el PATH. En mi caso en /etc/bash.bashrc para que se aplique a todos los usuarios, root incluido.
export PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin
Y tambiรฉn creamos un enlace dentro de /etc para que Samba encuentre el archivo de configuraciรณn:
ln -s /usr/local/samba/etc/ /etc/samba
Vamos ya a configurar el servidor Samba. Para ello ejecutamos:
samba-tool domain provision --realm=clase.org --domain=CLASE --adminpass=Contraseรฑa --use-rfc2307
donde:
- โrealm: es el nombre completo del dominio.
- โdomain: es el dominio. Tiene que estar en mayusculas
- โadminspass: es la contraseรฑa del administrador de la red.
- โuse-rfc2307: para activar AC.
Si todo sale bien tras un ratito Samba terminara de configurarse. Si querรฉis conocer todas las opciones posibles basta con ejecutar:
samba-tool domain provision -h
Ahora vamos a editar el archivo /etc/samba/smb.conf. Por ahora lo que nos interesa es la siguiente linea:
dns forwarder = 192.168.0.1
Esta linea debe de apuntar al servidor DNS que nos da salida a Internet (en este caso, el router). Samba la toma por defecto de la configuraciรณn de la red pero es recomendable verificarlo.
Ahora iniciamos el servicio:
samba
y comprobamos la conexiรณn ejecutando:
smbclient -L localhost -U%
Y si todo esta correcto veremos algo similar a esto:
En caso de que nos diese error de conexiรณn verificamos los pasos del punto anterior. El log de Samba se encuentra en /usr/local/samba/var/log.samba
Ahora vamos a copiar el archivo /usr/local/samba/private/krb5.conf a /etc. Ahora vamos a comprobar que nos podemos conectar:
kinit administrator@CLASE.ORG
Ojo, el dominio tiene que escribirse en mayรบsculas.
Acto seguido nos pedirรก la contraseรฑa del usuario (en este caso el del administrador) y si nos sale un mensaje similar a ยซWarning: Your password will expire in 40 days on Mon Jul 14 13:57:10 2014ยป es que salio correctamente.
Y hasta aquรญ la primera parte del tutorial. Nos leemos en el siguiente.
Muy interesante, siempre quise saber cรณmo se hacรญa esto.
ยฟEs posible hacerlo usando SSH en vez de Samba?
Tengo entendido que es mucho mรกs rรกpido y seguro.
Tendrรฉ que investigar al respecto.
AMIGO. ME PODRรA EXPLICAR EL PROCEDIMIENTO PASO A PASO PARA PODER PONER INTERNET DESDE UN SERVIDOR CON SISTEMA OPERATIVO WINDOWS XP A UN CONJUNTO DE COMPUTADORAS CON SISTEMA OPERATIVO LINUX Y VISEVERSA ES DECIR DESE UN SERVIDOR LINUX A CLIENTES CON S.O WINDOWS.
Estimado Lolo, eso es imposible, ya que SSH permite una sesiรณn (y otras cosas, como transferir archivos y aplicaciones) a travรฉs del terminal entre computadoras con GNU Linux. Mientras Samba lo que constituye una alternativa para GNU Linux del sistema de Active Directory de Microsoft.
Son Link lo que ha hecho es un controlador de dominio en GNU Linux.
Muy buen tuto. Viene genial para gente como yo que estamos algo verdes en eso. Muchas gracias
ยกGracias! Excelente guรญa. A probar…
Gracias amigo, muy buena tu guรญa espero la segunda parte, por cierto lo has hecho trabajar con un ldap??
Saludos.
Muy interesante, quedo esperando la continuaciรณn. Gracias.^_^
PD: Creo que hay un pequeรฑo error de transcripciรณn en la configuraciรณn de /etc/network/interfaces, dice dns-domian cuando me parece que debe ir dns-domain.
Corregido. Gracias por avisar ^^
Me ha parecido muy interesante este articulo. Ya que apenas estoy en proceso de aprendizaje y no tengo muchos conocimientos en esta materia y quiero aprender mas sobre gestiona y administraciรณn de sistemas operativos.
ยฟEso sirve para hacer carpetas compartidas en Debian o simplemente va para otro tutorial ese aspecto?
Existe una distribuciรณn Linux llamada Resara Server basada en Ubuntu que sirve exclusivamente para levantar un controlador de dominio, yo lo probรฉ y es muy fรกcil de usar, pude unir equipos al domino con ese servidor, dejo acรก el howto, quizรกs a alguien le sirva – http://ostechnix.wordpress.com/2012/12/31/resara-server-an-alternative-opensource-linux-domain-controller-for-windows-active-directory-controller/
Oh!!! Genial, el aporte del dรญa.. Gracias ๐
You’re welcome! ๐
Gracias por compartirlo. Luego le hecho un vistazo
Gracias por compartir!!!
Saludos
Excelente tutorial, estarรฉ a la espera del resto. Recuerdo cuando instale un PDF en debรญan 6 con samba 3 y ldap. Funcionaba pero debรญa usar las plantillas .pol para editar las directivas. En este caso como se administran dichas directivas?
Las directivas de los usuarios y grupos se tienen que hacer desde un cliente con Windows 7/8/8.1 con el paquete de control remoto. Es algo que explicarรฉ en la prรณxima entrega. He estado buscando para ver si habรญa algรบn modo de hacerlo sin tener que recurrir a ello, pero no encontrรฉ nada y en la wiki de Samba justo lo pone asรญ, al menos para equipos con Windows, pero seguirรฉ buscando, por eso creo que tardare un poco en subir la siguiente entrega.
Excelente la informacion… Gracias por esta…
SALUDOS!!!
Exelente…. estoy bastante interesado en esto……. para cuando la segunda parte??? o si tienes algun manual de esto hazmelo llegar por email… porfa!!!! gracias
Pues a lo largo de la semana, pero no sabrรญa decirte cuando exactamente, ya que entre las clases y un proyecto en el que estoy trabajando ando liado.
Exelente tutorial….
espero algรบn dรญa ponerlo en prรกctica..
Saludos y esperรณ la segunda parte!!!!
Yo la verdad que hice una vez esto, pero no profundice casi nada… Quiero recomendar/te una herramienta, no se si la conoces o no, tampoco se sus limitaciones, pero para conectar con un servidor Active Directory no tuve problema, lo probe en una facultad y funciono muy bien. El programa se llama Likewise, hace lo mismo que todo lo que hiciste con Samba, nada mรกs que no configuras tanto, es algo mรกs resumido, claro estรก que podes modificar lo que necesites a tu gusto ๐
Espero que te sirva! Saludos
Muy interesante artรญculo, esperare con ansias la segunda entrega. Fue una gran sorpresa enterarme que es posible manejar un directorio activo โmodernoโ con Gnu/Linux, recuerdo haberlo hecho hace muchรญsimo tiempo atrรกs con un directorio activo tipo NT 4 y fue una gran desilusiรณn no poderlo emularlo cuando Microsoft cambiรณ la โestructuraโ de su LDAP en Windows 2000 Server.
Saludos desde Ecuador =]
Hola. Muchas gracias!
Tengo un par de dudas… para quรฉ sirve exactamente el active directory?
Y por otro lado, podrรญas enseรฑar, si podรฉs, cรณmo hacer para auditar lo que hacen los usuarios?
Saludos y gracias.
Yo para audior implementรฉ esto: http://chicheblog.wordpress.com/2011/01/21/como-auditar-la-actividad-de-los-usuarios-en-samba/
pero si podรฉs ampliarlo, o agregar algo que conozcas pues se agradece!
saludos
Buenos Noches, Saludos desde Perรบ.
Tengo una consulta un poco diferente a todo lo publicado, mira para explicarte un poco mira tengo esta carpeta configurada en archivo /etc/samba/smb.conf
[Privado]
comment= Carpeta Privada
path= /home/Privado
read only= yes
browseable= yes
guest ok = no
public= no
write list= @comercial, @gestion
valid users= @comercial, @gestion
create mask= 0777
directory mask= 0777
Ahora va mi consulta todo funciona bien pero cuando desde un computador me logeo con el usuario ยซpepeยป perteneciente al grupo ยซcomercialยป y desde otro computador me logeo con el usuario ยซcocoยป perteneciente al grupo ยซgestionยป, pasa lo siguiente que cuando creo un archivo o carpeta desde el usuario ยซpepeยป y quiero borrar este directorio o archivo creado desde la otra PC con el usuario ยซcocoยป me dice que no puedo xq no tengo privilegios, pero el mismo autor si puede borrar este archivo o directorio, alcanzes.
las carpeta privada se ah creado desde la siguiente manera:
chmod -R 777 /home/Privado
Trabajan bajo una misma red LAN.
Utilizo Distro Ubuntu Server 14.xx
Cabe recalcar que lo que quiero es que esta carpeta PRIVADA sea administrada por 2 a mas usuarios ahi la idea de trabajar con Grupos pero parece que hay algo que me esta faltando o omitiendo, espero su atencion y quedo atento a sus comentarios.
Amigo eso lo puedes lograr quitando las comas
de esta manera.
write list= @comercial @gestion
valid users= @comercial @gestion
Hola Estimado,
Me gustaria saber si todavia sigue en pendiente la segunda parte del curso, quedo atento a tus comentarios y gracias.
Pues puede que no ya que apenas se lo bรกsico para hacerlo y ya me han hecho preguntas para las que no tengo contestaciรณn, por lo que veo que lo mejor es no hacer esa segunda parte, ya que, sinceramente hacer otra parte sin apenas conocimientos, y sin el equipo necesario (solo dispongo de mi PC y hacerlo con Maquinas Virtuales es engorroso y no suelen tirar a la primera)
Siento mucho esto, pero desde mi punto de vista, es lo mejor. Si algรบn otro se anima a hacer esa segunda parte porque posee los conocimientos, es libre de hacerlo
Buenas tardes, recien hoy leo todos los comentario y tengo una maquina a media configuraciรณn, por tal razon me entero que no publicaras la segunda parte y quiero saber si se puede tener un ejecutable en una carpeta y varias tablas dbf, para accesar de varias computadoras.
Favor contestar lo mas pronto posible.
Estimados,
Quisiera saber si todavia esta en pendiente la segunda parte de este interesante tutorial, de antemano les agradesco su atencion.
gracias.
Excelente tutorial, ojala te animes a la segunda parte, me podrias indicar cuales son las herramientas funciones de control del servidor remoto para descargarlas y probar.
Saludos.
Te felicito, y la segunda parte?
Interesante articulo, has sacado la siguiente versiรณn?
Muy buen tutorial, solo una pregunta la segunda parte, como seria o con este tutorial finaliza?
ME GUSTA LA IDEA DE APRENDER COSAS NUEVAS, GRACIAS DAVID POR COMPARTIR TUS CONOCIMIENTOS ,
SALUDOS
POSDATA: EN EL TEMA DEL APRENDIZAJE PROBARE HACERLO EN MI MAQUINA VIRTUAL DEBIAN COMO SERVIDOR Y CON UN GRUPOS DE VIRTUALES CLIENTES , UNA CON WIN7 Y OTRA CON WIN8.
Esta guia esta incompleta, no especificas directorios, te dejas cosas random, yo si fuera tu la repetiria
O bien podrรญas completarla y escribirla tu mismo, con gusto te la publicamos.
como configurar un servidor en debian 5 para poder conectarse de manera remota a un xp
hola que tal cuando hago:
root@pdc:~# apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev \ libgnutls-dev libreadline-dev python-dev libpam0g-dev \ python-dnspyth gdb pkg-config libpopt-dev libldap2-dev \ dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2 ac1
me dice:
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package build-essential is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package build-essential has no installation candidate
alguna ayuda?gracias
ย
no estan configurados los repositorios
Se que mi comentario no lo vas a publicar. El artรญculo es bastante malo, falta decir como se configura kerberos, ya que lo aplicas en los requisitos. ยฟPara que compilar Samba?, la versiรณn 4 ya estรก disponible. Con la configuraciรณn que has puesto, el Kinit, te da error fijo NT_STATUS_DENIED!. Para todos los interesados en iniciarse : https://help.ubuntu.com/lts/serverguide/samba-dc.html
Ten en cuenta que este articulo lo publique hace 3 aรฑos y medio y cuando lo hice Samba 4 no estaba en los repositorios como digo en el articulo, y por eso habรญa que compilarlo, y como ya comento al final no he podido continuarlo. En otro curso en el que estoy nos estรกn volviendo a enseรฑar esto (aunque algo mรกs bรกsico) y justo hoy me he puesto a volver a intentar montarlo, solo que en una maquina virtual en este caso, pero justo me empezรณ a dar el problema que dices y he empezado a indagar a ver que es lo que pasa ya que dicho error no me lo dio aquel entonces. A, y gracias por compartir el enlace.