Recomendaciones para la instalación del Postfix como pasarela con soporte SASL. Autor: Rogelio Cores Raventós. Administrador de redes. Oficina Nacional de Informatización. Ciudad de la Habana E-mail:
[email protected] En la confección de este manual me sirvió de punto de apoyo y ayuda, mi ex colega y gran amigo administrador de Red de la DME de Minas Miguel Cano. Paquetes a instalar: postfix sasl2-bin libsasl2-modules El paquete de instalación propuesto tiene como objetivo lograr que el postfix, actúe y a la vez sirva como pasarela a otro Server de Correo de la red interna, es decir, que reparta el correo que entra al Server de Correo de la red interna, y este a su vez, se encargue de distribuirlo a los usuarios. El parámetro local_recipient_maps debe dejarse en blanco para que todo funcione adecuadamente. Lo primero es lo primero, ahora vamos a explicar los primeros pasos de la instalación:
1- Instalación y configuración del postfix como pasarela. apt-get install postfix dpkg-reconfigure postfix 1.) Tipo genérico de configuración de correo: Sitio de Internet 2.) System mail name: nombreServer.midominio 3.) Otros destinos para los cuales aceptar correo: $myhostname, localhost.$mydomain, localhost, $mydomain 4.) Forzar actualización sincronías en la cola de correo: No 5.) Redes locales: IPRedInterna, IPreal 6.) Usar procmail para la entrega local: No 7.) Límite de tamaño de buzón de correo: 0 8.) Carácter de extensión de direcciones locales: + 9.) Protocolos de Internet a usar: ipv4
Ahora se edita el archivo /etc/postfix/main.cf con el editor de texto preferido de ustedes, de forma que quede de esta forma. Para un mejor entendimiento realizaremos algunos comentarios sobre la configuración. smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no append_dot_mydomain = no readme_directory = no myhostname = nombreServer.midominio mydomain = midominio # Especifica el dominio que aparecerá en el correo que se pública en el equipo. Puede tener # como parámetro $myhostname o $mydomain.
myorigin = $mydomain # Interfaces de red por donde el postfix va a escuchar.
inet_interfaces = all # Especifica que dominios de esta máquina se entrega a nivel local, en lugar de ser enviado a # otro equipo.
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # Especifica tablas de consultas con todos los nombres o direcciones de los destinatarios # locales.
local_recipient_maps = # La respuesta numérica por código del servidor postfix SMTP cuando una dirección de # destinatario es local por defecto = 550
unknown_local_recipients_reject_code = 550 # Redes de confianza.
mynetworks = IPRedInterna, IPReal relay_domains = $mydomain relay_host = alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases # Tablas de búsqueda opcional con asignaciones de dirección del destinatario para transporte.
transport_maps = hash:/etc/postfix/transport mailbox_size_limit = 0 recipient_delimiter = + inet_protocols = ipv4 Ahora pasamos a la configuración del archivo /etc/postfix/transport touch /etc/postfix/transport nano /etc/postfix/transport Aquí se especificará una lista de los dominios y servidores de correo de estos de la siguiente manera: Dominio
smtp:[ip_del_server_red_interna]
Aquí podemos poner cuantos transportes necesitemos. Luego ejecutamos el comando: postmap /etc/postfix/transport
invoke-rc.d postfix restart Con esta configuración ya el postfix funciona como pasarela, pero nos queda como un Open Relay, o sea, lo pueden usar como server de spam y poner nuestro dominio en lista negra. Ahora le explicaré como arreglar este detalle.
2- Instalación y configuración del SASL apt-get install sasl2-bin libsasl2-modules Cuando los paquetes estén instalados lo primero que debemos hacer, es ir a /etc/default/saslauthd y cambiar los siguientes atributos: # Iniciar con el sistema
START = yes # Mecanismo a utilizar para la autenticación
MECHANISMS=”pam” # Opciones para la ejecución del saslauthd
OPTIONS=”-c –m /var/spool/postfix/var/run/saslauthd” Ahora se crean y dan los permisos adecuados al directorio de trabajo del SASL, en caso de que este no exista. mkdir -p /var/spool/postfix/var/run/saslauthd/ chmod 755 /var/spool/postfix/var/run/saslauthd/ chown root.sasl /var/spool/postfix/var/run/saslauthd/ Luego de esto se creara el archivo /etc/postfix/sasl/smtpd.conf en el q se agregaran las siguientes líneas: # método para la verificación de la clave de acceso
pwcheck_method: saslauth # mecanismos de encriptacion de la clave de acceso del usuario a utilizar para la autenticación ante una # conexión por smtp
mech_list: plain login Con esto ya el soporte SASL esta instalado y configurado, ahora toca la segunda etapa del postfix que es la vinculación del soporte sasl al postfix.
3- Postfix + SASL En el postfix añadimos estos parámetros # habilitar el soporte sasl en el postfix
smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes # no permitir usuarios anónimos en la autenticación mediante sasl
smtpd_sasl_security_options = noanonymous # evitar que ciertos clientes no entiendan las líneas del sasl
broken_sasl_auth_clients = yes #### LISTAS DE CONTROL DE ACCESO #### smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, permit_sasl_authenticated, permit_mynetworks smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unknown_recipient_domain, permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_unlisted_recipient, permit smtpd_data_restrictions = reject_multi_recipient_bounce, reject_unauth_pipelining Ahora se reinicia el servicio de postfix y sasl y listo, todo estará trabajando OK. invoke-rc.d postfix restart invoke-rc.d saslauthd restart