Beruflich Dokumente
Kultur Dokumente
123456
El asistente nos solicitar la contrasea del administrador del directorio LDAP. Nosotros utilizaremos la contrasea 123456
El asistente nos solicitar la siguiente informacin: o Desea omitir la configuracin del servidor OpenLDAP? No o Introduzca su nombre de dominio DNS: cunori.com o Nombre de la organizacin: cunori.com o Contrasea del administrador: 123456 o Verificacin de la contrasea: 123456 o Motor de base de datos a utilizar: HDB o Desea que se borre la base de datos cuando se purgue el paquete slapd? No. De esta manera, aunque desinstalramos por equivocacin el paquete slapd no perderamos nuestros datos. o Desea mover la base de datos antigua? S. Relizamos una copia de seguridad de los datos anteriores.
Hugo Diego Josu Rivas Elas
o Desea permitir el protocolo LDAPv2? No. nicamente deberamos permitir el protocolo LDAPv2 si queremos utilizar alguna aplicacin que solo acepta la versin 2. Comprobamos que se ha inicializado correctamente nuestro directorio:
slapcat
Debera mostrar dos objetos: o La raz de nuestro directorio: dn: dc=cunori,dc=com o El usuario administrador: dn: cn=admin,dc=cunori,dc=com Si no muestra la informacin esperada pararemos el servicio slapd, borraremos la base de datos actual, ejecutaremos el asistente (introduciendo los datos indicados anteriormente), iniciaremos el servicio slapd y comprobaremos de nuevo el contenido de nuestro directorio:
service slapd stop rm -R /var/lib/ldap/* dpkg-reconfigure --priority=low slapd service slapd start slapcat
Configuracin Avanzada
Conexin segura (TLS/SSL) y Verificacin del Servicio
Podemos verificar que el servicio est en ejecucin con el siguiente comando:
service slapd status
Tambin podemos comprobar que el servicio slapd est escuchando en el puerto esperado (TCP 389):
netstat -atun (muestra los puertos en formato numrico, 389) netstat -atu (muestra el nombre del servicio, ldap)
Si aadimos otro esquema deberamos asignarle el siguiente nmero libre. En nuestro caso, el 4. El esquema OpenLDAP de Samba podemos encontrarlo en el paquete sambadoc:
apt-get install samba-doc
Copiamos el esquema de samba al directorio donde OpenLDAP tiene los almacenados los esquemas (/etc/ldap/schema):
zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
A continuacin crearemos un directorio temporal donde crearemos y modificaremos todos los ficheros de configuracin de OpenLDAP:
mkdir -p /root/temporal/ldap
Creamos el fichero (nano, gedit) /root/temporal/ldap/esquemas.conf y estableceremos como contenido la lista de esquemas ya cargados en OpenLDAP (en riguroso orden) y los esquemas que queremos aadir (en nuestro caso, Samba):
Editamos el fichero ldif del esquema Samba (/root/temporal/ldap/esquemas.d/cn\=config/cn\=schema/cn\=\{4\}samba.ld if) y realizamos los siguientes cambios: o Modificamos las tres primeras lneas de la siguiente manera:
structuralObjectClass: olcSchemaConfig entryUUID: 8309b686-91ed-102f-93fa-972e7504ce9b creatorsName: cn=config createTimestamp: 20101201232147Z entryCSN: 20101201232147.210006Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20101201232147Z
Parmetros: -Y Especifica el mecanismo SASL de autentificacin. -H Especifica la URI que hace referencia al servidor LDAP (protocolo/host/puerto). -f Lee las modificaciones desde un fichero en lugar de utilizar la entrada estndar.
ndices de Samba
Samba necesita una serie de ndices en la base de datos para funcionar correctamente. Crearemos el fichero /root/temporal/ldap/samba_indices.ldif con el siguiente contenido:
dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: uidNumber eq olcDbIndex: gidNumber eq olcDbIndex: loginShell eq olcDbIndex: uid eq,pres,sub olcDbIndex: memberUid eq,pres,sub olcDbIndex: uniqueMember eq,pres olcDbIndex: sambaSID eq olcDbIndex: sambaPrimaryGroupSID eq olcDbIndex: sambaGroupType eq olcDbIndex: sambaSIDList eq olcDbIndex: sambaDomainName eq olcDbIndex: default sub
Podemos comprobar que los ndices se han aadido correctamente con la siguiente consulta:
Parmetros: -Q Habilita el modo SASL Quiet. Nunca solicita informacin. -LLL Modifica la forma en que se muestra la informacin
Hugo Diego Josu Rivas Elas
-Y Especifica el mecanismo SASL de autentificacin. -H Especifica la URI que hace referencia al servidor LDAP (protocolo/host/puerto). -f Lee las modificaciones desde un fichero en lugar de utilizar la entrada estndar.
dn: cn=consulta,dc=cunori,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: conexion description: Usuario de consulta userPassword: indiferente
-D Usuario con la que realizamos la conexin. -w Contrasea del usuario con el que realizamos la conexin. -f Lee las modificaciones desde un fichero en lugar de utilizar la entrada estndar. Debemos establecer la contrasea del nuevo usuario:
Parmetros: -s Contrasea que queremos establecer al usuario. Podemos comprobar qu permisos de acceso a la base de datos estn asignados actualmente:
dn: olcDatabase={1}hdb,cn=config changetype: modify delete: olcAccess dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcAccess olcAccess: to attrs=userPassword,shadowLastChange,sambaNTPassword,sambaLMPassword,sambaPwdMu stChange,sambaPwdLastSet by dn="cn=admin,dc=cunori,dc=com" write by dn="cn=consulta,dc=cunori,dc=com" read by anonymous auth by self write by * none
dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcAccess olcAccess: to dn.base="" by * read dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcAccess olcAccess: to * by self write by dn="cn=admin,dc=cunori,dc=com" write by * read
slapcat -l backup.ldif
slapadd -c -l backup.ldif
Instalacin de Samba
Instalamos el servidor Samba:
El asistente nos solicitar la siguiente informacin: Nombre del dominio o del grupo de trabajo: cunori.com
Configuracin de Samba
El primer paso ser realizar una copia de seguridad del fichero de configuracin de Samba (/etc/samba/smb.conf):
cp /etc/samba/smb.conf{,.orig}
[global] ### ------ Dominio ------ ### display charset = UTF-8 workgroup = cunori.com netbios name= ingenieria realm = cunori.com server string = %h PDC security = user dns proxy = No ### ------ Usuarios ------ ### passdb backend = ldapsam:ldap://127.0.0.1 username map = /etc/samba/smbusers # Si queremos permitir el acceso a usuarios invitados deberemos crear el # usuario indicado en 'guest account' # map to guest = Bad User # guest account = guest map to guest = Never encrypt passwords = Yes
unix password sync = Yes ldap passwd sync = Yes passwd program = /usr/sbin/smbldap-passwd %u passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated* #idmap backend = ldap:ldap://127.0.0.1 #idmap uid = 10000-40000 #idmap gid = 10000-40000 ### ------ PDC ------ ### domain master = Yes preferred master = Yes local master = Yes wins support = Yes os level = 100 #domain logons = Yes #logon path = \\%L\profiles\%U\ #logon drive = H: logon script = logon.bat time server = Yes ### ------ LDAP ------ ### ldap suffix = dc=cunori,dc=com ldap admin dn = cn=admin,dc=cunori,dc=com ldap ldap ldap ldap user suffix = ou=Users group suffix = ou=Groups machine suffix = ou=Computers idmap suffix = ou=Idmap
ldap passwd sync = Yes ldap ssl = No ldap delete dn = Yes # La siguiente directiva solo tiene sentido si tenemos un servidor LDAP esclavo # ldap replication sleep = 1000
add machine script = /usr/sbin/smbldap-useradd -w %u add user script = /usr/sbin/smbldap-useradd -m %u delete user script = /usr/sbin/smbldap-userdel %u add group script = /usr/sbin/smbldap-groupadd -p %g
delete group script = /usr/sbin/smbldap-groupdel %g add user to group script = /usr/sbin/smbldap-groupmod -m %u %g delete user from group script = /usr/sbin/smbldap-groupmod -x %u %g set primary group script = /usr/sbin/smbldap-usermod -g %g %u ### ------ Ficheros ------ ### case sensitive = No default case = lower preserve case = Yes short preserve case = Yes map acl inherit = Yes hide unreadable = Yes dos charset = 850 Unix charset = ISO8859-1 ### ------ Impresoras ------ ### # load printers = Yes # printing = cups # printcap name = cups ### ------ Red ------ ### socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 interfaces = eth0 eth1 eth2 eth3 lo hosts allow = 127.0.0.1, 192.168.1.0/24, 10.0.2.0/24 hosts deny = 0.0.0.0 smb ports = 139 445 bind interfaces only = Yes name resolve order = wins hosts lmhosts bcast # La directiva "remote announce" solo la utilizaremos para enviar # paquetes broadcast a redes remotas (no conectadas al servidor) # remote announce = 192.168.200.255, 192.168.210.255 ### ------ Logs ------ ### syslog only = No max log size = 1000 log file = /var/log/samba/log.%m syslog = 0
### ------ Varios ------ ### panic action = /usr/share/samba/panic-action %d ### ------ Comparticiones ------ ###
[netlogon] comment = Domain Logon Service path = /home/samba/netlogon guest ok = No read only = Yes browseable = No [profiles] comment = Network Profiles Share path = /home/samba/profiles read only = No create mask = 0600 directory mask = 0700 browseable = No guest ok = No printable = No profile acls = Yes csc policy = disable [homes] comment = Home Directories valid users = %S, %D%w%S read only = No browseable = No guest ok = No create mask = 0600 directory mask = 0700 inherit acls = Yes vfs objects = recycle recycle:repository = Papelera de reciclaje recycle:keeptree = Yes recycle:versions = Yes [printers] comment = All Printers path = /var/spool/samba browseable = No 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 [public] path = /tmp read only = No guest ok = Yes
smbpasswd -w 123456
La contrasea del usuario rootDN se almacena en el fichero /var/lib/samba/secrets.tdb. Es importante que este fichero solo pueda ser leido por el usuario root. Reiniciamos el servicio Samba:
Si consultamos el contenido de nuestro directorio (comando slapcat) veremos cmo se ha creado un objeto (dn: sambaDomainName=INGENIERIA,dc=cunori,dc=com) con la informacin de nuestro dominio Samba.
Crearemos los directorios necesarios para almacenar la informacin de nuestro dominio Samba:
netlogon: almacena los scripts de autentificacin de los clientes Windows. profiles: almacena los perfiles de usuario de los clientes Windows. shares: almacena los directorios compartidos de nuestro dominio.
Ejecutaremos los siguientes comandos para crear y configurar los directorios anteriores:
Fichero netlogon.bat
Esta parte es opcional
Creamos el fichero /home/samba/netlogon/netlogon.bat.unix con el siguiente contenido:
Debemos convertir el fichero a formato DOS. Para ello utilizaremos la aplicacin tofrodos. Instalamos la aplicacin tofrodos:
El paquete smbldap-tools nos facilitar mucho la gestin de nuestro dominio: crear los objetos necesarios (unidades organizativas, grupos...) y nos proporcionar comandos para la gestin de usuarios y grupos.
Instalacin de smbldap-tools
Configuracin de smbldap-tools
cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/
net getlocalsid
Ahora abrimos el archivo /etc/smbldap-tools/smbldap.conf y lo modificamos de modo que los datos queden de la siguiente manera:
SID="S-1-5-21-502694665-2564526811-1695455512" sambaDomain="ingenieria" slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" ldapTLS="0" ldapSSL="0" verify="require" cafile="/etc/smbldap-tools/ca.pem" clientcert="/etc/smbldap-tools/smbldap-tools.pem" clientkey="/etc/smbldap-tools/smbldap-tools.key" suffix="dc=cunori,dc=com" usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" scope="sub"
password_hash="MD5" password_crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" shadowAccount="1" defaultMaxPasswordAge="45" userSmbHome="\\%L\%U\.profile" userProfile="\\%L\%profiles\%U" userHomeDrive="H:" userScript="logon.bat" mailDomain="cunori.com" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd"
smbldap-populate
Comprobacin de Conexin
Para realizar una conexin al servidor Samba necesitamos instalar el cliente Samba:
smbclient L localhost
Se mostrar lo siguiente: