You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04环境下OpenDKIM无法签名外发邮件问题排查求助

Ubuntu 20.04环境下OpenDKIM无法签名外发邮件问题排查求助

我跟着教程在Ubuntu 20.04上配置OpenDKIM+Postfix,目的是给外发邮件添加DKIM签名,但折腾了3天还是没搞定——所有步骤都按教程来,邮件能正常发送,但就是没有DKIM签名。一开始尝试用.sock套接字文件,没用;换成TCP端口8891还是不行,求大佬帮忙排查!

系统状态

先确认OpenDKIM是正常运行的,执行systemctl status opendkim输出如下:

opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter
Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-02-08 15:57:47 CET; 13min ago
Docs: man:opendkim(8)
      man:opendkim.conf(5)
      man:opendkim-genkey(8)
      man:opendkim-genzone(8)
      man:opendkim-testadsp(8)
      man:opendkim-testkey
      http://www.opendkim.org/docs.html
Process: 41753 ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf (code=exited, status=0/SUCCESS)
Main PID: 41761 (opendkim)
Tasks: 7 (limit: 19123)
Memory: 5.2M
CGroup: /system.slice/opendkim.service
└─41761 /usr/sbin/opendkim -x /etc/opendkim.conf

Feb 08 15:57:47 vmi995035.contaboserver.net systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
Feb 08 15:57:47 vmi995035.contaboserver.net systemd[1]: Started OpenDKIM DomainKeys Identified Mail (DKIM) Milter.
Feb 08 15:57:47 vmi995035.contaboserver.net opendkim[41761]: OpenDKIM Filter v2.11.0 starting (args: -x /etc/opendkim.conf)
Feb 08 15:58:05 vmi995035.contaboserver.net opendkim[41761]: E6F8BA010E6: s=verifier201208 d=port25.com a=rsa-sha256 SSL

关键配置文件

/etc/opendkim.conf

Syslog                  yes
UMask                   007
Canonicalization        relaxed/simple
Mode                    sv
SubDomains              no
Socket                  inet:8891@localhost
PidFile               /run/opendkim/opendkim.pid
OversignHeaders         From
UserID                opendkim
KeyTable refile:/etc/opendkim/key.table
SigningTable refile:/etc/opendkim/signing.table
ExternalIgnoreList /etc/opendkim/trusted.hosts
InternalHosts /etc/opendkim/trusted.hosts

/etc/opendkim/key.table

default._domainkey.fluffyksa.com fluffyksa.com:default:/etc/opendkim/keys/fluffyksa.com/default.private

/etc/opendkim/signing.table

我试过*@fluffyksa.com和@fluffyksa.com两种写法,都没用:

*@fluffyksa.com    default._domainkey.fluffyksa.com

/etc/default/opendkim

RUNDIR=/run/opendkim
SOCKET="inet:8891@localhost"
USER=opendkim
GROUP=opendkim
PIDFILE=$RUNDIR/$NAME.pid
EXTRAAFTER=

Postfix Milter配置(/etc/postfix/main.cf)

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

完整Postfix main.cf

myhostname = vmi995035.contaboserver.net
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2

#Enable TLS Encryption when Postfix receives incoming emails
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.fluffyksa.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.fluffyksa.com/privkey.pem
smtpd_tls_security_level=may
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

#Enforce TLSv1.3 or TLSv1.2
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

#alias_maps = hash:/etc/aliases
#alias_database = hash:/etc/aliases

myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
message_size_limit = 52428800

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes

smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

smtp_tls_note_starttls_offer = yes
smtpd_tls_received_header = yes
mailbox_transport = lmtp:unix:private/dovecot-lmtp
smtputf8_enable = no

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_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_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 2000
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000

policyd-spf_time_limit = 3600

smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
check_policy_service unix:private/policyd-spf

注意:main.cf里有重复的smtpd_recipient_restrictions配置,日志里会报警告

/etc/opendkim/trusted.hosts

127.0.0.1
localhost
vmi995035.contaboserver.net
mail.fluffyksa.com
*.fluffyksa.com
fluffyksa.com

测试结果

  1. DKIM密钥测试:执行opendkim-testkey -d fluffyksa.com -s default -vvv输出:
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'default._domainkey.fluffyksa.com'
opendkim-testkey: key not secure
opendkim-testkey: key OK
  1. 发送测试邮件到check-auth@verifier.port25.com,返回结果:
==========================================================
Summary of Results

SPF check: pass
"iprev" check: pass
DKIM check: none

  1. 查看mail.log里的DKIM相关记录:
Feb  8 15:58:05 vmi995035 opendkim[41761]: E6F8BA010E6: s=verifier201208 d=port25.com a=rsa-sha256 SSL

更新1:发送测试邮件后的mail.log

用Thunderbird从amir.haroun@fluffyksa.com发送到amireix50@gmail.com,mail.log输出:

Feb  8 17:33:23 vmi995035 postfix/smtpd[46943]: connect from unknown[41.69.213.148]
Feb  8 17:33:24 vmi995035 postfix/smtpd[46943]: Anonymous TLS connection established from unknown[41.69.213.148]: TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
Feb  8 17:33:24 vmi995035 dovecot: auth: Debug: auth client connected (pid=0)
Feb  8 17:33:24 vmi995035 dovecot: auth: Debug: client in: AUTH#0111#011PLAIN#011service=smtp#011nologin#011lip=173.249.3.187#011rip=41.69.213.148#011secured#011resp=AGFtaXIuaGFyb3VuQGZsdWZmeWtzYS5jb20AV2ViaXRhbGxAbWUyMDEy (previous base64 data may contain sensitive data)
Feb  8 17:33:24 vmi995035 dovecot: auth: Debug: sql(amir.haroun@fluffyksa.com,41.69.213.148): Performing passdb lookup
Feb  8 17:33:24 vmi995035 dovecot: auth-worker(5823): Debug: conn unix:auth-worker (pid=5818,uid=115): auth-worker<8646>: Handling PASSV request
Feb  8 17:33:24 vmi995035 dovecot: auth-worker(5823): Debug: sql(amir.haroun@fluffyksa.com,41.69.213.148): Performing passdb lookup
Feb  8 17:33:24 vmi995035 dovecot: auth-worker(5823): Debug: sql(amir.haroun@fluffyksa.com,41.69.213.148): query: SELECT username AS user,password FROM mailbox WHERE username = 'amir.haroun@fluffyksa.com' AND active='1'
Feb  8 17:33:24 vmi995035 dovecot: auth-worker(5823): Debug: sql(amir.haroun@fluffyksa.com,41.69.213.148): Finished passdb lookup
Feb  8 17:33:24 vmi995035 dovecot: auth-worker(5823): Debug: conn unix:auth-worker (pid=5818,uid=115): auth-worker<8646>: Finished
Feb  8 17:33:24 vmi995035 dovecot: auth: Debug: sql(amir.haroun@fluffyksa.com,41.69.213.148): Finished passdb lookup
Feb  8 17:33:24 vmi995035 dovecot: auth: Debug: auth(amir.haroun@fluffyksa.com,41.69.213.148): Auth request finished
Feb  8 17:33:24 vmi995035 dovecot: auth: Debug: client passdb out: OK#0111#011user=amir.haroun@fluffyksa.com#011
Feb  8 17:33:24 vmi995035 postfix/trivial-rewrite[46946]: warning: /etc/postfix/main.cf, line 97: overriding earlier entry: smtpd_recipient_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
Feb  8 17:33:24 vmi995035 postfix/cleanup[46947]: warning: /etc/postfix/main.cf, line 97: overriding earlier entry: smtpd_recipient_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
Feb  8 17:33:24 vmi995035 postfix/smtpd[46943]: D28B7A010E6: client=unknown[41.69.213.148], sasl_method=PLAIN, sasl_username=amir.haroun@fluffyksa.com
Feb  8 17:33:25 vmi995035 postfix/cleanup[46947]: D28B7A010E6: message-id=<7f12ab81-9f1a-46ec-8137-e3703b04daed@fluffyksa.com>
Feb  8 17:33:25 vmi995035 postfix/qmgr[45631]: D28B7A010E6: from=<amir.haroun@fluffyksa.com>, size=756, nrcpt=1 (queue active)
Feb  8 17:33:25 vmi995035 postfix/smtp[46948]: warning: /etc/postfix/main.cf, line 97: overriding earlier entry: smtpd_recipient_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
Feb  8 17:33:25 vmi995035 postfix/smtp[46948]: Untrusted TLS connection established to gmail-smtp-in.l.google.com[64.233.166.27]:25: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256)
Feb  8 17:33:25 vmi995035 dovecot: auth: Debug: auth client connected (pid=46949)
Feb  8 17:33:25 vmi995035 dovecot: auth: Debug: client passdb out: FAIL#0112#011user=newsletter@contaboserver.net
Feb  8 17:33:25 vmi995035 postfix/smtpd[46937]: warning: unknown[45.129.14.179]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
Feb  8 17:3
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 07:13:05