Estou usando o postfix para enviar e-mails do meu próprio domínio e postfix-policyd-spf-perl para verificar o SPF.
A verificação de SPF falha apenas quando envio um email do meu próprio domínio para o meu próprio domínio.
Em resumo:
Depois de pesquisar no log, descobri que quando estou enviando um e-mail para meu próprio domínio, o remetente ipaddr é o do cliente e não o do servidor. Se meu cliente de e-mail não estiver na rede da empresa, o ipaddr não está em um intervalo de endereços IP reservado.
Acho que é por isso que o SPF falha.
O TLS usa o certificado para criptografar. O LDAP é usado para armazenar credenciais de usuários. Dovecot é usado como um LDA. OpenDKIM, OpenDMARC e SpamAssassin são usados como milters.
Todos eles trabalham (exceto OpenDMARC por causa do SPF).
Quais arquivos conf precisam ser alterados para que isso funcione?
main.cf
compatibility_level = 2
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost
local_transport = error:Local Transport Disabled
local_recipient_maps =
alias_maps =
inet_protocols = ipv4
smtputf8_enable = no
smtpd_milters = inet:dkim:8891, inet:dmarc:8891
non_smtpd_milters = inet:dkim:8891, inet:dmarc:8891
### DELIVERY
virtual_mailbox_domains = $mydomain
virtual_mailbox_maps = ldap:$config_directory/conf/ldap_users
virtual_transport = lmtp:spam:10025
### SMTP SERVER
## Authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = inet:lda:24
## Restrictions
smtpd_client_restrictions =
permit_sasl_authenticated,
reject_unknown_client_hostname
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks,
reject_invalid_helo_hostname,
check_helo_access hash:$config_directory/conf/helo_access,
permit
smtpd_sender_login_maps = ldap:$config_directory/conf/ldap_users
smtpd_sender_restrictions =
reject_sender_login_mismatch,
reject_non_fqdn_sender,
reject_unknown_sender_domain
smtpd_recipient_restrictions =
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
check_policy_service unix:private/policy, # SPF check
check_policy_service inet:lda:7026, # Quota check
permit
smtpd_reject_unlisted_sender = yes
## Security
smtpd_client_new_tls_session_rate_limit = 10
smtpd_tls_CAfile = /etc/ssl/private/letsencrypt/mydomain/fullchain.pem
smtpd_tls_cert_file = /etc/ssl/private/letsencrypt/mydomain/cert.pem
smtpd_tls_dh1024_param_file = /etc/ssl/private/dh.pem
smtpd_tls_key_file = /etc/ssl/private/letsencrypt/mydomain/privkey.pem
smtpd_tls_security_level = encrypt
smtpd_tls_session_cache_database = btree:$data_directory/smtpd_session_cache
master.cf
smtp inet n - n - - smtpd
-o smtpd_sasl_auth_enable=no
submission inet n - n - - smtpd
pickup unix n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
policy unix - n n - 0 spawn
user=nobody argv=/usr/bin/postfix-policyd-spf-perl
Obrigado