Está en la página 1de 6

En este "COMO" explicaremos los pasos que hay que seguir para instalar un sistema con Postfix, Dovecot

como servidor IMAP y POP3 para la entrega del correo, y administrarlo todo con PostfixAdmin que trabaja con MySQL

PostfixAdmin Postfix Dovecot

Para empezar instalaremos Apache2, MySQL 5 y PHP5, para as poder instalar luego el paquete de PostfixAdmin y tener la base de datos que usaremos para los usuarios virtuales.
root@mini:~# apt-get install libapache2-mod-php5 php5-imap php5-mysql mysql-server mysql-client

(El mismo ya nos resolver las dependencias necesarias, Ahora ya podemos instalar Postfixadmin, para ello entraremos a la Web de PostfixAdmin y descargaremos la ltima versin
root@mini:~# wget "http://downloads.sourceforge.net/postfixadmin/postfixadmin_2.2.1.1_al l.deb?modtime=1216813942&big_mirror=0" root@mini:~# dpkg -i postfixadmin_2.2.1.1_all.deb

Esto por defecto nos creara un Alias para Apache, as que solo habr que recargar la configuracin y entrar en la Web para empezar la instalacin
root@mini:~# apache2ctl graceful http://nuestrohost.com/postfixadmin/setup.php

Nos avisara que hay algunos datos que cambiar, para ello editaremos el fichero
/etc/postfixadmin/config.inc.php $CONF['configured'] = true; $CONF['postfix_admin_url'] = 'http://nuestrohost.com/postfixadmin'; $CONF['default_language'] = 'es'; $CONF['database_type'] = 'mysqli'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix'; $CONF['database_password'] = 'postfix'; $CONF['database_name'] = 'postfix'; $CONF['database_prefix'] = ''; $CONF['admin_email'] = 'admin@nuestrohost.com'; $CONF['domain_path'] = 'YES'; $CONF['domain_in_mailbox'] = 'NO'; $CONF['quota'] = 'YES'; $CONF['transport'] = 'YES'; $CONF['transport_options'] = array ('dovecot','vacation'); $CONF['transport_default'] = 'dovecot'; $CONF['alias_control'] = 'YES'; $CONF['alias_control_admin'] = 'YES'; $CONF['user_footer_link'] = "http://nuestrohost.com/postfixadmin"; $CONF['footer_text'] = 'Return to nuestrohost.com'; $CONF['footer_link'] = 'http://nuestrohost.com';

$CONF['emailcheck_resolve_domain']='NO';

Como vern hay ms opciones, son libres de modificar cuanto crean para que se adapte mejor a lo que necesiten. Eso si, si no les funciona algo ya no es culpa ma Ahora deberemos crear la base de datos y el usuario que hemos especificado en la configuracin anterior
root@mini:~# mysqladmin create postfix mysql> CREATE USER 'postfix'@ 'localhost' IDENTIFIED BY 'postfix'; mysql> GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER ON `postfix` . * TO 'postfix'@'localhost';

Ahora ya podemos recargar la pagina de instalacin de PostfixAdmin y si lo hemos hecho bien nos debera pedir que aadamos un nuevo usuario administrador, para ello pondremos una cuenta de correo vlida y una contrasea. Ahora debemos borrar el fichero setup.php
root@mini:~# rm /usr/share/postfixadmin/setup.php

Y nos loguearemos en nuestro host.com/postfixadmin con el usuario y contrasea que hemos puesto. Podremos ver que nuestro PostfixAdmin funciona, que podemos aadir dominios y buzones de correo. Ahora debemos instalar postfix con soporte para mysql y quotas de usuario, para ello aadiremos una lnea en el fichero de sources de apt e instalaremos los siguientes paquetes (seguramente nos advierta de que los paquetes de ese repositorio no se han podido autenticar, eso es porque no le hemos copiado la clave, eso ya es cosa vuestra si quieren hacerlo):
root@mini:~# echo "deb http://debian.home-dn.net/etch/ postfix-vda/" >> /etc/apt/sources.list root@mini:~# apt-get update root@mini:~# apt-get install postfix-mysql

Cuando instala postfix debconf nos deja elegir algunas cosas, pueden dejarlo sin configuracin ya que lo tocaremos bastante. en otra ocasin veremos como aadirle mas seguridad (TLS y cosas as)
/etc/postfix/main.cf smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no append_dot_mydomain = no delay_warning_time = 4h virtual_mailbox_base = /home/mail virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf transport_maps = mysql:/etc/postfix/mysql_virtual_transport_maps.cf relay_domains = mysql:/etc/postfix/mysql_virtual_relay_domains_maps.cf

virtual_minimum_uid = 500 virtual_gid_maps = static:500 virtual_uid_maps = static:500 # Soporte para quota virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Disculpa, pero el buzn del destinetario esta lleno. virtual_overquota_bounce = yes broken_sasl_auth_clients = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject myorigin = /etc/mailname mydestination = mail.nuestrohost.com, localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = ipv4 dovecot_destination_recipient_limit = 1 /etc/postfix/master.cf # Dovecot LDA dovecot unix n n pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d $ {recipient}

Ahora crearemos los ficheros para la conexin con la base de datos para recoger la informacin de los dominios y los usuarios:
/etc/postfix/mysql_virtual_alias_maps.cf user = postfix password = postfix hosts = 127.0.0.1 dbname = postfix table = alias select_field = goto where_field = address /etc/postfix/mysql_virtual_domains_maps.cf user = postfix

password = postfix hosts = 127.0.0.1 dbname = postfix table = domain select_field = domain where_field = domain additional_conditions = and backupmx = '0' and active = '1' /etc/postfix/mysql_virtual_mailbox_limit_maps.cf user = postfix password = postfix hosts = 127.0.0.1 dbname = postfix table = mailbox select_field = quota where_field = username additional_conditions = and active = '1' /etc/postfix/mysql_virtual_mailbox_maps.cf user = postfix password = postfix hosts = 127.0.0.1 dbname = postfix table = mailbox select_field = maildir where_field = username /etc/postfix/mysql_virtual_relay_domains_maps.cf user = postfix password = postfix hosts = 127.0.0.1 dbname = postfix table = domain select_field = domain where_field = domain additional_conditions = and backupmx = '1' /etc/postfix/mysql_virtual_transport_maps.cf user = postfix password = postfix hosts = 127.0.0.1 dbname = postfix table = domain select_field = transport where_field = domain additional_conditions = and active = '1'

Para mas seguridad cambiaremos los permisos de estos ficheros para que solo los pueda leer postfix:
root@mini:/etc/postfix# chmod 600 mysql_virtual_* root@mini:/etc/postfix# chown postfix:postfix mysql_virtual_*

Aun nos falta por instalar y configurar Dovecot, pues sin el no funcionara nada de nada, para ello instalaremos los siguientes paquetes, si no les interesa utilizar pop3 no lo instalen, pero el imap es necesario para que funcionen otras aplicaciones.
root@mini:~# apt-get install dovecot-imapd dovecot-pop3d

/etc/dovecot/dovecot.conf mail_location = maildir:/home/mail/%d/%u first_valid_uid = 500 last_valid_uid = 500 maildir_copy_with_hardlinks = yes protocols = imap pop3 protocol imap { mail_executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap mail_plugins = quota imap_quota imap_client_workarounds = outlook-idle delay-newmail } protocol pop3 { mail_plugins = quota pop3_client_workarounds = outlook-no-nuls oe-ns-eoh } protocol lda { postmaster_address = admin@nuestrohost.com mail_plugins = quota log_path = /var/log/dovecot-deliver.log info_log_path = /var/log/dovecot-deliver.log } auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ auth default { mechanisms = plain login passdb sql { args = /etc/dovecot/sql.conf } userdb sql { args = /etc/dovecot/sql.conf } userdb prefetch { } user = nobody socket listen { master { path = /var/run/dovecot/auth-master mode = 0660 user = vmail group = mail } client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = mail } } } dict { } plugin { quota = maildir:storage=10240:messages=1000 trash = /etc/dovecot/trash.conf } /etc/dovecot/sql.conf driver = mysql default_pass_scheme = CRYPT connect = host=localhost dbname=postfix user=postfix password=postfix

user_query = SELECT concat('/home/mail/', maildir) as home, concat('maildir:/home/mail/', maildir) as mail, 500 AS uid, 500 AS gid, concat('maildir:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1' password_query = SELECT username as user, password, concat('/home/mail/', maildir) as userdb_home, concat('maildir:/home/mail/', maildir) as userdb_mail, 500 as userdb_uid, 500 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1' /etc/dovecot/trash.conf 1 Spam 2 Trash root@mini:~# touch /var/log/dovecot-deliver.log root@mini:~# chown dovecot:dovecot /var/log/dovecot-deliver.log

Ahora deberemos crear el usuario y grupo real que gestionara todos los correos, lo haremos sin shell para que no se pueda loguear y le pondremos el uid y guid 500 (que es el que hemos especificado en las configuraciones anteriores).
root@mini:~# addgroup --system --gid 500 vmail root@mini:~# adduser --system --home /home/mail --shell /bin/false --no-create-home --uid 500 --gid 500 --disabled-password --disabledlogin vmail root@mini:~# mkdir /home/mail root@mini:~# chown vmail:vmail /home/mail/

Ahora ya podemos reiniciar los servicios


root@mini:~# /etc/init.d/dovecot restart Restarting mail server: dovecot. root@mini:~# /etc/init.d/postfix restart Stopping Postfix Mail Transport Agent: postfix. Starting Postfix Mail Transport Agent: postfix. root@mini:~# Con esto ya tenemos nuestro servicio de correo virtual y multidominio funcionando

También podría gustarte