====== Postfix MTA ====== ===== Descripción ===== 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 [[egw/wiki/index.php?page=Correo+Anti+Todo&lang=es-es|Anti-todo]]. ===== Prerequistos ===== Sistema operativo basico Skina  ===== Procedimiento ===== 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 [[egw/wiki/index.php?page=Correo+Anti+Todo&lang=es-es|Anti-todo]].   ===== Configuraciones Adicionales ===== ==== 1. Como montar autenticacion Cyrus SASL ==== 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 --- ==== 2. Relay con contraseña entre dos servidores ==== 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   ==== 3. Personalizar los mensajes de failure, delay, success, verify.  ==== 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...   ==== 4. Configuracion de disclaimer ==== 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 \\ 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 "$@"