Instalando Postfix

Vamos a instalar los paquetes necesarios.

    apt-get install postfix postfix-tls libsasl2 sasl2-bin libsasl2-modules

Respondemos a las preguntas que nos hace el configurador de Debian, tomando todos los valores por defecto. Luego los cambiaremos.

Ahora procedemos a la configuración inicial de Postfix. Ejecutamos los siguiientes comandos. Atención a los comentarios de algunas líneas, y a las palabras en mayúsculas. Han de ser sustituídas por las convenientes en cada caso. Estos comandos, sólo modifican la configuración en el fichero /etc/postfix/main.cf. También podríamos realizarlo a mano. Hay que tener en cuenta que esta configuración no es para un sistema con buzones. Hay cosas que faltan para ello.

    postconf -e 'smtpd_sasl_local_domain ='
    postconf -e 'smtpd_sasl_auth_enable = yes'
    postconf -e 'smtpd_sasl_security_options = noanonymous'
    postconf -e 'broken_sasl_auth_clients = yes'

    postconf -e 'mail_owner = postfix'
    postconf -e "myhostname = MIMAQUINA.MIDOMINIO"
    postconf -e "mydomain = MIDOMINIO"

    postconf -e 'myorigin = $mydomain'
    postconf -e 'mydestination = $myhostname, localhost, localhost.$mydomain'
    postconf -e "mynetworks = 127.0.0.0/8,REDESINTERNASDELAESCUELA"
    postconf -e 'local_destination_concurrency_limit = 2'
    postconf -e 'default_destination_concurrency_limit = 10'
    postconf -e 'debug_peer_level = 2'
    postconf -e 'mail_spool_directory = /var/mail'
    postconf -e "inet_interfaces = IP_MIMAQUINA, 127.0.0.1"
    postconf -e 'disable_dns_lookups = no'
    postconf -e 'relayhost = '
    postconf -e 'mailbox_command = '
    postconf -e 'mailbox_size_limit = MAXIMOTAMAÑODELBUZON'
    postconf -e 'smtpd_helo_required = no'
    postconf -e 'smtpd_helo_restrictions = '
    postconf -e 'strict_rfc821_envelopes = no'
    postconf -e 'smtpd_recipient_restrictions =  permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_invalid_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender'
    postconf -e 'smtpd_sender_restrictions =  reject_unknown_sender_domain,hash:/etc/postfix/access'
    postconf -e "message_size_limit = MAXIMOTAMAÑODELMENSAJE"
    postconf -e 'smtpd_timeout = 7m'
    postconf -e 'smtpd_recipient_limit = 100'
    postconf -e "smtpd_banner = MIMAQUINA.MIDOMINIO ESMTP"

Creamos el fichero de configuración de sasl.

    echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
    echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

Creamos la base de datos de servidores/dominios cuyo correo será vetado. Puede ser útil, pero hay que mantenerlo a mano.

    touch /etc/postfix/access
    postmap /etc/postfix/access

Ahora quitamos Exim.

    update-rc.d -f exim4 remove

Reiniciamos Postfix y la autentificación SASL.

    /etc/init.d/postfix restart
    /etc/init.d/saslauthd start

Ahora le tenemos que indicar a Postfix, que es una pasarelo de correo, y que los mensajes para mi dominio o mis dominios los debe entregar en otro servidor, que es donde están los buzones de correo. Tenemos que decirle cual es el fichero de mapas de transporte. El fichero de mapas de trasnporte será /etc/postfix/transport.

    postconf -e "relay_domains = MISDOMINIOS"
    postconf -e 'transport_maps = hash:/etc/postfix/transport

El contenido del fichero de transporte será algo así (suponiendo dos dominios):

MIDOMINIO1    relay:[SERVIDOR1]
MIDOMINIO2    relay:[SERVIDOR2]

Creamos el hash.

    postmap /etc/postfix/transport

Modificamos /etc/aliases para que nos envíe el correo enviado a las cuentas postmaster, abuse y clamav a un buzón del servidor de buzones. Para ello, las siguientes líneas deben aparecer de una forma similar a:

postmaster: postmaster@MIDOMINIO
abuse: postmaster@MIDOMINIO
clamav: postmaster@MIDOMINIO

Tras ello, creamos la base de datos.

    postalias /etc/aliases

Reiniciamos Postfix.

    /etc/init.d/postfix restart

Será necesario crear una cuenta postmaster, en el servidor de correo para recibir las notificaciones.