Recentemente, adicionei spamassassin ao meu servidor de e-mail, pois as listas negras não eram suficientemente eficazes.
Para esclarecer: eu uso Postfix como SMTP + Dovecot como LDA, postgrey para lista cinza e postfwd para limitação de taxa.
Para adicionar Spamassassin, eu uso o guia: https://www.digitalocean.com/community/tutorials/how-to-configure-a-mail-server-using-postfix-dovecot-mysql-and-spamassassin Mesmo que funcione, Não vejo por que isso acontece. O que me incomoda é o master.cf:
smtp inet n - y - - smtpd
-o content_filter=spamassassin
dovecot unix - n n - - pipe
flags=DRhu user=virtual:virtual argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -m ${extension}
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Não entendo por que de repente o sendmail está envolvido. Existe uma maneira de configurar isso mais corretamente?
Aqui também está o meu postconf -n
caso seja necessário.
append_at_myorigin = yes
biff = no
broken_sasl_auth_clients = yes
default_destination_concurrency_limit = 1
delay_warning_time = 8h
disable_vrfy_command = yes
dovecot_destination_concurrency_limit = 1
dovecot_destination_recipient_limit = 1
enable_original_recipient = yes
local_destination_concurrency_limit = 1
mailbox_size_limit = 100000000
maximal_queue_lifetime = 6d
message_size_limit = 52428800
myhostname = REDACTED
myorigin = /etc/mailname
smtp_helo_name = REDACTED
smtp_use_tls = yes
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated
smtpd_delay_reject = no
smtpd_hard_error_limit = 10
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname
smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10040 permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_rbl_client zen.spamhaus.org=127.0.0.[2..11], reject_rbl_client bl.spamcop.net, reject_rbl_client cbl.abuseat.org, check_policy_service inet:127.0.0.1:10023
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unauth_destination, reject_unauth_pipelining
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = REDACTED
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain
smtpd_soft_error_limit = 5
smtpd_tls_cert_file = REDACTED
smtpd_tls_dh1024_param_file = /etc/ssl/dhparams.pem
smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA
smtpd_tls_key_file = REDACTED
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
strict_rfc821_envelopes = yes
tls_random_source = dev:/dev/urandom
virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_transport = dovecot
sendmail não está envolvido. Isso é apenas um executável postfix e é chamado assim por razões históricas e compatibilidade.
veja a página de manual:
EDIT: (adicionado após seu comentário)
você poderia alterá-lo com o dovecot LDA, mas só funcionaria para entrega local, é claro. Você pode verificar spam também e-mails de saída, e eles não funcionariam com dovecot. Isenção de responsabilidade total: não verifiquei todas as suas configurações :)
Quando uma marca registrada é muito bem-sucedida, ela pode se tornar um nome genérico para aquilo pelo qual é mais conhecida. Algo muito semelhante aconteceu com o
/usr/sbin/sendmail
comando em sistemas Linux e Unix.Quando o Postfix é instalado,
/usr/sbin/sendmail
na verdade não é o Sendmail - é apenas um componente do Postfix que fornece a mesma interface (isto é, as mesmas opções e convenções de canalização) do Sendmail.O Postfix foi projetado para substituir o Sendmail. Acontece que muitos programas irão interagir com o subsistema de correio chamando
/usr/sbin/sendmail
com opções conhecidas e canalizando coisas para ele. Portanto, o Postfix deve suportar isso também.Quando o Spamassassin estiver sendo usado, a mensagem deve ser passada
spamc
para detecção de spam. Como ele vai adicionar pelo menos alguns cabeçalhos à mensagem, indicando que a verificação de spam foi realizada e seus resultados (e, se a mensagem for spam, uma notificação no início do conteúdo da mensagem),spamc
deve então passar a mensagem de volta ao Postfix para entrega final.Observe que "pipe" é considerado pelo Postfix como um método de transporte , ou seja, se a mensagem for enviada para
spamc
, o Postfix considera seu trabalho feito naquele ponto. Portanto, a mensagem verificada como spam precisa ser injetada novamente no processamento do Postfix - e é isso que osendmail
comando faz.A palavra-
content_filter
chave faz menos do que você pode esperar - apenas diz ao Postfix para passar a mensagem que veiosmtpd
para um método de transporte específico. Ele não espera automaticamente nenhum conteúdo de volta: se o método de transporte content_filter engolir a mensagem sem saída, o trabalho do Postfix está concluído. Se sobrar alguma coisa depois que a mensagem passar pelo filtro, é trabalho do filtro fazer com que ela volte a ser processada.Existe pelo menos uma outra maneira de conseguir a mesma coisa , mas acabará usando o
sendmail
comando para reinjetar o e-mail após a verificação de spam também.Se você tiver certeza de que este Postfix só processará mensagens recebidas, provavelmente poderá configurar
spamc
para passar a mensagem diretamente para o Dovecot.