servidor pdc con samba y ldap

Anuncio
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
Descargar