martes, 1 de marzo de 2011

iRedMail, un servidor de correo electrónico completo en minutos

Vamos a ver como usar iRedMail para instalar un servidor de correo electrónico con Postfix (MTA), Dovecot (IMAP,POP3), Amavisd (comunica los mensajes de correo con el antivirus y el antispam), ClamAV (antivirus), SpamAssassin (antiSpam), RoundCube (Cliente web de correo electrónico) en muy poco tiempo. También usaremos OpenLDAP como backend de usuarios y dominios virtuales.

Lo instalaremos en Debian 6 amd64 y en una máquina virtual con Virtual Box 4.0.4. La instalación será con todos los grupos de paquetes deseleccionados excepto OpenSSH Server para acceder de forma remota.

iRedMail es un script de instalación con licencia libre. Podéis ver sus características aquí (en inglés)

Especificaciones

  • El servidor de correo electrónico tendrá la ip 192.168.1.50/24.
  • El nombre de host será "mail". El dominio será "laordenarcana.no-ip.org". El nombre del host completo cualificado sería, por tanto, "mail.laordenarcana.no-ip.org".
  • El nombre de la raíz de OpenLDAP será dc=laordenarcana,dc=no-ip,dc=org (LDAP suffix).

Instalación

Lo primero es cambiar la IP a estática y a la que queremos.

# vim /etc/network/interfaces

...
# The primary network interface
allow-hotplug eth0
#iface eth0 inet dhcp
iface eth0 inet static
   address 192.168.1.50
   netmask 255.255.255.0
   broadcast 192.168.1.255
   gateway 192.168.1.1
...

Reiniciamos la interfaz y ya accedemos por ssh desde nuestro ordenador.

# ifdown eth0 && ifup eth0 && ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:91:d9:59  
          inet addr:192.168.1.50  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe91:d959/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5201 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2982 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7559265 (7.2 MiB)  TX bytes:210648 (205.7 KiB)

Instalo algunos paquetes necesarios. Vim es opción mía y bzip2 es necesario para descomprimir.

# aptitude install vim bzip2

Compruebo el nombre de host

# hostname
mail
# hostname -f
mail.laordenarcana.no-ip.org
# cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       mail.laordenarcana.no-ip.org    mail
...

Descargamos y descomprimimos iRedMail

# cd /opt
# wget http://iredmail.googlecode.com/files/iRedMail-0.7.0-beta2.tar.bz2
# tar -xjvf iRedMail-0.7.0-beta2.tar.bz2
# chmod u+x iRedMail-0.7.0-beta2/iRedMail.sh 
# cd iRedMail-0.7.0-beta2

Ejecutamos el script y comenzamos la configuración. Usa paquetes oficiales de la distribución Debian 6, por tanto, no hay problema de incompatibilidad. También descarga paquetes de gestión web para postfix, ldap, etc.

# ./iRedMail.sh
< INFO > ==================== Fetching Source Tarballs ====================
< INFO > * 1/6: http://iredmail.org/apt/misc/iRedAPD-1.3.3.tar.bz2
< INFO > * 2/6: http://iredmail.org/apt/misc/iRedAdmin-0.1.3.tar.bz2
< INFO > * 3/6: http://iredmail.org/apt/misc/phpldapadmin-1.2.0.5.tgz
< INFO > * 4/6: http://iredmail.org/apt/misc/postfixadmin-2.3.2.tar.gz
< INFO > * 5/6: http://iredmail.org/apt/misc/roundcubemail-0.5.tar.gz
< INFO > * 6/6: http://iredmail.org/apt/misc/phpMyAdmin-3.3.9.1-all-languages.tar.bz2
...

Ahora nos saldrán las pantallas para configurar el servidor. La primera es la de bienvenida. Pulsamos yes.


Nos pedirá la ruta de almacenaje de los buzones. La dejamos por defecto en /var/vmail. Podríamos usar un SAN iSCSI para montar esta ruta. Pulsamos Next.


En la siguiente pantalla elegimos el backend OpenLDAP para gestionar los usuarios y los dominios virtuales. Pulsamos Next.


Ponemos nuestro raíz del directorio LDAP. En mi caso laordenarcana.no-ip.org y pulsamos Next.


Ponemos la contraseña de Manager de ldap. El administrador.


Ponemos la contraseña del usuario root de MySQL. La base de datos se usará para las aplicaciones PHP de gestión web, no para el backend del servidor de correo Postfix.


Ponemos el nombre del primer dominio virtual de correo electrónico. En mi caso laordenarcana.no-ip.org.


Ponemos la contraseña del usuario administrador del dominio virtual de postfix que es postmaster@laordenarcana.no-ip.org. Especifica que se puede hacer login con los usuarios iRedAdmin, PostfixAdmin y Awstat usando esta cuenta y contraseña.


Ponemos la contraseña el primer usuario www@laordenarcana.no-ip.org. Especifica que podemos hacer login con el usuario webmail y esta contraseña.


Seleccionamos los componentes adicionales a instalar


Seleccionamos el lenguaje por defecto de la aplicación web de correo electrónico. En este caso el Español. Pulsamos next


Con esto acabará la configuración y nos saldrá lo siguiente en consola.

Configuration completed.

*************************************************************************
***************************** WARNING ***********************************
*************************************************************************
*                                                                       *
* Please do remember to *MOVE* configuration file after installation    *
* completed successfully.                                               *
*                                                                       *
*   * /opt/iRedMail-0.7.0-beta2/config
*                                                                       *
*************************************************************************
< INFO > Continue? [Y|n]

Pulsamos Y y comenzará a descargar e instalar los siguientes paquetes y sus dependencias mediante los repositorios oficiales de Debian 6. Son unos cuantos. En total 113 MB.

< INFO > Installing package(s): apache2 apache2-mpm-prefork apache2.2-common libapache2-mod-php5 libapache2-mod-auth-mysql php5-cli php5-imap php5-gd php5-mcrypt php5-mysql php5-ldap php5-mhash postfix postfix-pcre awstats mysql-server mysql-client postfix-ldap slapd ldap-utils libnet-ldap-perl postfix-policyd dovecot-imapd dovecot-pop3d amavisd-new libcrypt-openssl-rsa-perl libmail-dkim-perl clamav-freshclam clamav-daemon spamassassin altermime libmail-spf-perl python-ldap libapache2-mod-wsgi python-mysqldb python-ldap python-jinja2 python-netifaces python-webpy python-ldap bzip2 acl patch cron tofrodos phpldapadmin phpmyadmin

Se crearán los usuarios necesarios, las entradas en openldap necesarias, etc. Cuando se complete la instalación nos saldrá lo siguiente. Respondemos a todas las preguntas por defecto (letra mayúscula) y, al final, nos salen las direcciones web donde podemos administrar el servidor.

*************************************************************************
* iRedMail-0.7.0-beta2 installation and configuration complete.
*************************************************************************

< Question > Would you like to use firewall rules shipped within iRedMail now?
< Question > File: /etc/default/iptables, with SSHD port: 22. [Y|n]Y
< INFO > Copy firewall sample rules: /etc/default/iptables.
insserv: warning: script 'K01iredapd' missing LSB tags and overrides
insserv: warning: script 'iredapd' missing LSB tags and overrides
< Question > Restart firewall now (with SSHD port 22)? [y|N]N
< Question > Would you like to start postfix now? [y|N]N
********************************************************************
* URLs of your web applications:
*
* - Webmail: http://mail.laordenarcana.no-ip.org/mail/ or httpS://mail.laordenarcana.no-ip.org/mail/
*   + Account: www@laordenarcana.no-ip.org, Password: 
*
* - iRedAdmin: httpS://mail.laordenarcana.no-ip.org/iredadmin/
*   + Account: postmaster@laordenarcana.no-ip.org, Password:
*
* - phpMyAdmin: httpS://mail.laordenarcana.no-ip.org/phpmyadmin/
*   + Accounts:
*       - Name: vmailadmin, Password: 
*       - Name: root, Password:
*
* - phpLDAPadmin: httpS://mail.laordenarcana.no-ip.org/phpldapadmin/
*   + Account:
*       - Name (manage mail accounts only): cn=vmailadmin,dc=laordenarcana,dc=no-ip,dc=org, Password: 
*       - Name (site-wide manager): cn=Manager,dc=laordenarcana,dc=no-ip,dc=org, Password: 
*
* - Awstats:
*   + URLs:
*       - httpS://mail.laordenarcana.no-ip.org/awstats/awstats.pl?config=web
*       - httpS://mail.laordenarcana.no-ip.org/awstats/awstats.pl?config=smtp
*   + Account: postmaster@laordenarcana.no-ip.org, Password: 
*

********************************************************************
* Congratulations, mail server setup complete. Please refer to tip
* file for more information:
*
*   - /opt/iRedMail-0.7.0-beta2/iRedMail.tips
*
* And it's sent to your mail account www@laordenarcana.no-ip.org.
*
* Please reboot your system to enable mail related services or start them
* manually without reboot:
*
*   # for i in rsyslog  apache2 postfix mysql slapd postfix-policyd dovecot amavis clamav-daemon clamav-freshclam cron iredapd iptables; do /etc/init.d/${i} restart; done
*
********************************************************************

Reiniciamos todos los servicios necesarios como nos indica el script.

# for i in \
>rsyslog apache2 postfix mysql slapd postfix-policyd \
>dovecot amavis clamav-daemon clamav-freshclam cron iredapd iptables; \
>do /etc/init.d/${i} restart; \
>done

Stopping enhanced syslogd: rsyslogd.
Starting enhanced syslogd: rsyslogd.
Restarting web server: apache2 ... waiting ..
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd.
Restarting Postfix greylisting policy daemon: Restarting IMAP/POP3 mail server: dovecotIf you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.
.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
Stopping ClamAV daemon: clamd.
Starting ClamAV daemon: clamd LibClamAV Warning: ***********************************************************
LibClamAV Warning: ***  This version of the ClamAV engine is outdated.     ***
LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/support/faq ***
LibClamAV Warning: ***********************************************************
.
Stopping ClamAV virus database updater: freshclam.
Starting ClamAV virus database updater: freshclam.
Restarting periodic command scheduler: cron.
iredapd is already stopped.
Starting iredapd ...
Applying iptables firewall rules:.

Y ya está listo. Ahora vamos a ver si podemos acceder. Iremos al webmail con https y nos pedirá que aceptemos el certificado. Este certificado se ha generado en la instalación de iRedAdmin con una duración de 10 años y para nustro servidor (mail.laordenarcana.no-ip.org) así que aceptamos y veremos lo siguiente


Ponemos el usuario y contraseña y listo, ahí tenemos nuestro webmail con un par de correos de los administradores de iRedMail. Hay que leerlos bien y guardarlos, sobretodo el que tiene toda la configuración y direcciones del servidor.


Por defecto, roundcube (el webmail) solo viene con dos plugins (password y managesieve) para poder cambiar contraseñas, crear filtros y respuesta automática de vacaciones. Si vamos a la consola y miramos los alias

# postconf | grep aliases
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
newaliases_path = /usr/bin/newaliases

# cat /etc/postfix/aliases
# See man 5 aliases for format
postmaster:    root
clamav: root
root: www@laordenarcana.no-ip.org
policyd: www@laordenarcana.no-ip.org
amavis: root

Vemos que los usuarios postmaster, clamav y amavis están mapeados a root y que root y policyd están mapeados a www@laordenarcana.no-ip.org. Esto hará que todos los mensajes de de root y de policyd vayan a la cuenta www@laordenarcana.no-ip.org.

Vamos a crear un nuevo usuario de mail. Para ello vamos al administrador iRedAdmin y ponemos el usuario y contraseña correspondiente al administrador.



iRedAdmin tiene funcionalidad limitada para algunos aspectos, podemos comprar el PRO o podemos gestionar estas funcionalidades mediante phpMyAdmin (mysql) phpLDAPadmin. Vamos a Usuarios y pulsamos en Crear nuevo usuario de correo.


Rellenamos los campos y pulsamos en Crear.


Vemos que se ha creado. Si queremos asociar la cuenta de correo a una cuenta del sistema podemos poner el UserID de la cuenta. También podemos rellenar el número de teléfono.


Si vamos a RoundCube (webmail) y entramos con usuario contraseña del nuevo usuario veremos que podemos entrar al correo electrónico.


Podemos ir a phpLDAPadmin y ver lo que hay creado pero mediante ldap.


Pulsamos en Conectar y escribimos el nombre completo del usuario administrador de ldap, cn=Manager,dc=laordenarcana,dc=no-ip,dc=org y la contraseña.


Vamos a los usuarios del dominio y vemos los usuarios actuales.


Por último podemos ver Awstats o phpMyAdmin entre otras cosas, para las estadísticas y gestion de MySQL.



Related Posts with Thumbnails