Servidor LDAP · 10 min read · Sep 09, 2025
Servidor de Directorio Mandriva en Debian Etch
Servidor de Directorio Mandriva en Debian Etch
Versión 1.1
Autor: Oliver Meyer
Este documento describe cómo configurar el Servidor de Directorio Mandriva (MDS) en Debian Etch. El sistema resultante proporciona un servidor de oficina completo para pequeñas y medianas empresas - fácil de administrar a través de la Consola de Gestión de Mandriva (MMC) basada en la web.
Características Principales
- Administración fácil a través de MMC
- Integración de OpenLDAP en todo el sistema
- Controlador de Dominio Primario (PDC) SAMBA
- Servidor de correo Postfix con Dovecot, Amavis, Spamassassin y ClamAV (POP3/IMAP/SSL/TLS/Cuota)
- Servidor DNS BIND
- Servidor DHCP ISC
- Proxy web Squid con SquidGuard
Este howto es una guía práctica sin ninguna garantía - no cubre los antecedentes teóricos. Hay muchas maneras de configurar un sistema así - esta es la forma que elegí.
Preámbulo
Este howto es bastante complejo. Por favor, tómese su tiempo, léalo extensamente y siga los pasos minuciosamente. La menor variación podría afectar que su configuración no funcione correctamente.
1 Preparación
1.1 Sistema Básico
Configure un sistema estándar de debian etch y actualícelo. Utilicé la siguiente configuración para este howto y la máquina virtual adjunta que está disponible para nuestros suscriptores:
Nombre del host: server1.example.com
Dominio SAMBA: EXAMPLE
IP: 192.168.0.100
Puerta de enlace: 192.168.0.2
Todas las contraseñas: howtoforge
1.2 Nombre del Host
Edite el archivo hosts - asigne el nombre del host a la IP del servidor.
vi /etc/hostsDebería verse así:
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# Las siguientes líneas son deseables para hosts compatibles con IPv6
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostsDespués, inserte el nombre del host en el archivo hostname …
echo server1.example.com > /etc/hostname… y reinicie el sistema.
rebootCuando el sistema esté nuevamente en funcionamiento, la salida de ambos comandos …
hostname… y …
hostname -f… debería ser:
server1.example.com1.3 ACLs del Sistema de Archivos
Para que SAMBA pueda mapear ACLs del sistema de archivos entre el servidor Linux y los clientes de Windows, necesita agregar soporte de ACL al punto de montaje correspondiente.
vi /etc/fstabAgregue la opción “ acl “ al punto de montaje donde se almacenarán los directorios de SAMBA y donde los usuarios de SAMBA tendrán sus hogares. En mi caso es “ / “ - el contenido debería verse así:
# /etc/fstab: información estática del sistema de archivos.
#
#
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,acl,errors=remount-ro 0 1
/dev/sda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 Después, vuelva a montar el punto de montaje para que los cambios surtan efecto.
mount -o remount /Si todo salió bien, el comando …
mount -l… debería mostrar la opción “ acl “ para el punto de montaje correspondiente:
/dev/sda1 on / type ext3 (rw,acl,errors=remount-ro)2 Repositorios
2.1 MDS
El repositorio MDS proporciona los paquetes relacionados con MDS y también paquetes parcheados para bind9 y dhcp3.
vi /etc/apt/sources.listAgregue las siguientes líneas al archivo.
# Repositorio MDS
deb http://mds.mandriva.org/pub/mds/debian etch main2.2 Debian Volatile
El repositorio Debian Volatile proporciona paquetes más nuevos para ClamAV y Spamassassin que el repositorio estándar de debian.
vi /etc/apt/sources.listAgregue las siguientes líneas al archivo.
# Debian Volatile
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free2.3 Debian Backports
El repositorio Debian Backports proporciona paquetes más nuevos para dovecot.
vi /etc/apt/sources.listAgregue las siguientes líneas al archivo.
# Debian Etch Backports
deb http://www.backports.org/debian etch-backports mainDespués, actualice apt.
apt-get update3 Paquetes Necesarios
3.1 Instalar
Instale los paquetes necesarios para esta configuración.
apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba postfix postfix-ldap sasl2-bin libsasl2 libsasl2-modules amavisd-new libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl lzop nomarch zoo clamav clamav-daemon gzip bzip2 unzip unrar-free unzoo arj spamassassin libnet-dns-perl razor pyzor dcc-client slapd ldap-utils libnss-ldap libpam-ldap dhcp3-server dhcp3-server-ldap bind9 samba smbclient smbldap-tools cupsys cupsys-client foomatic-db-engine foomatic-db foomatic-db-hpijs foomatic-db-gutenprint foomatic-filters foomatic-filters-ppds fontconfig hpijs-ppds linuxprinting.org-ppdsLos paquetes de dovecot actuales en el repositorio estándar de debian tienen un error en conjunto con LDAP - por lo que debe usar los paquetes de dovecot del Debian Backports.
apt-get install -t etch-backports dovecot-common dovecot-imapd dovecot-pop3dSi desea usar impresoras HP, se recomienda instalar algunos paquetes más.
apt-get install hplip libusb-dev python-dev python-reportlab libcupsys2-dev libjpeg62-dev libsnmp9-dev lsb-core3.2 Configuración
Durante la instalación de los nuevos paquetes se le harán algunas preguntas - respóndalas de la siguiente manera.
3.2.1 LDAP
Ingrese la contraseña para el administrador de LDAP y confírmela. ( howtoforge)
3.2.2 Samba
Ingrese un nombre para su dominio. ( EXAMPLE)
Seleccione “ No “ cuando se le pregunte si el smb.conf debe ser modificado para usar configuraciones WINS de DHCP.
3.2.3 Postfix
Seleccione “ Sitio de Internet “ como tipo general de configuración.
Ingrese “ server1.example.com “ como nombre de correo.
3.2.4 Libnss-LDAP
Ingrese “ ldap://127.0.0.1/ “ como URI del servidor LDAP.
Ingrese “ dc=example,dc=com “ como nombre para la base de búsqueda.
Seleccione la versión de LDAP. ( 3)
Ingrese “ cn=admin,dc=example,dc=com “ como cuenta LDAP para root.
Ingrese la contraseña para el administrador de LDAP. ( howtoforge)
3.2.5 Libpam-LDAP
Seleccione “ Sí “ cuando se le pregunte si el root local debe ser el administrador de la base de datos.
Seleccione “ No “ cuando se le pregunte si la base de datos LDAP requiere inicio de sesión.
Ingrese “ cn=admin,dc=example,dc=com “ como cuenta LDAP para root.
Ingrese la contraseña para el administrador de LDAP. ( howtoforge)
4 Configuración de LDAP
4.1 Archivos de Esquema
Primero copie los archivos de esquema para MMC, correo, SAMBA, impresora, DNS y DHCP en el directorio de esquema LDAP.
cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/
cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/
zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz > /etc/ldap/schema/samba.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/printer.schema.gz > /etc/ldap/schema/printer.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dnszone.schema.gz > /etc/ldap/schema/dnszone.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schemaA continuación, incluya los archivos de esquema en la configuración de LDAP
vi /etc/ldap/slapd.confIncluya los archivos de esquema después del esquema inetorgperson.
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schemaHabilite la verificación de esquema (debajo de los archivos de esquema incluidos).
schemacheck on4.2 Configuración Básica
En este paso necesitará la contraseña del administrador de ldap (que definió durante la instalación del paquete en el paso 3) en forma encriptada (SSHA) - así que vamos a encriptarla.
slappasswd -s %ldap_admin_password%Por ejemplo:
slappasswd -s howtoforgeLa salida debería verse así:
{SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9ATómelo en cuenta y continúe - abra el archivo de configuración del servidor LDAP.
vi /etc/ldap/slapd.confBusque la línea comentada con la entrada para el administrador de LDAP (rootdn) …
# rootdn "cn=admin,dc=example,dc=com"… y coméntela. Después de eso, agregue una nueva línea justo debajo. Debe ingresar la contraseña de administrador de ldap encriptada que generó al principio de este paso.
rootpw %encrypted_ldap_admin_password%Por ejemplo:
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9AA continuación, debemos modificar las opciones de indexación para la base de datos. Busque la siguiente entrada:
# Opciones de indexación para la base de datos #1Elimine la línea de abajo …
index objectClass eq… e inserte las siguientes líneas:
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eqAhora agregue SAMBA a la lista de acceso para la base de datos. Busque la siguiente línea:
access to attrs=userPassword,shadowLastChangeCámbielo para que se vea así:
access to attrs=userPassword,sambaLMPassword,sambaNTPasswordEn este punto, el archivo de configuración del servidor LDAP debería verse así:
# Este es el archivo de configuración principal de slapd. Consulte slapd.conf(5) para más
# información sobre las opciones de configuración.
#######################################################################
# Directivas Globales:
# Características a permitir
#allow bind_v2
# Definiciones de esquema y objectClass
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/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schema
schemacheck on
# Donde se coloca el archivo pid. El script init.d
# no detendrá el servidor si cambia esto.
pidfile /var/run/slapd/slapd.pid
# Lista de argumentos que se pasaron al servidor
argsfile /var/run/slapd/slapd.args
# Lea slapd.conf(5) para posibles valores
loglevel 0
# Donde se almacenan los módulos cargados dinámicamente
modulepath /usr/lib/ldap
moduleload back_bdb
# El número máximo de entradas que se devuelve para una operación de búsqueda
sizelimit 500
# El parámetro tool-threads establece la cantidad real de CPU que se utiliza
# para la indexación.
tool-threads 1
#######################################################################
# Directivas Específicas del Backend para bdb:
# Las directivas específicas del backend se aplican a este backend hasta que otra
# directiva 'backend' ocurra
backend bdb
checkpoint 512 30
#######################################################################
# Directivas Específicas del Backend para 'otro':
# Las directivas específicas del backend se aplican a este backend hasta que otra
# directiva 'backend' ocurra
#backend
#######################################################################
# Directivas Específicas para la base de datos #1, de tipo bdb:
# Las directivas específicas de la base de datos se aplican a esta base de datos hasta que otra
# directiva 'database' ocurra
database bdb
# La base de su directorio en la base de datos #1
suffix "dc=example,dc=com"
# directiva rootdn para especificar un superusuario en la base de datos. Esto es necesario
# para syncrepl.
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
# Donde se almacenan físicamente los archivos de base de datos para la base de datos #1
directory "/var/lib/ldap"
# Para el paquete Debian usamos 2MB como valor predeterminado, pero asegúrese de actualizar este
# valor si tiene mucha RAM
dbconfig set_cachesize 0 2097152 0
# Sven Hartge informó que tuvo que establecer este valor increíblemente alto
# para que slapd funcionara. Consulte http://bugs.debian.org/303057
# para más información.
# Número de objetos que pueden ser bloqueados al mismo tiempo.
dbconfig set_lk_max_objects 1500
# Número de bloqueos (tanto solicitados como concedidos)
dbconfig set_lk_max_locks 1500
# Número de bloqueadores
dbconfig set_lk_max_lockers 1500
# Opciones de indexación para la base de datos #1
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eq
# Guardar el tiempo que la entrada se modifica, para la base de datos #1
lastmod on
# Donde almacenar los registros de réplicas para la base de datos #1
# replogfile /var/lib/ldap/replog
# La userPassword por defecto puede ser cambiada
# por la entrada que la posee si están autenticados.
# Otros no deberían poder verla, excepto la
# entrada de administrador a continuación
# Estas líneas de acceso se aplican solo a la base de datos #1
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by dn="cn=admin,dc=example,dc=com" write
by anonymous auth
by self write
by * none
# Asegurar acceso de lectura a la base para cosas como
# supportedSASLMechanisms. Sin esto puede que
# tenga problemas con SASL no sabiendo qué
# mecanismos están disponibles y cosas por el estilo.
# Tenga en cuenta que esto también está cubierto por el 'access to *'
# ACL a continuación, pero si cambia eso como la gente
# suele hacer, aún necesitará esto si quiere que SASL
# (y posiblemente otras cosas) funcionen
# felizmente.
access to dn.base="" by * read
# El dn de administrador tiene acceso completo de escritura, todos los demás
# pueden leer todo.
access to *
by dn="cn=admin,dc=example,dc=com" write
by * read
# Para soporte de Roaming de Netscape, cada usuario obtiene un
# perfil de roaming para el cual tiene acceso de escritura a
#access to dn=".*,ou=Roaming,o=morsnet"
# by dn="cn=admin,dc=example,dc=com" write
# by dnattr=owner write
#######################################################################
# Directivas Específicas para la base de datos #2, de tipo 'otro' (también puede ser bdb):
# Las directivas específicas de la base de datos se aplican a esta base de datos hasta que otra
# directiva 'database' ocurra
#database
# La base de su directorio para la base de datos #2
#suffix "dc=debian,dc=org" Adicionalmente, debe editar el archivo de configuración de LDAP.
vi /etc/ldap/ldap.confAgregue las siguientes líneas: host 127.0.0.1
base dc=example,dc=com
Después, reinicie el servidor LDAP.
/etc/init.d/slapd restartRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.