Configuración de un servidor de correo entrante: Cyrus

Vamos a configurar Cyrus (No he probado la última versión, pero la 2.2 me parece bastante estable y es la que utilizaré en esta guía), haremos que autentifique los usuarios con sasl, y miraremos la configuración, hay ciertas cosas interesantes que debemos saber y otras que debemos cambiar.

Antes de nada, decir que he escrito esta guía usando Ubuntu Server 12.04, así que voy a utilizar comandos como apt-get y sudo que puede que no uses en tu distribución, de todas formas, la base de todo, los paquetes y los archivos de configuración deberían coincidir.

Vamos a instalar Cyrus:

$ sudo apt-get install cyrus-admin-2.2 cyrus-common-2.2 cyrus-doc-2.2 cyrus-imapd-2.2 cyrus-clients-2.2 cyrus-pop3d-2.2

Tras ello, debemos asegurarnos de que el grupo de /etc/sasldb2 es sasl:

$ stat /etc/sasldb2 
  Fichero: «/etc/sasldb2»
  Tamaño: 12288     	Bloques: 24         Bloque E/S: 4096   fichero regular
Dispositivo: 801h/2049d	Nodo-i: 149541      Enlaces: 1
Acceso: (0660/-rw-rw----)  Uid: (    0/    root)   Gid: (   45/    sasl)
Acceso: 2013-06-20 14:25:19.847911242 +0200
Modificación: 2013-06-20 14:25:14.783913275 +0200
      Cambio: 2013-06-20 14:25:14.783913275 +0200
    Creación: -

Si no lo es:

$ sudo chgrp sasl /etc/sasldb2

Ahora, para hacer posible la identificación debemos asegurarnos de que el usuario cyrus pertenece al grupo sasl

$ groups cyrus
cyrus : mail

En este caso no es así, por lo que hacemos lo siguiente:

$ sudo gpasswd -a cyrus sasl

Editemos entonces los ficheros de configuración (No voy a poner el fichero de configuración completo, sólo las líneas a las que debemos prestar atención, en negrita):

/etc/imapd.conf

unixhierarchysep: yes
....
admins: cloud
....
allowanonymouslogin: no
....
popminpoll: 3
....
autocreatequota: 100
quotawarn: 90
....
sasl_mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
....
loginrealms: totaki.com myotherdomain.com anotherone.com
virtdomains: on
....
sasl_pwcheck_method: saslauthd

Veamos todo esto en detalle.

  • unixhierachysep: Nos permite poner puntos en las direcciones de correo, por ejemplo pepe.perez@midominio.com Cyrus internamente usa el punto para delimitar la jerarquía de las carpetas, y por eso no se puede usar normalmente. Pero si ponemos aquí un yes, hace una conversión de caracteres justo antes de procesar la dirección por lo que ya podemos usar puntos si queremos.
  • admins: Aquí escribimos usuarios (separados por espacios) con privilegios de administración para todos los servicios, debemos añadir al menos uno para empezar a crear buzones. Luego podemos comentar esta línea por seguridad.
  • allowanonymouslogin: Permite identificarse como usuario anónimo en el sistema. Mejor lo desactivamos si no lo está ya.
  • popminpoll: Es el tiempo que debe esperar un usuario que se identifique por POP entre sus peticiones. Si tenemos muchos usuarios puede ser una buena idea restringir este tiempo para evitar que un sólo usuario pueda producir peticiones en cortos periodos de tiempo (supuestamente ya tenemos bastantes). Aunque también podemos poner aquí un 0, y permitir que en menos de un minuto podamos descargar de nuevo el correo.
  • autocreatequota: Cuota de usuario en Megabytes. Limita el espacio que puede ser utilizado por un usuario. Si ponemos un cero, será ilimitado.
  • quotawarn: El usuario será notificado cuando llegue a este porcentaje de uso de espacio o más. Si utilizamos la opción de cuota, esto es una buena idea.
  • sasl_mech_list: Es una lista separada por espacios de los mecanismos de identificación utilizados por sasl para validar el usuario. Podemos elimitar PLAIN (texto plano), para evitar identificaciones inseguras por parte de los usuarios. Si dejamos la línea como viene en el ejemplo, se usarán los métodos ordenados de mayor a menor en cuanto a su seguridad.
  • loginrealms: Lista separada por espacios de los dominios que podemos utilizar para los e-mails de usuarios.
  • virtdomains: Si lo activamos (ponemos on aquí), el nombre de usuario se separará de la @ y el dominio del usuario será la parte de la derecha.
  • sasl_pwcheck_method: Método de autentificación, estaremos usando saslauthd para este tutorial.

Antes de reiniciar, debemos asegurarnos de que /run/cyrus/lock y /run/cyrus/proc existen, y si no:

$ sudo mkdir /var/cyrus/lock
$ sudo mkdir /var/cyrus/proc
$ sudo chown cyrus:mail /var/cyrus/lock /var/cyrus/proc

Reiniciamos Cyrus:

$ sudo service cyrus-imapd restart

Y ahora creamos un buzón de ejemplo (explicaremos en detalle la creación de buzones más adelante)

$ sudo saslpasswd2 -c info@mylittlecloud.com
Password: 1234
Again: 1234

$ cyradm --user cloud localhost
Password: ****
> cm user/info@mylittlecloud.com
> quit

Ahora podremos configurar este buzón en nuestro cliente favorito (Algunos clientes como Thunderbird requieren una dirección de correo saliente, y todavía no la tenemos configurada). Para probar el buzón podemos intentar copiar ahí mensajes de otras cuentas de correo que tengamos configuradas.

Explicaré en detalle cómo hacer tareas comunes como crear/borrar usuarios y buzones, definir cuota de usuario, etc algunas páginas más adelante.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *