{"id":709,"date":"2013-01-19T01:49:27","date_gmt":"2013-01-19T07:49:27","guid":{"rendered":"http:\/\/www.lastdragon.net\/?p=709"},"modified":"2013-02-02T15:25:07","modified_gmt":"2013-02-02T21:25:07","slug":"configurar-directorio-activo-active-directory-en-gnulinux-centos-63-con-samba-401","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=709","title":{"rendered":"Configurar Directorio Activo (Active Directory) en GNU\/Linux CentOS 6.3 con Samba 4.0.1"},"content":{"rendered":"<p>Existi\u00f3 un tiempo en el que poner un servidor de dominio en Windows era algo muy sencillo, emular un Windows NT4 era la cosa m\u00e1s simple del mundo y firmar computadoras con Windows 95 , Windows 98 y Windows ME era simple r\u00e1pido y f\u00e1cil. Si no quer\u00edas pagar las licencias impuestas siempre pod\u00edas instalar un GNU\/Linux con Samba y evitar usar tecnolog\u00edas de SERVER Microsoft.<\/p>\n<p>Ocurri\u00f3 que por el 2000 Microsoft cambio las reglas del juego, con el Windows XP y Windows 2000 Server se hizo una integraci\u00f3n llamada Directorio Activo, donde ya no solo era un servidor controlador de dominio, sino un sistema formado por el PDC, Listas en directorios (Protocolo Ligero de Acceso a Directorios) Aka LDAP y para rematar un DNS Server. Son m\u00e1s cosas pero esas 3 b\u00e1sicas forman en si el Directorio  Activo y en los primeros d\u00edas era horrible homologar un GNU\/Linux a un Servidor Windows 2000, 2003 y 2008 para entrar al mundo del Active Directory. No porque no se pueda, si no por que intentarlo es abrumador llevar a cabo todas las configuraciones necesarias.<\/p>\n<p>Afortunadamente la versi\u00f3n 4.0.0 de Samba hace que esto sea un poco mas sencillo y ahora si me da un art\u00edculo para dar los pasos necesarios para convertir tu equipo GNU\/Linux en un servidor de dominio con rol de PDC\/AD aka (Controlador Primario de Dominio con Directorio Activo)<\/p>\n<p>Los siguientes pasos los hice con un CentOS 6.3 a 64 bits y SAMBA 4.0.1 descargado de su sitio oficial en c\u00f3digo fuente para su compilaci\u00f3n en el equipo.<\/p>\n<p>1.0  Instalar GNU\/Linux 6.3 a 64bits<\/p>\n<p>2.0  Preparar el sistema.<\/p>\n<p>2.1 Deshabilitar SELinux, desactivar los firewall y quitar toda regla iptables filter<\/p>\n<p>2.2 Instalar los paquetes y herramientas necesarias con yum, con darle copiar y pegar a la siguiente l\u00ednea bastara.<\/p>\n<blockquote><p>yum -y install gcc make wget python-devel gnutls-devel openssl-devel libacl-devel krb5-server krb5-libs krb5-workstation bind bind-libs bind-utils<\/p><\/blockquote>\n<p>2.3 Descargar Samba 4.0.X o superior, al momento de redactor este articulo estaba la versi\u00f3n 4.0.1 y la obtuve del siguiente URL<\/p>\n<p>http:\/\/www.samba.org\/samba\/ftp\/stable\/samba-4.0.1.tar.gz<\/p>\n<p>2.3.1 Preparar el Makefile para compilarlo usando configure y la bandera &#8211;enable-selftest. <\/p>\n<blockquote><p>.\/configure &#8211;enable-selftest<\/p><\/blockquote>\n<p>Nota que no doy prefix, dejo que se instale en su ruta por default.<\/p>\n<p>2.4 Crear el smb.conf usando el comando samba-tool, se encuentra \/usr\/local\/samba\/bin\/ que es el lugar donde estar\u00e1n los binarios de SAMBA despu\u00e9s de la compilaci\u00f3n e instalaci\u00f3n. En este articulo usare lastdragon como dominio de red y lastdragon.net dominio de directorio activo.<br \/>\nLa l\u00ednea a usar es:<\/p>\n<blockquote><p>\/usr\/local\/samba\/bin\/samba-tool domain provision &#8211;realm=lastdragon.net &#8211;domain=lastdragon &#8211;adminpass &#8216;C@ntrase\u00f1a1#&#8217; &#8211;server-role=dc &#8211;dns-backend=BIND9_DLZ<\/p><\/blockquote>\n<p>Nota que el par\u00e1metro de adminpass es seguido por la contrase\u00f1a de administrador entre apostrofes, esta contrase\u00f1a se le asignara al usuario Administrator, usuario que usaras para unir las maquinas con Windows al dominio, la contrase\u00f1a debe tener obligatoriamente una may\u00fascula, un numero, un s\u00edmbolo y al menos 6 caracteres de largo. El nombre de dominio debe ser diferente al HOSTNAME  (Nombre) de tu maquina GNU\/Linux. Cuando este comando termine de ejecutarse creara el archivo smb.conf en la ruta \/usr\/local\/samba\/etc\/.<\/p>\n<p>El smb.conf se crea solo y se auto configura, salvo quieras editarlo para compartir alguna carpeta en red. Si no vas a compartir nada puedes dejarlo como te lo entrega el samba-tool y ser\u00e1 funcional para el prop\u00f3sito de Active Directory<\/p>\n<p>El contenido del archivo ser\u00e1 muy similar a:<\/p>\n<blockquote><p>[global]<br \/>\n        workgroup = lastdragon<br \/>\n        realm = lastdragon.net<br \/>\n        netbios name = HOSTNAME<br \/>\n        server role = active directory domain controller<br \/>\n        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate<\/p>\n<p>[netlogon]<br \/>\n        path = \/usr\/local\/samba\/var\/locks\/sysvol\/adevya.com\/scripts<br \/>\n        read only = No<\/p>\n<p>[sysvol]<br \/>\n        path = \/usr\/local\/samba\/var\/locks\/sysvol<br \/>\n        read only = No<\/p><\/blockquote>\n<p>3.0 Configurando el servicio de DNS Server<\/p>\n<p>3.1 generar la llave<\/p>\n<blockquote><p>rndc-confgen -a -r \/dev\/urandom<\/p><\/blockquote>\n<p>3.2 editar named.conf en \/etc,<br \/>\nEl contenido de \/etc\/named.conf debe ser:<\/p>\n<blockquote><p>options {<br \/>\nlisten-on port 53 { any; };<br \/>\nforwarders {192.168.1.1; };<br \/>\nallow-query { any; };<br \/>\ntkey-gssapi-keytab &#8220;\/usr\/local\/samba\/private\/dns.keytab&#8221;;<br \/>\n};<br \/>\ninclude &#8220;\/usr\/local\/samba\/private\/named.conf&#8221;;<\/p><\/blockquote>\n<p>nota la ip en forwarders escribo la ip de mi GNU\/Linux en este caso es 192.168.1.1<\/p>\n<p>3.2.1 Edita el archivo named.conf en \/usr\/local\/samba\/private\/<\/p>\n<p>El contenido del archivo \/usr\/local\/samba\/private\/named.conf debe ser:<\/p>\n<blockquote><p># This DNS configuration is for BIND 9.8.0 or later with dlz_dlopen support.<br \/>\n#<br \/>\n# This file should be included in your main BIND configuration file<br \/>\n#<br \/>\n# For example with<br \/>\n# include &#8220;\/usr\/local\/samba\/private\/named.conf&#8221;;<\/p>\n<p>#<br \/>\n# This configures dynamically loadable zones (DLZ) from AD schema<br \/>\n# Uncomment only single database line, depending on your BIND version<br \/>\n#<br \/>\ndlz &#8220;AD DNS Zone&#8221; {<br \/>\n    # For BIND 9.8.0<br \/>\n    database &#8220;dlopen \/usr\/local\/samba\/lib\/bind9\/dlz_bind9.so&#8221;;<\/p>\n<p>    # For BIND 9.9.0<br \/>\n    # database &#8220;dlopen \/usr\/local\/samba\/lib\/bind9\/dlz_bind9_9.so&#8221;;<br \/>\n};<\/p><\/blockquote>\n<p>3.3 edita resolv.con en \/etc<\/p>\n<p>El contenido de \/etc\/resolv.conf debe ser:<\/p>\n<blockquote><p>nameserver 127.0.0.1<br \/>\ndomain lastdragon.net<\/p><\/blockquote>\n<p>Nota la l\u00ednea de domain, ah\u00ed va el dominio de directorio activo que usaras en tu red, yo uso lastdragon.net como lo especifique en el paso 2.4<\/p>\n<p>4.0 Configurando Kerberos<\/p>\n<p>4.1 Editando el archivo krb5.conf en \/etc<br \/>\nEl contenido del archivo \/etc\/krb5.conf debe ser:<br \/>\n\/etc\/krb5.conf<\/p>\n<blockquote><p>[libdefaults]<br \/>\ndefault_realm = LASTDRAGON.NET<br \/>\ndns_lookup_realm = false<br \/>\ndns_lookup_kdc = true<\/p><\/blockquote>\n<p>Nota la l\u00ednea de default_realm es LASTDRAGON.NET como lo especifique en el paso 2.4 y le hice de nuevo menci\u00f3n en el paso 3.3<\/p>\n<p>5.0 Instalar NTP<br \/>\nSi abres tu archivo smb.conf que se genero con samba-tool en la l\u00ednea de servicios encontraras una referencia de ntp_signd, esta caracter\u00edstica no la tiene el ntp que incluye la instalaci\u00f3n de CentOS por lo que como en samba; habr\u00e1 que descargar ntp y compilarlo asegur\u00e1ndonos que tenga signd<\/p>\n<p>Yo descargue la versi\u00f3n ntp-4.2.6p5 con el siguiente URL<\/p>\n<p>http:\/\/www.eecis.udel.edu\/~ntp\/ntp_spool\/ntp4\/ntp-4.2\/ntp-4.2.6p5.tar.gz<\/p>\n<p>5.1 Compilando ntp<br \/>\nal igual que con SAMBA para preparar el Makefile usamos .\/configure pero con la bandera que nos interesa, la de signd usando la l\u00ednea.<\/p>\n<blockquote><p>.\/configure &#8211;enable-ntp-signd<\/p><\/blockquote>\n<p>Nota que no uso prefix, permito que se instale en sus directorios por default.<\/p>\n<p>5.2 Configurando NTP el archivo ntp.conf en \/etc<\/p>\n<p>El contenido de \/etc\/ntp.conf debe ser<\/p>\n<blockquote><p>server 127.127.1.0<br \/>\nfudge 127.127.1.0 stratum 10<br \/>\nserver 0.pool.ntp.org iburst prefer<br \/>\nserver 1.pool.ntp.org iburst prefer<br \/>\ndriftfile \/var\/lib\/ntp\/ntp.drift<br \/>\nlogfile \/var\/log\/ntp<br \/>\nntpsigndsocket \/usr\/local\/samba\/var\/lib\/ntp_signd\/<br \/>\nrestrict default kod nomodify notrap nopeer mssntp<br \/>\nrestrict 127.0.0.1<br \/>\nrestrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery<br \/>\nrestrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery<\/p><\/blockquote>\n<p>6.0 Aplicando los permisos finales a los archives de configuraci\u00f3n con las l\u00edneas.<\/p>\n<blockquote><p>chown named:named \/usr\/local\/samba\/private\/dns<br \/>\nchown named:named \/usr\/local\/samba\/private\/dns.keytab<br \/>\nchmod 775 \/usr\/local\/samba\/private\/dns<\/p><\/blockquote>\n<p>Felicidades hasta aqu\u00ed ya tienes un servidor de directorio activo, pero recuerda que el samba y el ntp fueron compilados y al no venir en los paquetes RPM de la distribuci\u00f3n no est\u00e1n aun reconocidos como servicios del sistema y no arrancaran por si solos, tampoco tendr\u00e1n un apagado correcto cuando quieras reiniciar o apagar tu servidor. A continuaci\u00f3n pondr\u00e9 como integrar samba y ntp como servicios en el sistema operativo.<\/p>\n<p>6.1 Crear el archivo samba en \/etc\/init.d\/<\/p>\n<p>El contenido de \/etc\/init.d\/samba debe ser.<\/p>\n<blockquote><p>#! \/bin\/bash<br \/>\n#<br \/>\n# samba4 Bring up\/down samba4 service<br \/>\n#<br \/>\n# chkconfig: &#8211; 90 10<br \/>\n# description: Activates\/Deactivates all samba4 interfaces configured to \\<br \/>\n# start at boot time.<br \/>\n#<br \/>\n### BEGIN INIT INFO<br \/>\n# Provides:<br \/>\n# Should-Start:<br \/>\n# Short-Description: Bring up\/down samba4<br \/>\n# Description: Bring up\/down samba4<br \/>\n### END INIT INFO<br \/>\n# Source function library.<br \/>\n. \/etc\/init.d\/functions<\/p>\n<p>if [ -f \/etc\/sysconfig\/samba4 ]; then<br \/>\n. \/etc\/sysconfig\/samba4<br \/>\nfi<\/p>\n<p>CWD=$(pwd)<br \/>\nprog=&#8221;samba4&#8243;<\/p>\n<p>start() {<br \/>\n# Attach irda device<br \/>\necho -n $&#8221;Starting $prog: &#8221;<br \/>\n\/usr\/local\/samba\/sbin\/samba<br \/>\nsleep 2<br \/>\nif ps ax | grep -v &#8220;grep&#8221; | grep -q \/samba\/sbin\/samba ; then success $&#8221;samba4 startup&#8221;; else failure $&#8221;samba4 startup&#8221;; fi<br \/>\necho<br \/>\n}<br \/>\nstop() {<br \/>\n# Stop service.<br \/>\necho -n $&#8221;Shutting down $prog: &#8221;<br \/>\nkillall samba<br \/>\nsleep 2<br \/>\nif ps ax | grep -v &#8220;grep&#8221; | grep -q \/samba\/sbin\/samba ; then failure $&#8221;samba4 shutdown&#8221;; else success $&#8221;samba4 shutdown&#8221;; fi<br \/>\necho<br \/>\n}<br \/>\nstatus() {<br \/>\n\/usr\/local\/samba\/sbin\/samba &#8211;show-build<br \/>\n}<\/p>\n<p># See how we were called.<br \/>\ncase &#8220;$1&#8243; in<br \/>\nstart)<br \/>\nstart<br \/>\n;;<br \/>\nstop)<br \/>\nstop<br \/>\n;;<br \/>\nstatus)<br \/>\nstatus irattach<br \/>\n;;<br \/>\nrestart|reload)<br \/>\nstop<br \/>\nstart<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8221;Usage: $0 {start|stop|restart|status}&#8221;<br \/>\nexit 1<br \/>\nesac<\/p>\n<p>exit 0<\/p><\/blockquote>\n<p>6.2 Crear el archivo ntp en \/etc\/init.d\/<\/p>\n<p>El contenido de \/etc\/init.d\/ntp debe ser<\/p>\n<blockquote><p>#! \/bin\/bash<br \/>\n#<br \/>\n# ntp Bring up\/down ntp service<br \/>\n#<br \/>\n#chkconfig: &#8211; 99 30<br \/>\n#description: Bring up\/down ntp<br \/>\n#<br \/>\n### BEGIN INIT INFO<br \/>\n# Provides:<br \/>\n# Should-Start:<br \/>\n# Short-Description: Bring up\/down ntp<br \/>\n# Description: Bring up\/down ntp<br \/>\n### END INIT INFO<br \/>\n# Source function library.<br \/>\n. \/etc\/init.d\/functions<\/p>\n<p>CWD=$(pwd)<br \/>\nNTPD=\/usr\/local\/bin\/ntpd<br \/>\nprog=&#8221;ntp&#8221;<br \/>\nstart() {<br \/>\n# Attach irda device<br \/>\necho -n $&#8221;Starting $prog: &#8221;<br \/>\n$NTPD -p \/var\/run\/ntpd.pid<br \/>\nsleep 2<br \/>\nif ps ax | grep -v &#8220;grep&#8221; | grep -q $NTPD ; then success $&#8221;ntp startup&#8221;; else failure $&#8221;ntp startup&#8221;; fi<br \/>\necho<br \/>\n}<br \/>\nstop() {<br \/>\n# Stop service.<br \/>\necho -n $&#8221;Shutting down $prog: &#8221;<br \/>\nkill -9 `cat \/var\/run\/ntpd.pid` > \/dev\/null 2>&#038;1<br \/>\nsleep 2<br \/>\nif ps ax | grep -v &#8220;grep&#8221; | grep -q $NTPD ; then failure $&#8221;ntp shutdown&#8221;; else success $&#8221;ntp shutdown&#8221;; fi<br \/>\necho<br \/>\n}<br \/>\n# See how we were called.<br \/>\ncase &#8220;$1&#8243; in<br \/>\nstart)<br \/>\nstart<br \/>\n;;<br \/>\nstop)<br \/>\nstop<br \/>\n;;<br \/>\nrestart|reload)<br \/>\nstop<br \/>\nstart<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8221;Usage: $0 {start|stop|restart}&#8221;<br \/>\nexit 1<br \/>\nesac<br \/>\nexit 0<\/p><\/blockquote>\n<p>6.3 Darles permiso de ejecuci\u00f3n<\/p>\n<blockquote><p>chmod +x \/etc\/init.d\/ntp<br \/>\nchmod +x \/etc\/init.d\/samba<\/p><\/blockquote>\n<p>6.4  Con la siguiente secuencia de arranque puedes activar el servicio<\/p>\n<blockquote><p>\/etc\/init.d\/named start<br \/>\n\/etc\/init.d\/ntp start<br \/>\n\/etc\/init.d\/samba start<\/p><\/blockquote>\n<p>Pero si quieres que inicien sin intervenci\u00f3n cuando inicie tu servidor ejecuta las siguientes l\u00edneas.<\/p>\n<blockquote><p>chkconfig &#8211;levels 35 samba on<br \/>\nchkconfig &#8211;levels 35 ntp on<br \/>\nchkconfig &#8211;levels 35 named on<\/p><\/blockquote>\n<p>7.0 Administrando usuarios en el directorio activo.<\/p>\n<p>Puedes usar el comando smbpass, yo uso pdbedit<\/p>\n<p>Con pdbedit \u2013L puedes listar todos los usuarios registrados en el directorio, tanto usuarios de computadoras, como usuarios humanos. Consulta la ayuda de pdbedit para ver c\u00f3mo crear, editar o borrar usuarios. <\/p>\n<p>Yo prob\u00e9 uniendo a mi dominio una maquina con Windows 7, no tenia mas equipos a la mano, pero si se une una Windows 7, igual se une un Windows Vista y anteriores. Me falta probar si se une Windows 8 aunque seguramente si se unir\u00e1 a dominio. El usuario para unir las maquinas a dominio es Administrator, la contrase\u00f1a es la que se puso en la l\u00ednea de comando del paso 2.4<\/p>\n<p>Aunque parecen muchos pasos, el 90% de la configuraci\u00f3n se resuelve d\u00e1ndole copiar y pegar, solo hay que cambiar donde escribo lastdragon.net, lastdragon y la clave del Administrator<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Existi\u00f3 un tiempo en el que poner un servidor de dominio en Windows era algo muy sencillo, emular un Windows NT4 era la cosa m\u00e1s simple del mundo y firmar computadoras con Windows 95 , Windows 98 y Windows ME era simple r\u00e1pido y f\u00e1cil. Si no quer\u00edas pagar las licencias impuestas siempre pod\u00edas instalar&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-709","post","type-post","status-publish","format-standard","hentry","category-consultoria-y-manuales"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=709"}],"version-history":[{"count":0,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/709\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}