Tabla de Contenidos
5.3.1 amavisd-new
Objetivo
Integrar un sistema de filtros en el servidor smtp.
Después de la configuración, en el momento en que el servidor smtp (postfix) reciba un e-mail, va a enviarlo al sistema de filtros (amavisd-new) que invocará diversos filtros y alterará los encabezados de acuerdo con los resultados, para devolverlo luego al servidor smtp.
Instalación
root@server:~# apt install amavisd-new
El paquete amavisd-new sugiere la instalación de otros paquetes, necesarios para analizar archivos comprimidos, con el fin de que su contenido sea examinado:
root@server:~# apt install arc arj bzip2 cabextract lhasa lzop nomarch p7zip-full pax ripole rpm tnef unrar-free unzip zip zoo
Configuración
La configuración consiste en indicarle al servidorsmtp (postfix) para que envíe los e-mail al sistema de filtros y los vuela a recibir luego de su análisis. Para esto, debe modificar el archivo /etc/postfix/main.cf:
Primeiro instruir o postfix para enviar os emails para o amavisd-new, o que é feito no ficheiro /etc/postfix/main.cf:
# [...] # # amavisd-new scanner # See: https://amavis.org/README.postfix.html#filter_global # content_filter = amavis-filter:[127.0.0.1]:10024 receive_override_options = no_address_mappings
Luego, debe configurar el postfix o servicio para que reciba los e-mails filtrados por amavisd-new, lo que se configura en el archivo /etc/postfix/master.cf:
# [...] # # amavisd-new scanner # # AV scan filter (used by content_filter) # See: https://amavis.org/README.postfix.html#basics_transport_smtp-client amavis-filter unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 # For injecting mail back into postfix from the filter # See: https://amavis.org/README.postfix.html#basics_smtpd-daemon 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o smtpd_restriction_classes= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters -o local_header_rewrite_clients=
Reiniciar el servicio SMTP:
root@server:~# systemctl restart postfix
Verificación
Debe asegurar que los servicios funcionen:
root@server:~# netstat -tap Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name # [...] tcp 0 0 localhost:10024 *:* LISTEN 3672/amavisd (maste tcp 0 0 localhost:10025 *:* LISTEN 3759/master # [...]
Comprobar que amavisd-new acepte conexiones:
root@server:~# telnet 127.0.0.1 10024 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready quit 221 2.0.0 [127.0.0.1] amavisd-new closing transmission channel Connection closed by foreign host.
Comprobar también que postfix pueda recibir de vuelta los mensajes filtrados:
root@server:~# telnet 127.0.0.1 10025 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 server.home.lan ESMTP Postfix (Debian/GNU) quit 221 2.0.0 Bye Connection closed by foreign host.
El sistema de filtros está operando. El paso siguiente debe ser la instalación y configuración de los filtros.