PDF de programación - BULMA: Sistema de cuentas de correo virtuales con PostFix, OpenLDAP y Courier

Imágen de pdf BULMA: Sistema de cuentas de correo virtuales con PostFix, OpenLDAP y Courier

BULMA: Sistema de cuentas de correo virtuales con PostFix, OpenLDAP y Couriergráfica de visualizaciones

Actualizado el 24 de Febrero del 2020 (Publicado el 15 de Abril del 2017)
433 visualizaciones desde el 15 de Abril del 2017
51,0 KB
14 paginas
Creado hace 15a (27/04/2004)
BULMA: Sistema de cuentas de correo virtuales con PostFix, OpenLDAP y Courier

Bisoños Usuarios de Linux de Mallorca y Alrededores | Bergantells Usuaris de Linux de Mallorca i Afegitons

Sistema de cuentas de correo virtuales con PostFix, OpenLDAP y Courier
(1675 lectures)

Per Jesús Roncero Franco, golan (http://www.roncero.org)
Creat el 17/04/2004 02:40 modificat el 17/04/2004 02:40

Normalmente, montar un sistema de correo con linux es una tarea sencilla. Basta instalar postfix o qmail
para gestionar los correos del sistema y del dominio que tengamos. Cuando tenemos más de un dominio y
queremos tener un control más fino de los usuarios de correo, el sistema se puede llegar a complicar
bastante si no hacemos uso de las capacidades de las cuentas virtuales.

En este artículo veremos como utilizar el servidor de correo Postfix(1), el servidor de directorio
OpenLDAP(2) y los servicios de correo de Courier(3) para gestionar el correo, los usuarios y el pop e imap
utilizando un potente sistema de cuentas virtuales, en la que la información sobre los usuarios estará
almacenada en el directorio LDAP.

Advertencia

Todo este artículo está basado en muchas horas de leer documentación, hacer experimentos y modificar ficheros de
configuración hasta ver turbio. No soy ningún experto en LDAP, ni Postfix ni Courier, por lo que no te garantizo que te vaya
a funcionar a la primera. A mi me ha funcionado así, lo que no quiere decir que sea una configuración perfecta.

Este artículo presupone ciertos conocimientos sobre PostFix y LDAP. Si estas verde en estos dos aspectos, te recomiendo que
leas antes un poco de documentación sobre el tema. En Bulma tienes buenos artículos introductorios. O mira al final del
artículo, que encontrarás algunos enlaces interesantes.

La modificación de postfix y de su autentificación te puede hacer perder correo e incluso te puede dejar expuesto a ser un
relay abierto en internet. Todas las pruebas que hagas, mejor que las hagas con un sistema que no sea en producción o que
esté en una red privada.

En fin, lo de siempre, RTFM.

Agradezco críticas y correcciones a los errores ortográficos, de configuración y de conceptos que tenga este artículo (seguro
que los tiene).

Por último, el artículo es extenso y trata muchos temas. Es posible que algunas cosas no estén bien explicadas o se me hayan
olvidado, simplemente porque llevo demasiadas cosas ;−) en la cabeza con este artículo. Intentaré mejorarlo sobre la marcha o
solventarlo con los comentarios que salgan en este artículo.

Jesús Roncero Franco (c) 2004

¿Qué es lo que queremos hacer exactamente?





Vamos a tener un sistema de correo con Postfix, el cual queremos que nos controle el correo local del sistema
(correos de las cuentas locales) y que además nos controle el correo de cuentas virtuales (es decir, cuentas que no
existen en el sistema y que, por tanto, no pueden ser usadas para hacer login en la máquina). Además queremos
que nuestro sistema haga de servidor MX secundario de otros dominios, es decir, que almacene el correo de otros
dominios en caso de que sus servidores primarios de correo estén inaccesibles.
Toda la información de los usuarios (cuentas y alias) estará almacenada en un servidor de directorio LDAP, que
puede estar en la misma máquina o en otra de la misma red. Además, utilizaremos una herramienta web para la

1/14

BULMA: Sistema de cuentas de correo virtuales con PostFix, OpenLDAP y Courier

visualización y administración del servidor LDAP (phpldapadmin), aparte de las típicas herramientas en línea de
comandos.
Un sistema POP3, POP3−SSL, IMAP e IMAP−SSL que utilizará las cuentas virtuales y autenticará contra el
servidor LDAP.



Todo ello lo montaremos sobre un servidor GNU/Linux Debian corriendo Woody, con la mayoría de paquetes de woody
excepto algunos cambios por comodidad.

Haremos las siguientes suposiciones y declaración de intenciones:










Dominio principal de la máquina: correo.prueba.com (nombre canónico de la máquina y registro A del DNS en
internet).
Dominios virtuales: bulmeros.com y bulmita.com
El servidor ldap estará almacenado en la misma máquina y habremos creado un alias (dentro de la intranet) que
apuntará a la misma máquina, llamada ldap.dominio.com que no se verá desde internet. Así mismo, este alias se
utilizará como dominio virtual de web para acceder al programa de administración de LDAP en php.
Todo el correo de todos los usuarios de correo virtuales estará almacenado en un directorio del sistema y
pertenecerán a un mismo usuario. El correo se almacenará en formato Maildir. Utilizaremos Maildir porque Courier
es el formato que soporta.
El servidor LDAP será ejecutado por un usuario slapd para mayor seguridad.

Si se quiere que el servidor LDAP esté accesible desde fuera, deberá estar protegido su acceso y tener cuidado con qué
información se muestra.

Instalación y configuración de LDAP

Esta es la parte del proceso más larga y más complicada, en parte por la complejidad que tiene LDAP. En realidad LDAP es
muy potente y permite almacenar todo tipo de información en él, pero es una aplicación a la que cuesta hacerse a ella. Una
vez que lo haces, todo es más fácil e incluso disfrutas con ella (jamas pensé que diría esto ;−)).

Compilando e instalando OpenLDAP desde las fuentes

El servidor openldap que se encuentra en debian woody viene compilado sin soporte para utilizar ssl. Para ello debemos
recompilar nuestro propio paquete de openldap con soporte para ldaps. Aunque esto no es necesario, está bien hacerlo
(podemos instalarlo desde otra fuente o no utilizar ssl).

Lo haremos de la siguiente manera:

$ cd
$ mkdir debian−ldap
$ cd debian−ldap
$ apt−get source slapd
$ apt−get build−dep slapd
$ apt−get install libssl−dev

El paquete slapd es el que contiene el servidor LDAP en debian cuyo demonio se llama de la misma manera, slapd. El
paquete libssl−dev contiene las bibliotecas de desarrollo de SSL para compilar OpenLDAP.

Activamos el SSL:

$ cd openldap*
$ vi debian/rules

y reemplazamos −−without−tls con −−with−tls.

Compilamos los paquetes con

dpkg−buildpackage −uc −uc −rfakeroot

2/14

BULMA: Sistema de cuentas de correo virtuales con PostFix, OpenLDAP y Courier

Una vez hecho este paso, tendremos en el directorio ~/debian−ldap los ficheros .deb que deberemos instalar tal que

$ sudo dpkg −i *.deb

y reiniciar el sistema LDAP con

$ sudo /etc/init.d/slapd restart

Como hemos configurado nosotros mismos el paquete con soporte SSL, deberemos controlar que, si sale una nueva versión,
no nos machaque el que tenemos instalado. De manera que congelaremos el paquete de esta manera:

$ sudo echo "slapd hold" | dpkg −−set−selections

Pero, debemos de estar muy al tanto de posibles fallos de seguridad para poder recompilar otra vez nuestros paquetes.

Instalando OpenLDAP desde paquetes precompilados con soporte SSL

Si no queremos pasar por la molestia de compilar nuestros propios paquetes, podemos descargarlos ya compilados con
soporte para SSL y para woody. Para ello, debemos añadir la línea:

deb http://www.fs.tum.de/~bunk/debian woody/bunk−1 main contrib non−free

al fichero /etc/apt/sources.list.

Deberemos instalar los siguientes paquetes con apt−get:

apt−get install libldap2 libldap2−tls slapd

que contendrán las bibliotecas y el demonio.

Instalación de programas auxiliares

Es conveniente tener instalado estos programas: ldap−utils: que contiene las utilidades ldapsearch, ldapadd, etc para manejar
el directorio desde la línea de comandos.

Configuración de OpenLDAP

Como hemos dicho, configuraremos el demonio de LDAP para que se ejecute con un usuario que no sea root. Normalmente
cuando se instala OpenLDAP usando los paquetes de debian, se puede configurar la estructura básica del sistema gracias a
debconf, es decir, a las preguntas que nos hará el instalador de debian. Nosotros nos saltaremos ese paso y configuraremos
desde cero.

Procedemos con lo siguiente:

adduser slapd

chown −R slapd.slapd /etc/ldap
chmod 770 /etc/ldap
find /etc/ldap −type f −exec chmod 440 {} \;
find /etc/ldap −type d −exec chmod 770 {} \;
chown −R slapd.slapd /var/lib/ldap
chmod 750 /var/lib/ldap
rm /var/lib/ldap/*
chown −R slapd.slapd /var/spool/slurpd
rm /var/spool/slurpd/*

cd
/etc/ldap/

Con esto habremos cambiado todos los permisos al usuario slapd y borrado las bases de datos actuales.

3/14

BULMA: Sistema de cuentas de correo virtuales con PostFix, OpenLDAP y Courier

Generaremos la clave del administrador con

$ /usr/sbin/slappasswd −h {CRYPT}
New password:
Re−enter new password:
{CRYPT}FxThcXLxmMTw.

que está cifrada y que utilizaremos en el fichero de configuración slapd.conf que crearemos a continuación.

Un /etc/ldap/slapd.conf básico sería así:

# This is the main ldapd configuration file. See slapd.conf(5) for more
# info on the configuration options.

# Schema and objectClass definitions
# Incluir en este 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
# Este schema lo utilizaremos despues
#include /etc/ldap/schema/authldap.schema

# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck on

# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile /var/run/slapd.pid

# List of arguments that were passed to the server
argsfile /var/run/slapd.args

# Where to store the replica logs
replogfile /var/lib/ldap/replog

# Read slapd.conf(5) for possible values
loglevel 256

# Password Format
password−hash {CRYPT}

#######################################################################
# ldbm database definitions
#######################################################################

# The backend type, ldbm, is the default standard
database ldbm

# The base of your directory
suffix
  • Links de descarga
http://lwp-l.com/pdf2905

Comentarios de: BULMA: Sistema de cuentas de correo virtuales con PostFix, OpenLDAP y Courier (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad