HOWTO Postfix amavis-new relay a través de gmail

De Gentoo Linux Wiki

Este articulo es parte de las series de HOWTO.
Kernel & Hardware Red y Servicios Portage Relacionado con el Sistema Servidor X Juegos Misceláneos


En este mini howto veremos como configurar postfix para que filtre los mails a través de amavisd y los envíe a través de nuestra cuenta de gmail para evitar que se nos impida enviar con nuestra cuenta local, ya que muchas veces las ips dinámicas están en las black lists de los servidores de correo.

Partimos de la base de tener postfix corréctamente configurado, instalamos amavisd:

# emerge -av amavisd-new

y ahora 2 antivirus, usaremos el demonio de clamad como primer antivirus y f-prot como secundario:

# emerge -av clamav f-prot

Vayamos ahora a la configuración de postfix añadimos las siguientes líneas en main.cf:

# nano -w /etc/postfix/main.cf

##filtro spam y virus
content_filter=smtp-amavis:[localhost]:10024
## TLS/SSL
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls = yes
smtpd_tls_note_starttls = yes
smtpd_tls_key_file = /etc/postfix/smtpd-key.pem
smtpd_tls_cert_file = /etc/postfix/smtpd.pem
smtpd_tls_loglevel = 5
smtp_sasl_security_options           = noanonymous
smtp_sasl_tls_security_options       = noanonymous
#smtp_sender_dependent_authentication = yes
smtp_tls_cert_file                   = /etc/postfix/smtpd.pem
smtp_tls_key_file                    = /etc/postfix/smtpd-key.pem
smtp_tls_policy_maps                 = hash:/etc/postfix/tls_policy
smtpd_tls_CAfile                     = /etc/ssl/certs/ca-certificates.crt
smtp_tls_CAfile                     = /etc/ssl/certs/ca-certificates.crt
#smtpd_client_restrictions = permit_mynetworks, reject
smtpd_helo_restrictions = reject_unknown_helo_hostname
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
smtpd_data_restrictions = reject_unauth_pipelining
#check_helo_access = hash:/etc/postfix/helo_access
##GMAIL## 
relayhost = smtp.gmail.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd[/quote]

En el primer bloque le indicamos a postfix donde debe reenviar los mails para filtrarlos, en el segundo bloque TLS/SSL securizamos las comunicaciones de postfix cifrándolas, y en el bloque GMAIL indicamos que los mails deben ser enviados usando el smtp de gmail. Bien ahora tenemos que crear los certificados y el archivo de passwords para el relay de gmail. Para crear los certificados ejecutamos:

# cd /etc/postfix/
# openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd-key.pem -days 3650

Para el envio a traves de gmail creamos el archivo sasl_passwd:

# nano -w /etc/postfix/sasl_passwd

El contenido seria algo asi:

smtp.gmail.com nombrecuentagmail:password

y ejecutamos:

# postmap /etc/postfix/sasl_passwd

Ya solo queda el archivo /etc/postfix/tls_policy donde indicaremos que queremos usar tls con gmail:

# nano -w /etc/postfix/tls_policy

Añadimos:

smtp.gmail.com          may

y nuevamente ejecutamos:

# postmap /etc/postfix/tls_policy

Bien ahora vamos con el archivo master.cf de postfix, debemos crear un servidor local que no use el filtro para evitar que los mensajes se queden en un bucle:

# nano -w /etc/postfix/master.cf

Y añadimos:

###Amavisd
smtp-amavis unix -      -       n     -        2  smtp
   -o smtp_data_done_timeout=1200
   -o disable_dns_lookups=yes
127.0.0.1:10025 inet n  -       n     -       -  smtpd
   -o content_filter=
   -o disable_dns_lookups=yes
   -o local_recipient_maps=
   -o relay_recipient_maps=
   -o smtpd_restriction_classes=
   -o smtpd_client_restrictions=
   -o smtpd_helo_restrictions=
   -o smtpd_sender_restrictions=
   -o smtpd_recipient_restrictions=permit_mynetworks,reject
   -o mynetworks=127.0.0.0/8
   -o strict_rfc821_envelopes=yes
   -o smtpd_error_sleep_time=0
   -o smtpd_soft_error_limit=1001
   -o smtpd_hard_error_limit=1000

Echar un vistazo al archivo /etc/amavisd.conf y cambiamos los parámetros del hostname y domainname, luego buscamos la linea de clamav: " \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"]," dentro del apartado "@av_scanners = " y nos aseguramos que el nombre del sock es el mismo que en el archivo de configuración de clamav /etc/clamd.conf, en este apartado yo comentaría todos los escaners menos el que vamos a usar y en el siguiente apartado "@av_scanners_backup =" descomentamos o añadimos lo siguiente:

 ### http://www.f-prot.com/   - backs up F-Prot Daemon
 ['FRISK F-Prot Antivirus', ['f-prot','f-prot.sh'],
   '-dumb -ai -archive -packed -server {}', [0,8], [3,6],
   qr/Infection: (.+)|\s+contains\s+(.+)$/ ],

y comentamos los demas si queremos. En el archivo /etc/clamd.conf descomentamos o añadimos la linea:

"AllowSupplementaryGroups yes" 

y añadimos el usuario clamav al grupo de amavis:

# gpasswd -a clamav amavis

Iniciamos clamav y amavis y reiniciamos postfix.

Herramientas personales