martes, 2 de septiembre de 2008

MANUAL DE INSTALACIÓN DE SAMBA-LDAP, sobre Debian Etch

Dependencias
# apt-get install make gcc gcc++ gengetopt libpopt-dev python-crypto
Instalacion de LDAP
# apt-get install slapd ldap-utils
Contraseña del administrador : 00000
Confirme la contraseña del administrador : 00000
Reconfiguración
#dpkg-reconfigure slapd
Para la reconfiguración se le pedirá la siguiente información:
Desea omitir la configuración de ldap No
Introdusca el nombre de dominio DNS vane.com
Instrodusca el nombre de su organización vane.com
Contraseña del administrador 00000
Verificación de la contraseña 00000
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

Para comprobar la instalación
# ldapsearch -x -b “dc=vane,dc=com”
Resultado Correcto
# extended LDIF
#
# LDAPv3
# base <“dc=vane,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
# cd /opt/
# wget
http://www.silcom.com.pe/soft/mkntpwd.tar.gz (en esta direccion podra descargar directamente mkntpwd)
# 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 domonimio o grupo de trabajo vane.com
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

Configuracion de LDAP
# cd /usr/share/doc/samba-doc/examples/LDAP
# gunzip samba.schema.gz
# cp samba.schema /etc/ldap/schema
# pico /etc/ldap/slapd.conf
Agregar el schema de samba
include /etc/ldap/schema/samba.schema
Reiniciar LDAP
# /etc/init.d/slapd restart
Creacion de árbol LDAP
INGRESAR : http://tuip/phpldapadmin/
Login DN : cn=admin,dc=vane.com,dc=com
Passwod : 00000
Debes crear contenedores bases en la raíz del árbol. Crea en “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).
Usando el phpldapadmin expandimos el árbol de dc=home y le damos clic a la opción “Create New Entry Here” (para crear un hijo de dc=home), luego seleccionamos “Organizational Unit” (ou), luego digitamos el nombre deseado (en este caso users) y presionamos la tecla de tabulación para que se habilite el botón para proceder (hasta que no se presione la tecla de tabulación no se habilitará el botón para proceder).
Una vez creada la ou=users, procedemos de la misma forma para crear a ou=machines y a ou=groups.

Al final de este paso el árbol de LDAP se vería así:

CONFIGURACIÓN DE SAMBA


# cd /etc/samba
# cp smb.conf smb.conf.bkp
# pico smb.conf
El archivo smb.conf deberia quedar así.
passdb backend = ldapsam:ldap://127.0.0.1
ldap suffix = dc=prueba,dc=gov,dc=ar ldap machine suffix = ou=machines ldap user suffix = ou=users \ ldap group suffix = ou=groups ldap admin dn = cn=admin,dc=prueba,dc=gov,dc=ar ldap delete dn = no # \ ser PDC domain logons = yes # permitir privilegios a usuarios enable privileges = yes
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 responde de esta forma entonces todo esta correcto hasta ahora
Damos la contraseña de LDAP a SAMBA
#smbpasswd -w 00000
Reiniciar SAMBA
/etc/init.d/samba restart
Si damos clic en la entrada sambaDomainName podremos observar sus propiedades en la ventana de la derecha. Aprovechemos este momento para copiar en algún lugar el valor sambaSID (por ejemplo, el mío es: S-1-5-21-2942057963-2745721404-394493152 ) ya que lo ocuparemos más adelante.
Volver a PHPLDAPADMIN y verificar la entrada
sambaDomainName=VANE.COM
Identificar el sid del dominio ejemplo : S-1-5-21-2942057963-2745721404-394493152
Creación de grupos de dominio
Dentro de PHPLDAPADMIN en contenedor “groups” elige crear “new samba3 group mapping” y crear os siguientes grupos:
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
Para agregar nuestros grupos mapeados Samba, nos vamos al phpldapadmin y dentro de nuestra ou=groups
(nuestra “Organizational Unit” llamada groups) vamos a crear nuestros 4 “Samba 3 Group Mappings”.
INTEGRACIÓN DE LA AUTENTIFICACION Y LDAP
Instalación NSS LDAP
# apt-get install libnss-ldap
# dpkg-reconfigure libnss-ldap


Servidor LDAP 127.0.0.1
Nombre distintivo (DN) dc=vane,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=vane,dc=com
Contraseña ldap para root 00000
CONFIGURACION
#pico /etc/nsswitch.conf
Modifica estas lineas
passwd: compat
group: compat
shadow: compat
Con 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
# apt-get install libpam-ldap
# dpkg-reconfigure libpam-ldap
Servidor ldap 127.0.0.1
Nombre distintivo dc=vane,dc=com
Vercion 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=vane,dc=com
contraseña para la cuenta ldap de root 00000
Local crypt to use when changing passwords md5
# pico /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
#pico /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
# pico /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
# 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 “administrador” que tendrá permisos para ingresar maquinas al dominio
y otro usuario “vanessa” que pertenecerá al grupo administradores y otro llamado “vany” que solo sera un usuario de dominio , esto se hará de la siguiente forma :
Fist Name : Administrador
Last Name : Global
Comon Name : administrador
User ID : administrador
UID Number : 0
Samba SID : 512
Password : 00000
Verify Password : 00000
Home Directory : /home/administrador
Fist Name : vanessa
Last Name : User
Comon Name :vanessa
User ID : vanessa
UID Number : 10000
Samba SID : 512
Password : 00000
Verify Password : 00000
Home Directory : /home/vanessa
Fist Name : vany
Last Name : User
Comon Name : vany
User ID : vany
UID Number : 10001
Samba SID : 513
Password : 00000
Verify Password : 00000
Gid number : sambausers
Primary Group ID : sambausers
Home Directory : /home/vany
Así:


VERIFICAR LA CREACIÓN DE USUARIOS EN LINUX
# getent passwd
administrador:*:0:20000:administrador:/home/administrador:
vanessa:*:10000:20000:vanessa:/home/vanessa:
vany:*:10001:20001:vany:/home/vany:
Creacion de HOME
# mkdir /home/vanessa
# cp /etc/skel/.* /home/vanessa/
# chown -R juan /home/vanessa
# chgrp -R sambaadmins /home/vanessa
Automatizando Ingreso de Cuentas 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
# pico /etc/smbldap-tools/smbldap_bind.conf
slaveDN=”cn=admin,dc=vane,dc=com”
slavePw=”00000″
masterDN=”cn=admin,dc=silcom,dc=com”
masterPw=”00000″
smbldap.conf
# pico /etc/smbldap-tools/smbldap.conf
De la siguiente dirección podrá descargar el archivo smbldap.conf, de la forma como deberia quedar.
(http://www.silcom.com.pe/soft/samba-ldap-etch/smbldap.conf).
NOTA : Cuidado si copian directamente smbldap.conf lo que hay que modificar el numero 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 así que le damos clic a la entrada sambadomainname=vane en el espacio de la derecha vamos a buscar donde está el o los atributos tipo objectclass, le damos clic en donde dice add value, escogemos sambaunixidpool y en la siguiente página 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 número inicial que yo quise utilizar para las cuentas de máquinas.
Una vez echo esto ya podemos registrar nuestras maquinas win$ al dominio.
Creación de homes por defecto
Para esto hay que insertar una linea dentro de smb.conf en la seccion [homes]
root preexec = /etc/samba/mk_sambadir “/home/%u” “%u” “%g”
Y crear el archivo mk_sambadir con las siguientes lineas
#!/bin/bash
if [ ! -d $1 ]
then
mkdir $1
fi
chmod 770 $1 -R
chown $2 $1 -R
chgrp $3 $1 -R
###############
Y reiniciar samba
/etc/init.d/samba restart
PRUEBA
Aprovar por SSH al PDC, los usuarios del dominio no tienen SHELL debería ser posible hacer un inicio via SSH
# ssh -l administrador 10.3.64.161
# ssh -l vanessa 10.3.64.161
PRUEBA
Aprovar desde un Windows aunque no se halla unido al dominio, sin pertenecer al dominio debería poder aprobar como un simple server de archivos
\\pdc\vanessa



Todo esto fue gracias a: