Instalación Iredmail

Hostname

Lo primero es configurar el nombre del host, para esto editamos estos archivos

/etc/hosts

127.0.0.1   empresa.net localhost localhost.localdomain

/etc/sysconfig/network

HOSTNAME=empresa.net

Y por ultimo utilizamos el comando hostname

hostname empresa.net

Paquetes necesarios

Instalamos los paquetes que nos hagan falta

yum install createrepo dialog

Descargando el iRedMail

No usaremos la version 5.0 porque esta en estado beta y no es recomendable para entornos de produccion.

wget http://iredmail.googlecode.com/files/iRedMail-0.4.0.tar.bz2
tar xjf iRedMail-0.4.0.tar.bz2
cd iRedMail-0.4.0.tar.bz2/pkgs/
sh get_all.sh

Una vez hecho esto descargara los paquetes necesarios y creara un reposito local yum. Ahora toca instalarlos.

bash iRedMail.sh

Configuracion de iRedMail

Seguimos los pasos y nos pedirán datos para completar la instalación. Seleccionaremos si queremos MySQL para la autenticación de usuario u OpenLDAP, las contraseñas para los distintos servicios.

Desmarque las opciones para soportar SPF y DKIM.

En la parte de seleccion de protocolos seleccione IMAP e IMAPS, no instale ningún servidor POP3. Y como extras instale RoundCube, SquidreMail, phpldapadmin para la gestión del ldap.

Una vez acabada la instalación hay que borrar el fichero donde se guardo la configuración /root/iRedMail-x.y.z/config

Local recipient maps

Tenemos que edicar el /etc/posfix/main.cf y añadir el local_recipient_maps. Este parametro de configuracion hace que ningun usuario que no este en el servidor LDAP pueda enviar correos. Evitando asi ser reenviadores de spam.

vim /etc/postfix/main.cf
local_recipient_maps = $alias_maps $virtual_alias_maps $virtual_mailbox_maps

Creacion de usuarios

Podemos crear lo usuarios desde phpldapadmin o con un script llamado create_mail_user_OpenLDAP.sh. Por defecto las contraseñas seran igual al nombre de usuario.

cd /root/iRedMail-0.4.0/tools
sh create_mail_user_OpenLDAP.sh <dominio> <usuario1> <usuario2>

Configuracion del script

Pero antes de usarlo debemos modificarlo para que sea capaz de crear usuarios en nuestro dominio. Para esto lo editamos y dejamos las opciones como muestro a continuacion. Claro que esto cambia con cada instalacion, tendremos que tener en cuenta las opciones elegidas anteriormente en la configuracion de iRedMail.

# ----------------------------------------------
# ------------ Global Setting ------------------
# ----------------------------------------------
 
# Mailbox format: mbox, Maildir.
HOME_MAILBOX='Maildir'
 
# Maildir format.
# YES:  domain.ltd/username/Maildir/
# No:   domain.ltd/username/
MAILDIR_IN_MAILBOX='NO'
MAILDIR_STRING='Maildir/'
 
# All mails will be stored under user vmail's home directory.
# Files and directories will be ownned as 'vmail:vmail'.
VMAIL_USER_NAME="vmail"
VMAIL_GROUP_NAME='vmail'
 
# HOME directory for LDAP user.
# mailbox of LDAP user will be:
#    ${VMAIL_USER_HOME_DIR}/${DOMAIN_NAME}/${USERNAME}/
# Such as:
#    /home/vmail/domains/domain1.com/bibby/
#   -------------------|===========|-----|
#   VMAIL_USER_HOME_DIR|DOMAIN_NAME|USERNAME
#
VMAIL_USER_HOME_DIR="/home/vmail"
 
# ------------------------------------------------------------------
# -------------------------- LDAP Setting --------------------------
# ------------------------------------------------------------------
LDAP_SUFFIX="dc=empresa,dc=net"
 
# Setting 'BASE_DN'.
BASE_DN="o=domains,${LDAP_SUFFIX}"
 
# Setting 'DOMAIN_NAME' and DOMAIN_DN':
#     * DOMAIN will be used in mail address: ${USERNAME}@${DOMAIN}
#    * DOMAIN_DN will be used in LDAP dn.
DOMAIN_NAME="$1"
DOMAIN_DN="domainName=${DOMAIN_NAME}"
OU_USER_DN="ou=Users"
OU_GROUP_DN="ou=Groups"
 
# ---------- rootdn of LDAP Server ----------
# Setting rootdn of LDAP.
BINDDN="cn=Manager,${LDAP_SUFFIX}"
 
# Setting rootpw of LDAP.
BINDPW="contraseña ldap"
 
# ---------- Virtual Domains & Users --------------
# Set default quota for LDAP users: 104857600 = 100M
QUOTA='104857600'
 
# Default MTA Transport (Defined in postfix master.cf).
TRANSPORT='dovecot'
 
# Create maildir in file system after user created.
# NOTE: We do *NOT* need this step, because dovecot will create user
# mailbox automatic when user login via IMAP/POP3 successfully.
CREATE_MAILDIR='NO'
 
# ------------------------------------------------------------------
# ------------------------- Welcome Msg ----------------------------
# ------------------------------------------------------------------
# Send a welcome mail after user created.
SEND_WELCOME_MSG='YES'
 
# Set welcome mail info.
WELCOME_MSG_TITLE="Bienvenido!"
WELCOME_MSG_BODY="Bienvenido al servidor de correos de EmMpresa.
WebMails: http://empresa.net/mail y http://empresa.net/squirrel
 
Configuracion de clientes:
- protocolo correo entrante: IMAPS
- protocolo correo saliente: SMTP-AUTH
- nombre servidor: empresa.net
 
Cambio de password:
- Roundcube: configuracion -> contrasenya."
# -------------------------------------------
# ----------- End Global Setting ------------
# -------------------------------------------

WebMails y gestores

Component URL HTTP HTTPS
Roundcube webmail http://your_server/mail/ (or /webmail, /roundcube) YES YES
Squirrel webmail http://your_server/squirrel/ (or /squirrel mail) YES YES
PostfixAdmin https://your_server/postfixadmin/ NO YES
phpMyAdmin https://your_server/phpmyadmin/ (or /mysql) NO YES
phpLDAPAdmin https://your_server/ldap/ (or /phpldapadmin) NO YES
Awstats https://your_server/awstats/awstats.pl NO YES

Comprobacion

Para probar que estén bien instalados y ejecutándose podemos enviarnos un email a nosotros mismos y ver la cabecera:

Return-Path: <nuevo@empresa.net>
Delivered-To: nuevo@empresa.net
Received: from localhost (empresa.net [127.0.0.1])
    by empresa.net (iRedMail) with ESMTP id 5C4CB155987
    for <nuevo@empresa.net>; Fri, 22 May 2009 10:30:54 +0000 (UTC)
X-Quarantine-ID: <xEJMeXkZWa53>
X-Virus-Scanned: amavisd-new at empresa.net
X-Spam-Flag: YES
X-Spam-Score: 995.249
X-Spam-Level: ****************************************************************
X-Spam-Status: Yes, score=995.249 tagged_above=2 required=6.2
    tests=[ALL_TRUSTED=-10, AWL=0.287, GTUBE=1000, TVD_RCVD_IP=1.617,
    TVD_RCVD_IP4=3.344] autolearn=no
Received: from empresa.net ([127.0.0.1])
    by localhost (empresa.net [127.0.0.1]) (amavisd-new, port 10024)
    with ESMTP id xEJMeXkZWa53 for <nuevo@empresa.net>;
    Fri, 22 May 2009 11:30:53 +0100 (WEST)
Received: from 192.168.1.1.168 (empresa.net [127.0.0.1])
    by empresa.net (iRedMail) with ESMTPSA id E581B155846
    for <nuevo@empresa.net>; Fri, 22 May 2009 10:30:53 +0000 (UTC)
MIME-Version: 1.0
Date: Fri, 22 May 2009 12:30:53 +0200
From: Nuevo email <nuevo@empresa.net>
To: nuevo <nuevo@empresa.net>
Subject: [SPAM] (sin asunto)
Organization: Empresa
Message-ID: <49345d953aff76205e149fedc984fb19@127.0.0.1>
X-Sender: nuevo@empresa.net
User-Agent: RoundCube WebMail
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="UTF-8"

Si aparece X-Virus-Scanned y X-Spam significa que esta funcionando. Ademas el asunto pone Subject: [SPAM] (sin asunto). Porque el email enviado tenia contenido ilegal para SpamAssasin. Para realizar esta prueba me envie un email con “XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X” Sin comillas y en mayusculas.

Listas Negras

http://es.wikipedia.org/wiki/Lista_negra_%28Internet%29

Añadimos estas lineas para consultar las bases de datos de listas negras.

vim /etc/postfix/main.cf
 
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_policy_service inet:127.0.0.1:10031, reject_rbl_client list.dsbl.org, reject_rbl_client sbl.spamhaus.org, reject_rbl_client cbl.abuseat.org, reject_rbl_client dul.dnsbl.sorbs.net

Y tambien añadimos tiempo de espera entre errores.

smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20