Я использую postfix для отправки почты из моего собственного домена и postfix-policyd-spf-perl для проверки SPF.
Проверка SPF завершается ошибкой только тогда, когда я отправляю электронное письмо из моего собственного домена в свой собственный домен.
В итоге :
После поиска в журнале я обнаружил, что когда я отправляю электронное письмо в свой собственный домен, отправителем ipaddr является клиентский, а не серверный. Если мой почтовый клиент не находится в сети компании, ipaddr не находится в зарезервированном диапазоне IP-адресов.
Думаю, поэтому SPF терпит неудачу.
TLS использует сертификат Let's encrypt. LDAP используется для хранения учетных данных пользователей. Dovecot используется в качестве LDA. OpenDKIM, OpenDMARC и SpamAssassin используются в качестве фильтров.
Все они работают (кроме OpenDMARC из-за SPF).
Какие файлы conf мне нужно изменить, чтобы это работало?
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
Спасибо