Ferramentas de Usuário

Ferramentas de Site


pt:buster:email:filtering:amavisd_new

5.3.1 amavisd-new

Integração de um sistema de filtragem de email no servidor smtp.

Após configuração, quando o servidor smtp (postfix) receber um email, envia-o para o sistema de filtragem (amavisd-new) que invoca os diversos filtros e altera os cabeçalhos conforme os resultados e devolve o email ao servidor smtp.

Instalação

<sxh bash; highlight: [1]> root@server:~# apt install amavisd-new </sxh>

O pacote amavisd-new sugere a instalação de diversos outros pacote, necessários para expandir ficheiros compactados, de forma a que o seu conteúdo possa também ser examinado:

<sxh bash; highlight: [1]> root@server:~# apt install arc arj bzip2 cabextract lhasa lzop nomarch p7zip-full pax ripole rpm tnef unrar-free unzip zip zoo </sxh>

Configuração

A configuração consiste em indicar ao servidor smtp (postfix) para enviar os emails a filtrar e os receber posteriormente.

Primeiro instruir o postfix para enviar os emails para o amavisd-new, o que é feito no ficheiro /etc/postfix/main.cf:

<sxh; highlight: [3-8]; title: /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 </sxh>

Em seguida configurar no postfix o serviço para receber os emails filtrados do amavisd-new, o que é feito no ficheiro /etc/postfix/master.cf:

<sxh; highlight: [3-34]; title: /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

  1. o smtp_data_done_timeout=1200
  2. o smtp_send_xforward_command=yes
  3. o disable_dns_lookups=yes
  4. 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

  1. o content_filter=
  2. o smtpd_delay_reject=no
  3. o smtpd_client_restrictions=permit_mynetworks,reject
  4. o smtpd_helo_restrictions=
  5. o smtpd_sender_restrictions=
  6. o smtpd_recipient_restrictions=permit_mynetworks,reject
  7. o smtpd_data_restrictions=reject_unauth_pipelining
  8. o smtpd_end_of_data_restrictions=
  9. o smtpd_restriction_classes=
  10. o mynetworks=127.0.0.0/8
  11. o smtpd_error_sleep_time=0
  12. o smtpd_soft_error_limit=1001
  13. o smtpd_hard_error_limit=1000
  14. o smtpd_client_connection_count_limit=0
  15. o smtpd_client_connection_rate_limit=0
  16. o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
  17. o local_header_rewrite_clients=

</sxh>

Reiniciar o serviço SMTP:

<sxh bash; highlight: [1]> root@server:~# systemctl restart postfix </sxh>

Verificação

Verificar que os serviços estão a funcionar:

<sxh bash; highlight: [1]> 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 # […] </sxh>

Comprovar que o amavisd-new aceita ligações:

<sxh bash; highlight: [1,6]> 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. </sxh>

Comprovar também que o postfix pode receber de volta os emails filtrados:

<sxh bash; highlight: [1,6]> 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. </sxh>

O sistema de filtragem está a funcionar. O passo seguinte deverá ser a instalação e configuração dos filtros.

Referências

pt/buster/email/filtering/amavisd_new.txt · Última modificação em: 2020-08-02 20:10 (edição externa)

Excepto menção em contrário, o conteúdo neste wiki está sob a seguinte licença: CC Attribution-Noncommercial-Share Alike 4.0 International
CC Attribution-Noncommercial-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki