SERVIDOR PDC CON SAMBA Y LDAP Autor: Ismael Ouardi Año: 2015 ÍNDICE OBJETIVO............................................................................................................................ 3 TOPOLOGÍA ........................................................................................................................ 3 ESTRUCTURA DE RED Y CONFIGURACIÓN DE EQUIPOS ............................................. 4 Servidorldap: ..................................................................................................................... 4 Servidornat: ....................................................................................................................... 5 Windows7 .......................................................................................................................... 6 UbuntuCliente.................................................................................................................... 6 Configuración de Script ..................................................................................................... 7 Instalación y configuración de LDAP ................................................................................ 8 Configuración básica de OpenLDAP ................................................................................. 8 Configuración avanzada ................................................................................................ 9 Verificación del servicio.................................................................................................. 9 Configuración de OpenLDAP para almacenar la información de Samba ..................... 10 Índices de Samba ........................................................................................................ 12 Añadimos usuario LDAP de solo consulta.................................................................... 13 Operaciones básicas de gestión .................................................................................. 14 Instalación y integración de SAMBA en LDAP ............................................................... 15 Instalación de Samba .................................................................................................. 15 Configuración de Samba ................................................................................................. 15 Directorios de Samba: netlogon, profiles y shares ....................................................... 19 Fichero netlogon.bat .................................................................................................... 20 Herramienta SMBLDAP-TOOLS ....................................................................................... 21 Configuración de smbldap-tools ...................................................................................... 21 Inicializar nuestro directorio LDAP ............................................................................... 24 Comprobar la instalación, configuración e integración de OpenLDAP y Samba ........... 25 Comprobar la conexión a nuestro servidor Samba ....................................................... 26 Modificar la cuenta root ................................................................................................ 26 Comando básicos de gestión de usuarios .................................................................... 27 Instalación y configuración de LAM ................................................................................ 29 Instalación de WEBMIN .................................................................................................... 32 Servidor DNS ..................................................................................................................... 33 Unión a dominio con Windows 7 ..................................................................................... 35 Unión a dominio con Ubuntu Desktop ............................................................................ 41 ISMAEL OUARDI 1 Instalación y configuración de CUPS .............................................................................. 44 Añadir impresora en CUPS ............................................................................................. 45 Añadir impresora a Windows: .......................................................................................... 47 Añadir impresora a Ubuntu: ............................................................................................. 49 Conclusión ........................................................................................................................ 53 ISMAEL OUARDI 2 OBJETIVO Autenticar usuarios desde ordenadores con S.O distintos (windows y linux) contra un servidor Linux, y poder acceder a los recursos alojados en dicho servidor (Impresoras,dominios, carpetas) TOPOLOGÍA ISMAEL OUARDI 3 ESTRUCTURA DE RED Y CONFIGURACIÓN DE EQUIPOS Servidorldap: sudo nano /etc/hostname sudo nano /etc/hosts sudo nano /etc/network/interface ISMAEL OUARDI 4 Servidornat: sudo nano /etc/hostname sudo nano /etc/hosts sudo nano /etc/network/interfaces ISMAEL OUARDI 5 Windows7 Configuración de red de windows: UbuntuCliente Nombre de equipo: ISMAEL OUARDI 6 Configuración de Script Vamos a crear un Script para que este servidor nos haga de NAT, y los otros equipos de la red puedan acceder a internet mediante esta pasarela o ruta. Lo primero de todo es crear un archivo, nosotros lo llamaremos IPTABLES.sh, y lo colocaremos en /etc/init.d Sudo nano /etc/init.d/iptables.sh Y añadimos el siguiente contenido: Para ejecutar el Script ponemos lo siguiente: sudo sh /etc/init.d/iptables.sh Comprobamos el funcionamiento: Vamos a Windows y hacemos un tracert a Google: Y Vemos el correcto Funcionamiento pasa por el servidornat:192.168.10.1 ISMAEL OUARDI 7 Instalación y configuración de LDAP El primer paso será la instalación de OpenLDAP: apt-get install slapd ldap-utils El asistente nos solicitará la contraseña del administrador del directorio LDAP. Nosotros utilizaremos la contraseña P@ssword. Configuración básica de OpenLDAP Ejecutaremos el siguiente comando para configurar los principales parámetros de nuestro directorio OpenLDAP: dpkg-reconfigure --priority=low slapd El asistente nos solicitará la siguiente información: ■ ¿Desea omitir la configuración del servidor OpenLDAP? No ■ ■ ■ ■ ■ ■ Introduzca su nombre de dominio DNS:sintesis.com Nombre de la organización: sintesis.com Contraseña del administrador: P@ssw0rd Verificación de la contraseña: P@ssw0rd Motor de base de datos a utilizar: HDB ¿Desea que se borre la base de datos cuando se purgue el paquete slapd? No. De esta ■ ■ manera, aunque desinstaláremos por equivocación el paquete slapd no perderíamos nuestros datos. ¿Desea mover la base de datos antigua? Sí.Relizamos una copia de seguridad de los datos anteriores. ¿Desea permitir el protocolo LDAPv2? No. Únicamente deberíamos permitir el protocolo LDAPv2 si queremos utilizar alguna aplicación que solo acepta la versión 2. Comprobamos que se ha inicializado correctamente nuestro directorio: slapcat Debería mostrar dos objetos: ■ ■ La raíz de nuestro directorio: dn: dc=sintesis,dc=com El usuario administrador: dn: cn=admin,dc=sintesis,dc=com ISMAEL OUARDI 8 En caso de error: Si no muestra la información 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 Configuración avanzada Conexión segura (TLS/SSL) Verificación del servicio Podemos verificar que el servicio está en ejecución con el siguiente comando: service slapd status También podemos comprobar que el servicio slapd está escuchando en el puerto esperado (TCP 389): netstat -atun (muestra los puertos en formato numérico, 389) netstat -atu (muestra el nombre del servicio, ldap) Verificamos que la conexión a nuestro directorio OpenLDAP realizando una consulta: ldapsearch -x -b "dc=sintesis,dc=com" Parámetros: -x Configuración sencilla en lugar de SASL. -b Punto de inicio de la consulta. ISMAEL OUARDI 9 Configuración de OpenLDAP para almacenar la información de Samba El siguiente paso es la configuración de OpenLDAP para almacenar la información de Samba (dominio, grupos, usuarios, equipos...). Instalación del esquema de Samba El primer paso será listar los esquemas que OpenLDAP ya tiene cargados: ls -l /etc/ldap/slapd.d/cn\=config/cn\=schema Por defecto OpenLDAP carga los siguientes esquemas: cn={0}core.ldif cn={1}cosine.ldif cn={2}nis.ldif cn={3}inetorgperson.ldif Si añadimos otro esquema deberíamos asignarle el siguiente número libre. En nuestro caso, el 4. El esquema OpenLDAP de Samba podemos encontrarlo en el paquete samba-doc: 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 continuación crearemos un directorio temporal donde crearemos y modificaremos tods los ficheros de configuración de OpenLDAP: mkdir -p /root/temporal/ldap Creamos un directorio donde almacenaremos los esquemas en formato LDIF: mkdir /root/temporal/ldap/esquemas.d ISMAEL OUARDI 10 Creamos el fichero /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 añadir (en nuestro caso, Samba): ¡Atención no alterar el orden! include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/samba.schema Convertimos el fichero /root/temporal/ldap/esquemas.conf a formato LDIF: slaptest -f /root/temporal/ldap/esquemas.conf -F /root/temporal/ldap/esquemas.d Editamos el fichero ldif del esquema Samba (/root/temporal/ldap/esquemas.d/cn\=config/cn\=schema/cn\=\{4\}samba.ldif) y realizamos los siguientes cambios: ■ Modificamos las tres primeras líneas de la siguiente manera: dn: cn=samba,cn=schema,cn=config objectClass: olcSchemaConfig cn: samba ■ Borramos las últimas líneas: structuralObjectClass: olcSchemaConfig entryUUID: 8309b686-91ed-102f-93fa-972e7504ce9b creatorsName: cn=config createTimestamp: 20101201232147Z entryCSN: 20101201232147.210006Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20101201232147Z Añadimos el esquema Samba con el siguiente comando: ldapadd -Y EXTERNAL -H ldapi:/// -f /root/temporal/ldap/esquemas.d/cn\=config/cn\=schema/cn\=\{4\}samba.ldif Parámetros: -Y Especifica el mecanismo SASL de autentificación. -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 estándar. ISMAEL OUARDI 11 Í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 Añadimos los índices anteriores con el siguiente comando: ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/temporal/ldap/samba_indices.ldif Podemos comprobar que los índices se han añadido correctamente con la siguiente consulta: ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcDatabase={1}hdb olcDbIndex Parámetros: -Q Habilita el modo SASL Quiet. Nunca solicita información. -LLL Modifica la forma en que se muestra la información -Y Especifica el mecanismo SASL de autentificación. -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 estándar. ISMAEL OUARDI 12 Añadimos usuario LDAP de solo consulta Si configuramos alguna aplicación que solo necesite acceso de lectura a OpenLDAP es recomendable crear un usuario que pueda consultar el directorio pero que no pueda modificarlo. Creamos un fichero con la información del usuario (/root/temporal/ldap/usuario_consulta.ldif): dn: cn=consulta,dc=sintesis,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: conexion description: Usuario de consulta userPassword: indiferente Añadimos el usuario cn=consulta,dc=sintesis,dc=com con el siguiente comando: ldapadd -x -D "cn=admin,dc=sintesis,dc=com" -w P@ssw0rd -f /root/temporal/ldap/usuario_consulta.ldif -x Configuración sencilla en lugar de SASL. -D Usuario con la que realizamos la conexión. -w Contraseña del usuario con el que realizamos la conexión. -f Lee las modificaciones desde un fichero en lugar de utilizar la entrada estándar. Debemos establecer la contraseña del nuevo usuario: ldappasswd -x -D "cn=admin,dc=sintesis,dc=com" -w P@ssw0rd -s consulta "cn=consulta,dc=sintesis,dc=com" Parámetros: -s Contraseña que queremos establecer al usuario. Podemos comprobar qué permisos de acceso a la base de datos están asignados actualmente: ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcDatabase={1}hdb olcAccess ISMAEL OUARDI 13 Para establecer los nuevos permisos creamos el fichero /root/temporal/ldap/permisos.ldif y copiamos el siguiente contenido 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,sam baPwdMustChange,sambaPwdLastSet by dn="cn=admin,dc=sintesis,dc=com" write by dn="cn=consulta,dc=sintesis,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=sintesis,dc=com" write by * read Podemos realizar las modificaciones con el siguiente comando: ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f /root/temporal/ldap/permisos.ldif Operaciones básicas de gestión Copias de seguridad de la base de datos Realizar copia de seguridad de la base de datos: slapcat -l backup.ldif Recuperar copia de seguridad de la base de datos: slapadd -c -l backup.ldif ISMAEL OUARDI 14 Instalación y integración de SAMBA en LDAP Instalación de Samba Instalamos el servidor Samba: apt-get install samba El asistente nos solicitará la siguiente información: ■ Nombre del dominio o del grupo de trabajo: SINTESIS Configuración de Samba El primer paso será realizar una copia de seguridad del fichero de configuración de Samba (/etc/samba/smb.conf): cp /etc/samba/smb.conf /etc/samba/smb.conf{,.orig} El contenido de /etc/samba/smb.conf debe ser el siguiente: [global] ### ------ Dominio ------ ### workgroup = SINTESIS netbios name = servidorldap realm = sintesis.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 ISMAEL OUARDI 15 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 = netlogon.bat time server = Yes ### ------ LDAP ------ ### ldap suffix = dc=sintesis,dc=com ldap admin dn = cn=admin,dc=sintesis,dc=com ldap user suffix = ou=Users ldap group suffix = ou=Groups ldap machine suffix = ou=Computers ldap 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 ISMAEL OUARDI 16 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.10.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 ------ ### ISMAEL OUARDI 17 [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 ISMAEL OUARDI 18 read only = Yes guest ok = No Crearemos el fichero /etc/samba/smbusers con el siguiente contenido: nano /etc/samba/smbusers root = Administrador root = Administrator Indicamos a Samba la contraseña del usuario rootDN (cn=admin,dc=sintesis,dc=com): smbpasswd -w P@ssw0rd La contraseña del usuario rootDN se almacena en el fichero /var/lib/samba/secrets.tdb. Nota: Es importante que este fichero solo pueda ser leido por el usuario root. Reiniciamos el servicio Samba: service smbd restart Si consultamos el contenido de nuestro directorio (comando slapcat) veremos como se ha creado un objeto (dn: sambaDomainName=sintesis,dc=sintesis,dc=com) con la información de nuestro dominio Samba. Directorios de Samba: netlogon, profiles y shares Crearemos los directorios necesarios para almacenar la información de nuestro dominio Samba: ■ ■ ■ netlogon: almacena los scripts de autentificación 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: mkdir -p /home/samba/ {netlogon,profiles,shares} chmod 755 /home/samba/ {netlogon,shares} chmod 1777 /home/samba/profiles ISMAEL OUARDI 19 Fichero netlogon.bat Creamos el fichero /home/samba/netlogon/netlogon.bat.unix con el siguiente contenido: nano /home/samba/netlogon/netlogon.bat.unix net time \\servidorldap /set /yes net use H: \\servidorldap\%U servidorldap es el nombre NETBIOS de nuestro servidor Samba. Debemos convertir el fichero a formato DOS. Para ello utilizaremos la aplicación tofrodos. Instalamos la aplicación tofrodos: apt-get install tofrodos Convertimos el fichero a formato DOS: fromdos -u < /home/samba/netlogon/netlogon.bat.unix > /home/samba/netlogon/netlogon.bat ISMAEL OUARDI 20 Herramienta SMBLDAP-TOOLS El paquete smbldap-tools nos facilitará mucho la gestión de nuestro dominio: creará los objetos necesarios (unidades organizativas, grupos...) y nos proporcionará comandos para la gestión de usuarios y grupos. Instalamos el paquete smbldap-tools: apt-get install smbldap-tools Configuración de smbldap-tools Este paquete nos proporciona un script perl (configure.pl) que nos creará los ficheros de configuración de smbldap-tools: /etc/smbldap-tools/smbldap.conf y /etc/smbldaptools/smbldap_bind.conf. Copiamos, descomprimimos y ejecutamos el script perl: cp /usr/share/doc/smbldap-tools/configure.pl.gz /root/temporal/smbldap-tools cd /root/temporal/smbldap-tools gzip -d configure.pl.gz perl configure.pl El asistente nos solicitará la siguiente información: ■ ■ ■ ■ ■ Samba Configuration File Path > /etc/samba/smb.conf Smbldap-tools Configuration Directory Path > /etc/smbldap-tools workgroup name > sintesis netbios name > servidorldap logon drive > H: ■ ■ ■ ■ ■ logon home > . logon path > \\%L\profiles\%U\ home directory prefix > /home/%U default users homeDirectory mode > 700 default user netlogon script > netlogon.bat ■ ■ ■ ■ ■ ■ default password validation > 45 ldap suffix > dc=sintesis,dc=com ldap group suffix > ou=Groups ldap user suffix > ou=Users ldap machine suffix > ou=Computers Idmap suffix > ou=Idmap ■ ■ ■ ■ ■ ■ sambaUnixPooldn object (relative to ${suffix}) > sambaDomainName=SINTESIS ldap master server > 127.0.0.1 ldap master port > 389 ldap master bin > cn=admin,dc=sintesis,dc=com ldap master password > P@ssw0rd ldap slave server > 127.0.0.1 ISMAEL OUARDI 21 ■ ■ ■ ldap slave port > 389 ldap slave bin > cn=admin,dc=sintesis,dc=com ldap slave password > P@ssw0rd ■ ■ ■ ■ ■ ■ ldap tls support > 0 SID for domain sintesis > SID por defecto unix password encryption > MD5 default user gidNumber > 513 default computer gidNumber > 515 default login shell > /bin/bash ■ ■ default skeleton directory > /etc/skel default domain name to append to mail addres > sintesis.com Atención si de la anterior forma no ha funcionado hacemos lo siguiente: ■ nano /etc/smbldap-tools/smbldap.conf SID="S-1-5-21-2252255531-4061614174-2474224977" sambaDomain="SINTESIS" slaveLDAP="ldap://127.0.0.1/" masterLDAP="ldap://127.0.0.1/" ldapTLS="0" verify="require" cafile="/etc/smbldap-tools/ca.pem" clientcert="/etc/smbldap-tools/smbldap-tools.example.com.pem" clientkey="/etc/smbldap-tools/smbldap-tools.example.com.key" suffix="dc=sintesis,dc=com" usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=${SINTESIS},${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="\\PDC-SRV\%U" userProfile="\\PDC-SRV\profiles\%U" userHomeDrive="H:" userScript="logon.bat" mailDomain="sintesis.com" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" ISMAEL OUARDI 22 with_slappasswd="0" slappasswd="/usr/sbin/slappasswd" ■ nano /etc/smbldap-tools/smbldap_bind.conf masterDN="cn=admin,dc=sintesis,dc=com" masterPw="P@ssw0rd" ISMAEL OUARDI 23 Inicializar nuestro directorio LDAP Por último ejecutaremos el comando que inicializará nuestro directorio LDAP con la información anterior: smbldap-populate Este comando nos solicitará la contraseña para el administrador (root) del dominio. Nosotros le asignaremos la contraseña P@ssw0rd. A continuación se muestra los principales objetos (unidades organizativas, usuarios y grupos) creados: dc=sintesis,dc=com | |--- ou=Users Unidad organizativa para almacenar las cuentas de usuario UNIX/Samba | | | |--- uid=root Administrador de UNIX y Administrador del Dominio Samba | | | |--- uid=nobody Cuenta anónima para UNIX y el Dominio Samba | | |--- ou=Computers Unidad organizativa para almacenar las cuentas de los | equipos Microsoft Windows añadidos al dominio | |--- ou=Groups Unidad organizativa para almacenar los grupos UNIX/Samba | | | |--- cn=Domain Admins Grupo Global para los Administradores del Dominio | | | |--- cn=Domain Users Grupo Global para los Usuarios de Dominio | | | |--- cn=Domain Computers Grupo Global para las Cuentas de Computadoras del Dominio | | |--- ou=Idmaps Unidad organizativa para almacenar los mapeos de cuentas Unix a cuentas Samba En este punto es necesario reiniciar el servidor Samba: service samba restart ISMAEL OUARDI 24 Comprobar la instalación, configuración e integración de OpenLDAP y Samba Comprobar las cuentas Samba almacenadas en el directorio El comando pdbedit nos permite gestionar las cuentas Samba.Utilizaremos pdbedit para listar información del directorio. Siempre que tengamos que realizar cualquier modificación (añadir una cuenta, borrar una cuenta, modificar una cuenta, añadir un grupo...) utilizaremos las herramientas proporcionadas por smbldap-tools. Podemos listar las cuentas Samba almacenadas en el directorio con el comando: pdbedit -L Si no hemos añadido nuevos usuarios nos deberá mostrar solo dos usuarios: root y nobody. Si queremos ver un listado detallado utilizaremos la opción -v: pdbedit -L Para obtener la información de un usuario en concreto utilizaremos el comando: pdbedit -Lv usuario Ejemplo: ISMAEL OUARDI 25 Comprobar el mapeo de grupos Unix y Samba Podemos consultar los grupos mapeados entre Unix y Samba con el siguiente comando: net groupmap list Los principales grupos mapeados son: ■ ■ ■ Domain Admins (S-1-5-21-...-512) -> 512 Domain Users (S-1-5-21-...-513) -> 513 Domain Guests (S-1-5-21-...-514) -> 514 ■ Domain Computers (S-1-5-21-...-515) -> 515 Comprobar la conexión a nuestro servidor Samba Para realizar una conexión al servidor Samba necesitamos instalar el cliente Samba: apt-get install smbclient Para comprobar que funciona correctamente realizaremos una conexión al recurso compartido netlogon con el usuario root: smbclient //localhost/netlogon -U root Podemos comprobar también que los mapeos de usuario samba especificados en el fichero /etc/smbusers funcionan: smbcliente //localhost/netlogon -U Administrador smbcliente //localhost/netlogon -U Administrator Modificar la cuenta root Es conveniente realizar las siguientes modificaciones en el usuario root: ■ ■ ■ Cambiar la ruta de su carpeta personal. Establecer el shell (/bin/bash). Deshabilitar el uso de perfil móvil. Para realizar estos cambios ejecutaremos el siguiente comando: smbldap-usermod -d /root -s /bin/bash -C "" -D "" -F "" root Podemos observar los cambios ejecutando el comando: ldapsearch -x -D "cn=admin,dc=sintesis,dc=com" -b "uid=root,ou=Users,dc=sintesis,dc=com" -W ISMAEL OUARDI 26 Comando básicos de gestión de usuarios El paquete smbldap-tools proporciona una serie de comandos que facilita la gestión de grupos y usuarios. Los principales son los siguientes: ■ ■ Añadir un usuario: smbldap-useradd Borrar un usuario: smbldap-userdel ■ ■ ■ ■ ■ Modificar un usuario: smbldap-usermod Cambiar contraseña de un usuario: smbldap-passwd Añadir un grupo: smbldap-groupadd Borrar un grupo: smbldap-groupdel Modificar un grupo: smbldap-groupmod Podéis consultar la página de manual asociada a cada uno de estos comandos para ver todas las opciones. Veamos algunos ejemplos comunes: ■ Crear una cuenta (UNIX y Samba) a ismael ouardi con el nombre de usuario ismael, creando su carpeta personal y estableciendo su contraseña: smbldap-useradd -a -m -N "ismael" -S “ouardi” -P ismael Opciones: -a El usuario también tendrá una cuenta Samba -m Crea la carpeta personal del usuario si no existe -N Nombre -S Apellidos -P Una vez que se ha creado el usuario se ejecuta smbldap-passwd para asignarle contraseña. ISMAEL OUARDI 27 ■ Borrar el usuario ismael: smbldap-userdel ismael ■ Establecer la contraseña del usuario ismael: smbldap-passwd ismael ■ Borrar el usuario ismael y borrar su carpeta personal: smbldap-userdel -r ismael ■ Crear el grupo ventas (Unix y Samba): smbldap-groupadd -a ventas ■ Borar el grupo ventas: smbldap-groupdel ventas ■ Añadir el usuario ismael al grupo ventas: smbldap-groupmod -m ismael ventas ■ Eliminar el usuario ismael' del grupo ventas: smbldap-groupmod -x ismael ventas ISMAEL OUARDI 28 Instalación y configuración de LAM LAM es un frontend web para la administración de cuentas de usuarios UNIX y SAMBA dentro de un directorio LDAP. Para instalarlo ejecutamos apt-get install ldap-account-manager Una vez instalado para acceder a la interfaz de configuración abriremos un navegador y escribimos http://192.168.10.2/lam Nada mas abrir la página de login pulsaremos sobre la opción “LAM Configuration”. En la siguiente página accedemos a “Edit General Settings”, aquí nos pedirá la contraseña maestra que por defecto es “lam”, la introducimos y al acceder al siguiente menu, si queremos podemos cambiarla en la opción que se encuentra al final de dicha página.Una vez hecho esto vamos al menu anterior y seleccionamos la opción “Edit Servers Profiles”. ISMAEL OUARDI 29 En la página de “Edit server profiles” debemos comprobar los datos para que coincidan con los de nuestro servidor, tanto los referentes a la configuración general como a los tipos de cuentas. Y al final de la primera página debemos poner los datos de nuestro usuario root del LDAP “cn=admin,dc=sintesis,dc=com” y su contraseña. En la segunda pestaña debemos modificar los módulos y tipos de módulos de nuestro servidor LDAP. Con la configuración básica es suficiente, pero ojo con los atributos que ya hay por defecto, nosotros tenemos los grupos Users,Groups y Computers, los de LAM no son los mismos, por eso habrá que cambiar tanto el nombre de dominio como el de los grupos… ISMAEL OUARDI 30 ISMAEL OUARDI 31 Instalación de WEBMIN Para instalar WEBMIN debemos de añadir dos repositorios, para añadirlos hacemos lo siguiente: sudo nano /etc/apt/sources.list Y añadimos estas dos siguientes líneas: deb http://download.webmin.com/download/repository sarge contrib deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib Después vamos a descargar y descomprimir el archivo de instalación de WEBMIN: wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add Antes de instalar Webmin es aconsejable actualizar: sudo apt-get update Y ahora ejecutamos el siguiente comando para instalar Webmin: sudo apt-get install webmin Una vez instalado para acceder a webmin debemos de ir a un navegador web y escribir lo siguiente: https://192.168.10.2:10000 ISMAEL OUARDI 32 Servidor DNS Instalar el servicio BIND9: sudo apt-get install bind9 Configurar nuestra zona primaria de DNS usando Webmin Ahora se ha de crear la zona DNS. Usaremos Webmin, ya instalado anteriormente. Abrimos un navegador web y escribimos https://192.168.10.2:10000, nos autenticamos con el usuario y la contraseña del servidor (administrador, P@ssw0rd). Una vez dentro vamos a “Servidores>BIND DNS Server” En el apartado de “zonas dns existentes”, pulsamos sobre “Crear zona raíz”. ● Tipo de zona: Reenvío (nombres de direcciones) Forward ● Nombre de dominio: sintesis.com ● Archivo de registros: Automático ● Servidor maestro: servidorldap (suele aparecer por defecto) ● Dirección de correo: [email protected] Pulsamos sobre “Crear” Pulsamos sobre “Aplicar cambios” Pulsamos sobre Dirección (0) en la parte superior. Nombre: servidorldap Dirección: 192.168.10.2 Pulsamos sobre “Crear” y después “Regresar a Tipo de registro” Pulsamos sobre “Aplicar Cambios” ISMAEL OUARDI 33 Configuramos el servidor para usarse a sí mismo para resolver DNS En esta sección vamos a hacer que el archivo de configuración de resolución de nombres /etc/resolv.conf apunte a nosotros mismos, es decir a nuestros servidor DNS. Abrimos el archivo /etc/resolv.conf para editarlo: sudo nano /etc/resolv.conf Agregamos las siguientes líneas al principio: search sintesis.com servidorldap 192.168.10.2 Reiniciamos el servidor para asegurar el correcto funcionamiento: sudo reboot ISMAEL OUARDI 34 Unión a dominio con Windows 7 Para unir un cliente Windows 7 al dominio deberemos modificar 2 campos del registro para que nos permita hacerlo. Si nos bajamos este fichero y lo ejecutamos ya podremos unir nuestro cliente al dominio sin problemas: https://bugzilla.samba.org/attachment.cgi?id=4988&action=view Una vez hecho esto accedemos a “Propiedades del Sistema”, en el apartado “Configuración de nombre, dominio y grupo de trabajo del equipo” seleccionamos “Cambiar configuración” y mediante la pestaña “Nombre de Equipo pulsamos el bóton de”ID de red”. A lo largo del asistente nos preguntará el usuario root de nuestro LDAP, en nuestro caso: “Administrador” y pass: P@ssw0rd ISMAEL OUARDI 35 ISMAEL OUARDI 36 ISMAEL OUARDI 37 ISMAEL OUARDI 38 ISMAEL OUARDI 39 ISMAEL OUARDI 40 Unión a dominio con Ubuntu Desktop Para poder unir Ubuntu al dominio y poder iniciar sesión con usuarios de UNIX es un poco más complejo, vamos por pasos primero de todo vamos a instalar los siguientes paquetes: Sudo apt-get install ldap-utils libpam-ldap libnss-ldap nslcd Nos pedirá rellenar unos parámetros básicos sobre lo configurado anteriormente. El siguiente paso debemos abrir el archivo /etc/nsswitch.conf como “root” y debemos de configurar el archivo de manera que nos quede de esta manera: Ahora vamos a editar el siguiente archivo /etc/pam.d/common-session y añadimos al final del documento esta línea: session required pam_mkhomedir.so skel=/etc/skel umask=0022 ISMAEL OUARDI 41 También tendremos que añadir la misma línea en /etc/pam.d/login y /etc/pam.d/lightdm session required pam_mkhomedir.so skel=/etc/skel umask=0022 Ahora vamos a crear el archivo /etc/lightdm/lightdm.conf con el siguiente contenido nano /etc/lightdm/lightdm.conf ISMAEL OUARDI 42 Ahora vamos a añadir al inicio del sistema el demonio de ldap llamado nscld: sudo update-rc.d nslcd enable sudo /etc/init.d/nscd restart Ahora reiniciamos el equipo: sudo reboot Si todo ha funcionado correctamente nos debería salir iniciar sesión: ISMAEL OUARDI 43 Instalación y configuración de CUPS Bueno ahora vamos a instalar CUPS, que nos ara de servidor de impresión, ejecutamos el siguiente comando para instalar: sudo apt-get install cupsys Después de haber instalado cups lo siguiente será ir al archivo de configuración de cups y añadir o asegurarse de que los siguientes apartados sean idénticos a los siguientes: nano /etc/cups/cupsd.conf <Location/> Order Deny,Allow Deny From All Allow From 127.0.0.1 </Location> <Location /printers/> Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.10.* </Location> Lo que hemos hecho es permitir acceso a la interface gráfica des de otro equipo que no sea el servidor para poder administrar el servicio de impresión. Para acceder vamos a un navegador y ponemos lo siguiente: https://192.168.10.2:631 ISMAEL OUARDI 44 Añadir impresora en CUPS Para añadir una impresora en CUPS primero de todo debemos acceder a la interface gráfica de CUPS: https://192.168.10.2:631 Una vez dentro vamos a Administración>añadir impresora: Una vez dentro nos dará a elegir en qué tipo de impresora nosotros elegimos de red la primera: ISMAEL OUARDI 45 Ahora podemos poner un nombre a la impresora, una descripción y una ubicación: Aquí debemos elegir el modelo concreto de la impresora elegimos uno cualquiera ya que no hay impresora física: Una vez hecho lo anterior la impresora ya estaría creada ahora falta añadir las impresoras a ambos clientes Windows y Ubuntu. ISMAEL OUARDI 46 Añadir impresora a Windows: Iniciamos sesión en nuestro dominio con Windows, vamos a red, escaneamos la red , entramos en nuestro servidor y nos saldrán nuestros recursos compartidos, allí estarán las impresoras que tengamos instaladas con CUPS, lo que haremos para poder usar-las es instalarla en Windows de la siguiente manera: Hacemos doble clic sobre la impresora que queremos instalar nos saltara un asistente que nos pedirá que elijamos el fabricante y el modelo lo seleccionamos y hacemos clic en aceptar: ISMAEL OUARDI 47 Una vez instalada vamos a Panel de Controls>Hardware ySonido> Dispositivos y impresoras, y veremos como ya nos muestra que la impresora está correctamente instalada: ISMAEL OUARDI 48 Añadir impresora a Ubuntu: Para añadir una impresora en Ubuntu ya sea de red o local es más distinto a Windows. Primero de todo debemos de ir a la herramienta gráfica de Ubuntu llamada Impresión, y damos clic sobre Añadir Impresora, nos saltara un asistente, donde nos pedirá una URL, la URL que nos pide la encontraremos en cups, y es la siguiente: 192.168.10.2:631/printers/Canon_Canon_50i ISMAEL OUARDI 49 En el siguiente paso le dejemos que vaya a consultar a CUPS para encontrar el controlador de la impresora: ISMAEL OUARDI 50 En este paso lo dejamos por defecto: ISMAEL OUARDI 51 Ahora podemos ponerle un nombre y una descripción o si preferís podéis dejarlo por defecto: Y ya tendríamos la impresora lista para usar: ISMAEL OUARDI 52 Conclusión Este proyecto me ha servido de experiencia profesional, de poder depender de mí mismo y espabilarme en situaciones complejas y poder solucionarlas por mi cuenta, además del conocimiento técnico adquirido durante el proyecto, sobre administración de sistemas ya sea en Linux o Windows. Valoro esta experiencia como positiva. ISMAEL OUARDI 53 ISMAEL OUARDI 54