Configuración general del servidor de Correo Postfix (Nuestro Favorito).
Aqui esta lo general. El hardening (aseguramiento) como el anti-spam y el anti-virus estan en Anti-todo.
Sistema operativo basico Skina
Realmente poner a funcionar postfix, es casi no tocarlo. Los cambios que se hacen son para adaptarlo a ciertas necesidades particulares, pero este funciona casi recien se instala.
1. Para colocar postfix a funcionar, quiza le sea necesario cambiar ciertos valores
- Por si el nombre no es del todo válido, se pone a mano (opcional)
myhostname = sinternet.skina.com.co
mydomain = skina.com.co
myorigin = $mydomain # Esta es para la enmascar
- para que sirva por todas las interfaces de red incluyendo localhost (suele venir solo para localhost)
inet_interfaces = all
- para que reciba por todos nombres (incluido el dominio)
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost.localdomain
- por defecto hace relay a la subred entonces se define
mynetworks = 168.100.189.0/28, 127.0.0.0/8
- pa que sea discreto y no se anuncie ni que es
smtpd_banner = $myhostname ESMTP
2. Reinicie el servicio
#> service postfix restart
3. Corra pruebas de mails
4. No lo deje asi .. hagale hardening de todos modos que estan en Anti-todo.
Primero habilite el soporte de sasl en la configuracion de postfix /etc/postfix/main.c
#### SASL
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = smtpd
Despues de esto incluya una restriccion
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
Ahora corra el testeo a mano
$ telnet server.example.com 25. . .220 server.example.com ESMTP PostfixEHLO client.example.com250-server.example.com250-PIPELINING250-SIZE 10240000250-ETRN250-AUTH DIGEST-MD5 PLAIN CRAM-MD5250 8BITMIMEAUTH PLAIN AHBhZ2luYXMAcGFzc3dkcm9vdA==235 Authentication successful
Y como saca el encriptado para probar
perl -MMIME::Base64 -e 'print encode_base64(“\\0paginas\\0passwdroot”);'
Eso esta en http://www.postfix.org/SASL_README.html —
con
mail.ispserver.com username:password
y corrale postmap .. y luego en el archivo main.cf pongale
# Para poder usar skinatech como relay
relayhost = mail.ipserver.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
Mas adelante esta la de google
Por defecto postfix maneja una plantilla de mensajes para cuatro posibles situaciones:
- Falla en la entrega del mensaje
- Retrasos en la entrega del mensaje
- Entrega correcta del mensaje
- Estado de la entrega del mensaje
Si es necesario modificar los mensajes que postfix presenta por defecto:
Copie el archivo plantilla
cp /etc/postfix/bounce.cf.default /etc/postfix/bounce.cf
Modifiquelo segun sus necesidades, si va a utilizar caracteres acentuados asegurese de utilizar la codificacion correcta (Charset: UTF-8) y pruebe que postfix lo puede desplegar correctamente con el siguiente comando:
postconf -b /etc/postfix/bounce.cf
Si muestra el archivo tal cual lo configuro, agreguelo al main.cf:
bounce_template_file=/etc/postfix/bounce.cf
Reinicie servicios…
Para agregar un mensaje de disclaimer es necesario instalar el paquete altermime en su version mas reciente.
En el directorio /etc/postfix cree los siguientes archivos con el contenido especificado:
====================================
/etc/postfix/footer.sh
======
`#!/bin/sh
`# Se define workdir y ejecutable de envío de mensaje
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail.postfix
`# Ruta de el archivo que contiene el nombre de los dominios a los cuales se les debe agregar disclaimer
DISCLAIMER_DOMAIN=/etc/postfix/disclaimer_domain
`# Se definen códigos estándar de salida en caso de error.
`# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
`# Limpieza de temporales en caso de presentarse algún error en el envío anterior
trap “rm -f in.$$” 0 1 2 3 15
`# Verificación de existencia del directorio
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit
$EX_TEMPFAIL; }
`# Guardando mail en el archivo temporal in.$$
cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }
`# Extrayendo dominio de origen
from_domain=`grep -m 1 “From:” in.$$ | cut -d “<” -f 2 | cut -d “>” -f 1 | cut -d “@” -f 2`
`# SI el dominio de origen coincide con el de la lista, agrega disclaimer ubicado en
`#/etc/postfix/footer.txt
if [ `grep -wi ^${from_domain}$ ${DISCLAIMER_DOMAIN}` ]; then
/usr/bin/altermime –input=in.$$ \\
–disclaimer=/etc/postfix/footer.txt \\
–disclaimer-html=/etc/postfix/footer.txt \\
–xheader=“X-Copyrighted-Material: Please visit http://www.company.com/privacy.htm” || \\
{ echo Message content rejected; exit $EX_UNAVAILABLE; }
fi
`# Reinyecta correo con o sin modificaciones
`# Se agrega opcion -oi para evitar problemas con correos que contengan formato no estandar.
$SENDMAIL -oi “$@” <in.$$`
**==========================================
**
====================================
/etc/postfix/footer.txt
======
`###### Algun texto de disclaimer, puede agregarse formateo html para visualizacion mas agradable en clientes de correo.#####
==========================================
====================================
/etc/postfix/disclaimer-domains
======
`### Dominios de origen a los cuales se les agrega el disclaimer (separados por salto de linea) ###
skinatech.com
==========================================
Modifique el archivo /etc/postfix/master.cf
`#=========================================================================
`# service type private unpriv chroot wakeup maxproc command + args
`# (yes) (yes) (yes) (never) (100)
`#=========================================================================
`# by skina, no se agrega disclaimer a los correos de la maquina
127.0.0.1:25 inet n - n - - smtpd
`# by skina, se agrega disclaimer a loq ue se reciba por la interfaz con esa IP
172.24.0.5:25 inet n - n - - smtpd
`# by skina, se agrega filtro de contenido llamado dfilt
-o content_filter=dfilt:
Agregue al final del archivo
`# by skina, se define la instancia dfilt y sus caracteristicas
dfilt unix - n n - - pipe
flags=Rq user=filter argv=/etc/postfix/footer.sh -f ${sender} – ${recipient}
`# Descripción:
`# dfilt es un servicio tipo unix que corre mediante un pipe con el usuario filter y ejecuta el script
`# /etc/postfix/footer.sh y envía como parámetros: el que envía y hacia quien va el mensaje.
Reinicie postfix …
Mas importante de todo .. en el sistema de seguridad de la cuenta en gmail tiene que prender “allow less secure apps”
https://myaccount.google.com/security#connectedapps
relayhost = smtp.gmail.com:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
https://www.howtoforge.com/tutorial/configure-postfix-to-use-gmail-as-a-mail-relay/
https://docs.aws.amazon.com/ses/latest/dg/postfix.html
https://mmogilvi.users.sourceforge.net/software/oauthbearer.html
Para eliminar toda la cola de correos digite el siguiente comando
postsuper -d ALL
A veces postfix no anda en la migrada. Es usualmente porque no coge el nombre de la maquina. Entonces es necesario desinstalar, borrar todo y volverlo a instalar. Sobretodo borre el /var/spool/postfix
OJO.. saque backup de /etc/postfix porque esto le sirve.
“For high volume sites a key tuning parameter is the number of “smtp” delivery agents allocated to the “smtp” and “relay” transports. High volume sites tend to send to many different destinations, many of which may be down or slow, so a good fraction of the available delivery agents will be blocked waiting for slow sites. Also mail destined across the globe will incur large SMTP command-response latencies, so high message throughput can only be achieved with more concurrent delivery agents.”
En Publicar: Aumentamos la capacidad de todas las colas en master.cf
smtp, relay y 127.0.0.1:10025 a 200 (de un default de 100) y smtp-amavis a 10 (de un default de 2).
fallback_transport = lmtp
- Pagina web de postfix tiene la configuración básica de Postfix y La descripcion de los parametros completos del main.cf
- Otra buena que incluye algo de antispam en flakshack. –
- Esta es mejor que la nuestra http://www.servitux.org/view.php/page/postfix –
- Con configuraciones especiales http://linux.cudeso.be/linuxdoc/postfix.php –
- La referencia total http://www.postfix.org/postconf.5.html –
- Afinamiento desde mailman http://wiki.list.org/display/DOC/MTA+Performance+Tuning+Tips+for+Postfix –
FIN
15-Marzo-2006 J.E.Gomez v1.0 Primera version
04-Mayo-2007 J.F.Saganome v1.1 Segunda version
28-Enero-2010 J. C. Pineros v1.2 Personalizar los mensajes de failure, delay, success, verify.
04-Octubre-2012 J. C. Pineros v1.3 Agregar disclaimer a correos salientes.
Advertencia
Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.