我有一台安装了 Postfix 的 Ubuntu 12.04 服务器。在安装 Postfix 时,我使用了本指南https://help.ubuntu.com/community/Postfix。我没有经历全部,只经历了sudo dpkg-reconfigure postfix
部分。
我已经为我的服务器创建了用户帐户,并且用户主目录包含一个 .forward 文件,其中只有一行要转发到的电子邮件地址。
我已经为名称 www.mydomain.com 和 mydomain.com 定义了 DNS A 记录
但如果我发送电子邮件至[电子邮件保护]它没有被转发。实际上,我看不到任何电子邮件访问过我的服务器的迹象。
我的防火墙定义为允许端口 80、443 和 22 的传入流量。对于传出流量,它允许端口 587 和 22。确切的定义如下。
我是否还应允许传出 http(端口 80)?或者可能是端口 25?
# Allow ssh in
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# Allow incoming HTTP
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# Allow incoming HTTPS
iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
# Allow outgoing SSH
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# Allow outgoing emails
iptables -A OUTPUT -o eth0 -p tcp --dport 587 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 587 -m state --state ESTABLISHED -j ACCEPT
编辑:
我从系统日志中发现几行信息,告诉我有端口 25 的传入流量被阻止了。这些包的发件人 IP 是值得信赖的,所以我也打开了端口 25。现在我可以在系统日志中看到一些 Postfix 日志。看起来它至少在尝试转发电子邮件。我还没有在我的 Gmail 邮箱中收到任何转发电子邮件。
答案1
我的电子邮件未被转发的原因是
- 防火墙阻止了端口 25,因此电子邮件无法进出。
- 我的 Postfix 配置为同时使用 ipv4 和 ipv6。我的机器上没有 ipv6,所以我需要将其更改为仅使用 ipv4。
现在电子邮件可以顺利转发了。