Postfix es un servidor de correo (MTA) open source muy potente. Fue creado a principios de siglo por Wietse Venema, intentando dar solución a algunos de los problemas que tenía la herramienta más usada para este fin, Sendmail. Postfix es más rápido, seguro y fácil de administrar que Sendmail. La última versión estable a día de hoy es la 2.9.4, es muy usado en sistemas GNU/Linux y Mac OS X y su desarrollo continúa siendo muy activo.
Cuando tenemos una conexión a internet con IP dinámica (otros servidores de correo no van a aceptar los mails provenientes de direcciones dinámicas) o simplemente tenemos algún servidor que necesitamos nos envíe mails notificándonos de algún evento, entonces podemos instalar un servidor de correo como relayhost. Con este forma de funcionamiento, lo que hacemos es usar un servidor de correo externo para enviar los mails, es decir, los mails no se envían directamente a sus destinos, se envían a otro servidor de correo que será el que finalmente los haga llegar.
A continuación vamos a ver cómo se instala y configura Postfix como relayhost, bajo Debian GNU/Linux Squeeze, es necesario tener una cuenta de correo activa en un servidor externo.
Para empezar vamos a proceder a instalar los paquetes necesarios, para ello escribimos en una consola los siguiente:
root@servidor~# aptitude install postfix libsasl2-modules
Estos paquetes instalan el servidor de correo y los módulos SASL necesarios para la autenticación.
Durante la instalación de Postfix nos aparece un menú con diferentes opciones, elegimos Sin Configuración, ya que vamos a editar los ficheros de texto manualmente.
Editamos el fichero /etc/postfix/main.cf y lo dejamos tal que así:
myorigin = /etc/mailname
relayhost = smtp.1and1.es
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd
smtp_sasl_security_options = noanonymous
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a «$EXTENSION»
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = ipv4
Donde los parametros relevantes son relayhost y los concernientes a sasl, ya que nos indican el servidor al que se reenviarán los mails, y que necesita autenticación y el fichero donde se ubicará la autenticación.
Ahora necesitamos crear el fichero /etc/postfix/sasl/passwd, con los datos de acceso de la una cuenta de correo operativa:
smtp.1and1.es servidor@cherinsite.es:contraseña
Donde los parámetros son el servidor, la cuenta de correo y la contraseña.
A continuación ejecutamos en la consola:
root@servidor~# postmap /etc/postfix/sasl/passwd root@servidor~# chmod 600 /etc/postfix/sasl/passwd root@servidor~# /etc/init.d/postfix restart
Con estos comandos lo que hacemos es:
- Crear el hash del password en el fichero /etc/postfix/sasl/passwd.db
- Modificar los permisos del fichero de password para que sólo el propietario pueda visualizar su contenido
- Reiniciar el servidor de correo para que recoja la nueva configuración.
Ahora podemos enviar un mensaje de prueba para comprobar que todo va bien:
root@servidor~# echo "Mensaje de Prueba como Relayhost" |mail -s "Asunto del mensaje" una_direccion@cherinsite.es
Si no disponemos del comando mail, podemos instalarlo de la siguiente forma:
root@servidor~# aptitude install bsd-mailx
Si todo va bien nos llegará el mail a la dirección enviada y podremos ver en los logs algo como esto:
root@servidor~# tail -f /var/log/mail.log Sep 23 14:16:07 servidor postfix/pickup[1261]: 802FE1C0A062: uid=0 from= Sep 23 14:16:07 servidor postfix/cleanup[1356]: 802FE1C0A062: message-id=<20120923121607.802FE1C0A062@servidor.localdomain> Sep 23 14:16:07 servidor postfix/qmgr[1262]: 802FE1C0A062: from=, size=361, nrcpt=1 (queue active) Sep 23 14:16:18 servidor postfix/smtp[1358]: 802FE1C0A062: to=, relay=smtp.1and1.es[212.227.15.158]:25, delay=11, delays=0.14/0.02/11/0.43, dsn=2.0.0, status=sent (250 Message 0MNw31-1T8rsr3XuV-007JpY accepted by mrbap0.kundenserver.de) Sep 23 14:16:18 servidor postfix/qmgr[1262]: 802FE1C0A062: removed
Aquí van algunos comando básicos para postfix:
- postfix reload -> Carga la configuración sin detener el servicio
- postconf -> Muestra configuración de postfix
- mailq -> Para visualizar la cola de mensajes
- postfix flush ->Fuerza el envío de mensajes que están en espera