我正在使用 opendkim 运行 postfix。我的 opendkim milter 在端口 10029 上运行。
更正:我的 opendkim milter 在 unix 套接字上运行,并且在端口 10029 上设置了 DKIM 内容过滤器。
就在今天,我开始在我的 postfix 日志中看到类似的消息......
2023.11.01 21:29:40 hippo postfix/smtp[29756]: EBBA428F83B: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10029, delay=0.94, delays=0.78/0.01/0.04/0.11, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as B71ED28F83C)
看来有些人已经弄清楚了如何使用我的 opendkim milter 作为开放中继。还是我误解了此日志消息?
我的postfix服务器本身不是开放中继,只能通过身份验证来启动smtp。
如果我猜对了 opendkim 被用作开放中继,这是一个已知问题吗?或者,如果我完全误解了正在发生的事情,有人能帮助我了解那些看似中继的消息到底发生了什么吗?
非常感谢。
更新:是不是有人发现 10029 是一个开放端口,并且有可能滥用 DKIM 的监听端口来中继电子邮件?
如果是这样,我是否只需要执行以下操作以便仅启用从本地主机的端口 10029 访问?...
iptables -I INPUT -p tcp --dport 10029 -j DROP
iptables -I INPUT -s 127.0.0.1 -p tcp --dport 10029 -j ACCEPT
答案1
事实证明,iptables 修复确实解决了我的问题,尽管我最初发布的命令顺序是错误的。应该是这样的……
iptables -I INPUT -s 127.0.0.1 -p tcp --dport 10029 -j ACCEPT
iptables -I INPUT -p tcp --dport 10029 -j DROP
但我需要解决的更基本的问题如下:
很久以前,我就从 转换DKIMproxy
为opendkim
。
我的 milter 设置已经正确使用 unix 套接字进行opendkim
连接,但其中有一些旧的、剩余的代码引用master.cf
我DKIMproxy
忘记删除,如下所示:
smtp.name-of-my-host.net:submission inet n - y - MAXPROC smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_etrn_restrictions=reject
-o receive_override_options=no_address_mappings
-o smtpd_client_connection_count_limit=CONNLIMIT
-o syslog_name=postfix/submission
-o smtpd_recipient_restrictions=
-o smtpd_reject_unlisted_recipient=no
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
######## Code to delete starts here ########
-o content_filter=dksign:[127.0.0.1]:10029
# dkim (listening on 10029, sends to 10030)
dksign unix - - n - 5 smtp
-o smtp_send_xforward_command=yes
-o smtp_discard_ehlo_keywords=8bitmime,starttls
127.0.0.1:10030 inet n - y - 10 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
######## End of code to delete ########
我所需要做的就是删除从该-o content_filter=dksign:[127.0.0.1]:10029
行到列出的代码块末尾的所有内容,问题就解决了。
当然,在那之后,我不再需要这些iptables
命令了。
我直到现在才发现这个问题的原因可能是最近有人发现了很久以前就开放的 10029 端口。