domingo, 22 de abril de 2012

Como agregar Equipos con sistema operativo Debian a Dominio Windows server 2003 R2

Antes de comenzar debemos preparar nuestros equipos para el correcto funcionamiento de los pasos que vamos a implementar seguidamente:

Pasos de comprobación:

-Verificar que se exista conexión con el servidor de dominio en nuestro caso "ejemplo.local" o "192.168.1.2"
Nota: si existe conexion No abra problema para los siguientes pasos! de no haber conexión y resolución de nombre! 
(hay que modificar algunos archivitos como el resolv.conf y el hosts los cuales no explicare en este momento, montare otro tema en el blog para que puedan encontrar todo en este mismo site).

Instalación de Aplicaciones necesarias para lograr agregar una maquina con sistema operativo GNU/LINUX DEBIAN a un controlador de dominio WINDOWS SERVER 2003.

-Instalar las Aplicaciones: libkrb53, krb5-config, samba, winbind, ntpdate... suficiente con esto! en el caso de 
Canaima (Una Metadistribucion de GNU/LINUX creada en Venezuela que tiene como base GNU/LINUX DEBIAN) hay que activar algunas otras App que están por el synaptic mas adelante las explicare.

Comenzaremos con la verdadera de configuración del Sistema Operativo:
-Detener los servicios de samba y de winbind es primordial para poder lograr una configuración efectiva de 
nuestro sistema! con los comandos:

/etc/init.d/samba stop
/etc/init.d/winbind stop

Nota: Todos los comando deben ser ejecutados como root.

Editamos los archivos necesarios que son 3 principalmente:

-Primer Archivo krb5.conf 
Este seria el Contenido integral del archivo krb5.conf 
[libdefaults]
default_realm = EJEMPLO.LOCAL
clockskew = 300

krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true



v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true

[realms]
ATHENA.MIT.EDU = {
kdc = kerberos.mit.edu:88
kdc = kerberos-1.mit.edu:88
kdc = kerberos-2.mit.edu:88
admin_server = kerberos.mit.edu
default_domain = mit.edu
}
MEDIA-LAB.MIT.EDU = {
kdc = kerberos.media.mit.edu
admin_server = kerberos.media.mit.edu
}
ZONE.MIT.EDU = {
kdc = casio.mit.edu
kdc = seiko.mit.edu
admin_server = casio.mit.edu
}
MOOF.MIT.EDU = {
kdc = three-headed-dogcow.mit.edu:88
kdc = three-headed-dogcow-1.mit.edu:88
admin_server = three-headed-dogcow.mit.edu
}
CSAIL.MIT.EDU = {
kdc = kerberos-1.csail.mit.edu
kdc = kerberos-2.csail.mit.edu
admin_server = kerberos.csail.mit.edu
default_domain = csail.mit.edu
krb524_server = krb524.csail.mit.edu
}
IHTFP.ORG = {
kdc = kerberos.ihtfp.org
admin_server = kerberos.ihtfp.org
}
GNU.ORG = {
kdc = kerberos.gnu.org
kdc = kerberos-2.gnu.org
kdc = kerberos-3.gnu.org
admin_server = kerberos.gnu.org
}
1TS.ORG = {
kdc = kerberos.1ts.org
admin_server = kerberos.1ts.org
}
GRATUITOUS.ORG = {
kdc = kerberos.gratuitous.org
admin_server = kerberos.gratuitous.org
}
DOOMCOM.ORG = {
kdc = kerberos.doomcom.org
admin_server = kerberos.doomcom.org
}
ANDREW.CMU.EDU = {
kdc = vice28.fs.andrew.cmu.edu
kdc = vice2.fs.andrew.cmu.edu
kdc = vice11.fs.andrew.cmu.edu
kdc = vice12.fs.andrew.cmu.edu
admin_server = vice28.fs.andrew.cmu.edu
default_domain = andrew.cmu.edu
}
CS.CMU.EDU = {
kdc = kerberos.cs.cmu.edu
kdc = kerberos-2.srv.cs.cmu.edu
admin_server = kerberos.cs.cmu.edu
}
DEMENTIA.ORG = {
kdc = kerberos.dementia.org
kdc = kerberos2.dementia.org
admin_server = kerberos.dementia.org
}
stanford.edu = {
kdc = krb5auth1.stanford.edu
kdc = krb5auth2.stanford.edu
kdc = krb5auth3.stanford.edu
master_kdc = krb5auth1.stanford.edu
admin_server = krb5-admin.stanford.edu
default_domain = stanford.edu
}
EJEMPLO.LOCAL = { 
kdc = nombredeservidor.ejemplo.local
default_domain = ejemplo.local
admin_server =  nombredeservidor.ejemplo.local
}
ejemplo.local = {
kdc = nombredeservidor.ejemplo.local
default_domain = ejemplo.local
admin_server = nombredeservido.ejemplo.local
}
ejemplo = {
kdc = nombredeservidor.ejemplo.local
default_domain = ejemplo.local
admin_server = nombredeservidor.ejemplo.local
}


[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmin.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.mit.edu = ATHENA.MIT.EDU
mit.edu = ATHENA.MIT.EDU
.media.mit.edu = MEDIA-LAB.MIT.EDU
media.mit.edu = MEDIA-LAB.MIT.EDU
.csail.mit.edu = CSAIL.MIT.EDU
csail.mit.edu = CSAIL.MIT.EDU
.whoi.edu = ATHENA.MIT.EDU
whoi.edu = ATHENA.MIT.EDU
.stanford.edu = stanford.edu
.slac.stanford.edu = SLAC.STANFORD.EDU
.ejemplo= ejemplo
.ejemplo.local = EJEMPLO.LOCAL

[appdefaults]
pam = {
ticket_lifetime = 1d
renew_llifetime = 1d
forwardable = true
proxiable = false
retain_after_close = false
minimum_uid = 0
try_first_pass = true
}

[login]
krb4_convert = true
krb4_get_tickets = false



-Segundo Archivo smb.conf:
#======================= Global Settings =======================

[global]

## Browsing/Identification ###
   realm = EJEMPLO.LOCAL
   workgroup = EJEMPLO
   security = ads
   idmap uid = 10000-20000
   idmap gid = 10000-20000
   template shell = /bin/bash
   template homedir = /home/%D/%U
   winbind use default domain = yes
# server string is the equivalent of the NT Description field
   server string = Nombre de la maquina para mostrar en descripcion de windows
   dns proxy = no
#### Networking ####
#### Debugging/Accounting ####
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
####### Authentication #######
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes

########## Domains ###########
############ Misc ############

#======================= Share Definitions =======================
[homes]
   comment = Home Directories
   browseable = no
   read only = yes
  create mask = 0700
   directory mask = 0700
   valid users = %S
[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
-Tercer Archivo nsswitch.conf
passwd:         files winbind
group:          files winbind
shadow:         compat
hosts:          files dns
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis
Luego de realizar las modificaciones en los archivos anteriores hay que agregar el eq. al dominio, es necesario que se tenga un usuario con privilegios de administrador (o que al menos pueda agregar maquinas al dominio en windows).
Importante para las personas que esten utilizando la Metadistro de Canaima es necesario agregar unos comando adicionales para el correcto funcionamiento de los comando siguientes.
Personalmente recomiendo que se realice la instalación con el "synaptic" colocando la palabra "samba" en busqueda rápida agregamos los siguientes paquetes: samba-common, smbldap-tools, samba-tools, samba-common-bin,gadmin-samba, libpam-smbpass, smbc, ldapscripts, kdenetwork-filesharing, smbclient,ldap-account-manager.
con la misma aplicación colocamos la palabra "kinit" y agregamos las app: kstart, heimdal-clients

con esto sera suficiente para completar el agregado de la maquina al dominio utilizando el siguiente comando:

net ads join -U "CUENTA CON PRIVILEGIOS"
seguidamente les solicitara la contraseña de la cuenta que coloquen, tengan en cuenta que Kerberos es sumamente delicado y temas tan simples como la diferencia de Hora entre el controlador de dominio y el Eq. que queremos agregar ocasionara problemas al momento de ejecutar el comando anterior.

al finalizar el comando la maquina estara lista agregada al servidor de dominio, necesitamos iniciar de nuevo los servicios de SAMBA y de WINBIND con los comandos:
/etc/init.d/samba start
/etc/init.d/winbind start

cuando se hallan iniciado los demonios de samba y de winbind realizaremos algunas pruebas para confirmar que el Eq. esta conectado al servidor para ello usaremos los comandos:
wbinfo -u (este comando nos muestra los usuarios del dominio)
si el comando nos muestra los usuarios del dominio estamos por EXCELENTE camino. por que ya la maquina esta agregada al dominio.

el objetivo es cumplido hasta el momento, despues de tantos pasos! mas sin embargo  lo divertido de hacer estos procedimientos es que nuestros usuarios logren abrir sesion con sus usuarios del Servidor de AD cierto...!

Estos son los pasos que tenemos que ejecutar para lograrlo..
-modificamos el login de nuestro canaima o debian y abrimos el siguiente archivo: 
/etc/pam.d/common-account 
y agregamos los siguiente: 
account sufficient pam_winbind.so
account required pam_unix.so

-modificamos el login de nuestro canaima o debian y abrimos el siguiente archivo: 
/etc/pam.d/common-auth 
y agregamos los siguiente:
auth sufficient pam_winbind.so
auth required pam_unix.so
-modificamos el login de nuestro canaima o debian y abrimos el siguiente archivo: 
/etc/pam.d/common-session 
y agregamos los siguiente: 
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session sufficient pam_winbind.so
session required pam_unix.so
-modificamos el login de nuestro canaima o debian y abrimos el siguiente archivo:
/etc/pam.d/common-password
password sufficient pam_winbind.so
password required pam_unix.so


ESO ES TODO! realicen las pruebas que crean necesarias...