martes, 21 de octubre de 2008

DC con Samba y Openldap en Debian Etch

Instalación de un Servidor Controlador Primario de Dominio con Samba y Openldap en Debian Etch

DEPENDENCIAS NECESARIAS

#apt-get install make gcc gcc++ gengetopt libpopt-dev python-crypto

INSTALACION DE LDAP
#apt-get install slapd ldap-utils

Contraseña del admin: 123456789
Confirme la contraseña del admin: 123456789

RECONFIGURACION
#dpkg-reconfigure slapd

Desea omitir la configuración de ldap: no
Introduzca el nombre de dominio DNS: dominio.com
Introduzca el nombre de su organización: dominio.com
Contraseña del administrador: 123456789
Verificación de la contraseña: 123456789
Motor de base de datos a utilizar: BDB
Desea que se borre la base de datos cuando purge el paquete slapd: NO
Desea mover la base de datos antigua: SI
Permitir el protocolo LDAPV2: si

COMPROBAR LA INSTALACION

# ldapsearch -x -b “dc=dominio,dc=com”

RESULTADO CORRECTO

# extended LDIF

#

# LDAPv3

# base <“dc=dominio,dc=com”> with scope subtree

# filter: (objectclass=*)

# requesting: ALL

# search result

search: 2

result: 34 Invalid DN syntax

text: invalid DN

# numResponses: 1

INSTALACION DE APACHE

# apt-get install apache

INSTALACION DE SMBLDAP-TOOLS

#apt-get install smbldap-tools

INSTALACION DE PHPLDAPADMIN

#apt-get install phpldapadmin

INSTALACION DE MKNTPWD

(Utilidad para crear los hashes de las claves Samba, pasar de texto plano al formato de passwords de windows, requerida por Phpldapadmin)

$ cd /opt/
$ wget http://www.silcom.com.pe/soft/mkntpwd.tar.gz
$ tar -zxf mkntpwd.tar.gz
$ cd mkntpwd
$ make
$ cp mkntpwd /usr/local/bin

VERIFICAR
#./mkntpwd

Usage: mkntpwd [-L lanmgrpwd] [-N ntpasswd]
mkntpwd password
mkntpwd -f [-] [filename]

-L lanmgrpasswd LanManager cleartextpwd <= 14 chars -N ntpasswd NT cleartextpwd <=128 chars (usually <=14)

with both options present the encrypted LanManager-Pwd is
printed first, followed by a ‘:’ and the encrypted NT-Pwd.

The second usage behaves like mkntpwd -L pwd -N pwd

The third usage reads the password from STDIN or a File. Printout
is the same as second.

anton@genua.de

INSTALACION DE SAMBA
#apt-get install samba samba-doc

Nombre del dominio o grupo de trabajo: dominio
Modificar smb.conf para que use la configuración WINS proveniente de DHCP: no

CREACION DE CARPETAS PARA SAMBA

#mkdir /home/samba/

#mkdir /home/samba/netlogon

#mkdir /home/samba/profiles

chmod 775 /home/samba/netlogon

chmod 777 /home/samba/profiles

CONFIGURACION DE LDAP

# cd /usr/share/doc/samba-doc/examples/LDAP

# gunzip samba.schema.gz

# cp samba.schema /etc/ldap/schema

# nano /etc/ldap/slapd.conf

AGREGAR EL SCHEMA DE SAMBA

include /etc/ldap/schema/samba.schema

REINICIAR LDAP

#/etc/init.d/slapd restart

CREACION DE ARBOL LDAP

INGRESAR: http://tuip/phpldapadmin/

Login DN : cn=admin,dc=dominio,dc=com

Password: 123456789

CREAR CONTENEDORES BASES EN LA RAIZ DEL ARBOL CREAR “NEW ORGANISATIONAL UNIT” LO SIGUIENTE:

users (para manejar las cuentas de los usuarios)

machines (para manejar las cuentas de máquinas)

groups (para manejar las cuentas de grupos)

CONFIGURACIÓN DE SAMBA

# cd /etc/samba

# cp smb.conf smb.conf.bkp

# nano smb.conf

EL ARCHIVO DEBERÁ QUEDAR DE LA SIGUIENTE FORMA
(
Esta en la carpeta Redes)

NOTA:

El archivo esta ajustado para la configuración de este caso, si copian el archivo directamente hay que darle permisos de lectura al GRUPO y a OTHERS.

Modificaciones: chmod u-x smb.conf chmod g+r smb.conf chmod o+r smb.conf

Ajustar en el smb.conf: hosts allow = 127.0.0.1 169.254.0.0/255.255.255.0 a su red

PROBAR LA CONFIGURACIÓN

#testparm

Load smb config files from /etc/samba/smb.conf

Processing section “[netlogon]“

Processing section “[homes]“

Processing section “[profiles]“

Loaded services file OK.

Server role: ROLE_DOMAIN_PDC

Press enter to see a dump of your service definitions

SI NOS RESPONDE DE ESTA FORMA ENTONCES TODO ESTA CORRECTO HASTA AHORA

LE DAMOS A CONTRASEÑA DE LDAP A SAMBA

#smbpasswd -w 123456789

REINICIAR SAMBA

/etc/init.d/samba restart

VOLVER A PHPLDAPADMIN Y VERIFICAR LA ENTRADA

sambaDomainName=DOMINIO

IDENTIFICAR EL SID DEL DOMINIO ejem:

#net getlocalsid

S-1-5-21-2942057963-2745721404-394493152

CREACIÓN DE GRUPOS DE DOMINIO

DENTRO DE PHPLDAPADMIN EN CONTENEDOR “groups” ELEGIR CREAR


Group

Windows Name

Gid

samba sid

sambaadmins

Domain Admins

20000

512

sambausers

Domain Users

20001

513

sambaguests

Domain Guests

20002

514

sambamachines

Domain Computers

20003

515


DE LA SIGUIENTE FORMA:





INTEGRACIÓN DE LA AUTENTIFICACION Y LDAP

INSTALACIÓN NSS LDAP


(Módulo para proveer información de usuarios desde un directorio LDAP.)

#apt-get install libnss-ldap
#dpkg-reconfigure libnss-ldap

Servidor LDAP : 127.0.0.1
Nombre distintivo (DN) : dc=dominio,dc=com
Versión de LDAP a utilizar : 3
Hace falta un usuario para acceder a la base de datos ldap : No
Dar privilegios especiales de ldap para root : SI
Desea hacer que la configuración solo pueda leer o escribir el propietario : SI
Cuenta ldap para root : cn=admin,dc=dominio,dc=com
Contraseña ldap para root : 123456789

CONFIGURACION

#vi /etc/nsswitch.conf

COMENTAR ESTAS LINEAS

passwd: compat

group: compat

shadow: compat

AGREGAR ESTAS OTRAS

passwd: compat ldap

group: compat ldap

shadow: compat ldap


COMPROBAR

# getent group

DEBE MOSTRAR

sambaadmins:*:20000:

sambausers:*:20001:

sambaguests:*:20002:

sambamachines:*:20003:

NOTA: SI NO MUESTRA ESTO ALGO ESTA MAL


INSTALACION PAM LDAP

(Módulo para que servidores Linux entre otros, puedan autentificar y cambiar contraseñas en directorios LDAP.)


# apt-get install libpam-ldap

# dpkg-reconfigure libpam-ldap

Servidor ldap : 127.0.0.1

Nombre distintivo: dc=dominio,dc=com

Versión de ldap: 3

Make local root Database admin: si

Hace falta un usuario para la base de datos LDAP: no

Ldap account for root: cn=admin,dc=dominio,dc=com

Contraseña para la cuenta ldap de root: 123456789

Local crypt to use when changing passwords: md5

# nano /etc/pam.d/common-account

COMENTAR

account required pam_unix.so

Y AGREGAR

account sufficient pam_ldap.so

account required pam_unix.so try_first_pass

#nano /etc/pam.d/common-auth

COMENTAR

auth required pam_unix.so nullok_secure

Y AGREGAR

auth sufficient pam_ldap.so

auth required pam_unix.so nullok_secure use_first_pass

# nano /etc/pam.d/common-password

COMENTAR

password required pam_unix.so nullok obscure min=4 max=8 md5

Y AGREGAR AL FINAL

password sufficient pam_ldap.so

password required pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass


INSTALACION DE NSCD

(nscd mantiene una caché con información sobre los datos de los usuarios, que refresca cada cierto tiempo, de forma que las estaciones de trabajo la utilizarán en lugar de consultar al servidor LDAP)


# apt-get install nscd

REINICIAR SAMBA

/etc/init.d/samba restart

AGREGAR USUARIOS

En la “UO” users crear un nuevo “Samba3 Account” se creara el usuario “administrator” que tendrá permisos para ingresar maquinas al dominio
y otro usuario “juan” que pertenecerá al grupo administradores y otro llamado “usuario” que solo será un usuario de dominio, esto se hará de la siguiente forma:

Fist Name: Administrator

Last Name: Global

Comon Name: administrator

User ID: administrator

UID Number: 0

Samba SID: 512

Password: 1234

Verify Password: 1234

Home Directory:

/home/administrator

Fist Name: Juan

Last Name: Pérez

Comon Name: juan

User ID :juan

UID Number: 10000

Samba SID: 512

Password: zaqwsx

Verify Password: zaqwsx

Home Directory: /home/juan

Fist Name: Sebastian
Last Name: Apellido
Comon Name: sebastian
User ID: sebastian
UID Number: 10001
Samba SID: 513
Password: 1478
Verify Password :1478
Gid number: sambausers
Primary Group ID : sambausers
Home Directory : /home/ sebastian







VERIFICAR LA CREACIÓN DE USUARIOS EN LINUX

# getent passwd

administrator:*:0:20000:administrator:/home/administrator:

juan:*:10000:20000:juan:/home/juan:

sebastian:*:10001:20001:sebastian:/home/sebastian:


CREACION DE HOME

# mkdir /home/juan

# cp /etc/skel/.* /home/juan/

# chown -R juan /home/juan

# chgrp -R sambaadmins /home/juan


Nota: Cada Vez que se crea un usuario hay que asignarle el SID manualmente, para que cargue

correctamente los perfiles individuales de usuarios.


AUTOMATIZANDO INGRESO DE CUENTAS DE MAQUINA A LDAP

# cd /usr/share/doc/smbldap-tools/examples

# cp smbldap.conf.gz smbldap_bind.conf /etc/smbldap-tools

# cd /etc/smbldap-tools

# gunzip smbldap.conf.gz

# chown root:root *

# chmod 600 *

HAY QUE EDITAR 2 ARCHIVOS

#nano /etc/smbldap-tools/smbldap_bind.conf

slaveDN=”cn=admin,dc=dominio,dc=com”
slavePw=”123456789″
masterDN=”cn=admin,dc=dominio,dc=com”
masterPw=”123456789″

#nano /etc/smbldap-tools/smbldap.conf

EL ARCHIVO smbldap.conf DEBERÍA QUEDAR ASÍ:

(Esta en la carpeta Redes)

NOTA: CUIDADO SI COPIAN DIRECTAMENTE smbldap.conf LO QUE HAY QUE MODIFICAR EL NRO SID DE SU IMPLEMENTACIÓN ADEMÁS POR SEGURIDAD HAY QUE HACER ESTO : chmod u-x smbldap.conf

POR ULTIMO

#cp smbldap_bind.conf /etc/

#cp smbldap.conf /etc/

AGREGANDO OBJECTCLASS

Tenemos que ir al PHPLDAPADMIN, el atributo SAMBAUNIXIDPOOL para el dominio samba.

Damos clic a la derecha, a la entrada SAMBADOMAINNAME=DOMINIO y en el espacio de la derecha buscamos donde están los atributos de tipo objectclass, damos clic en donde dice ADD VALUE, escogemos SAMBAUNIXIDPOOL y en la siguiente pagina digitamos los valores de UID y GID iniciales con los que vamos a arrancar para nuestros efectos.

De la Siguiente forma:

El GID 20003 corresponde al grupo SAMBAMACHINES

El UID 30000 es el numero inicial para las cuentas de maquinas. Una vez hecho esto ya podemos registrar nuestras maquinas WIN$ al Dominio.

Los ficheros de configuración los publicare en un servidor, si los necesitan urgente se los puedo enviar por email.


4 comentarios:

Anónimo dijo...

No entendi nada!!Para que sirve todo esto? para saber que?

Anónimo dijo...

Eso es un manual para instalar un servidor que sea controlador de un dominio en linux.

El blog también tiene una seccion de manuales en donde se iran publicando poco a poco materiales de este tipo.

Anónimo dijo...

Bastante tecnico tu post.
No entendi Ni Madres!
Pero te deseo todo el exito en tu blog.
Muchos saludos!
JYR

Anónimo dijo...

Socio, la verdad este manual es una copia exacta de otro que hace un tiempo vi en internet. Deberias por lo menos poner la direccion de donde lo copiaste. En realidad esta bastante bueno.
Saludos...

Manuel