我在 CentOS 6.5 x64 服务器上设置了 postfix + cyrus-sasl + cyrus-imapd 邮件服务器,设置完成后发现可以发送内部邮件,也可以向 Gmail 等其他邮箱发送邮件,但是收不到 Gmail 的回复,工具箱诊断为“无法连接到 SMTP 主机”(15 秒后超时)。我也无法远程登录 myipaddress 25。这是我所做的,但我不知道哪里出了问题。请帮忙,谢谢。
vim /etc/postfix/main.cf
myhostname = mail.mydomain.com
mydomain = mydomain.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain
mynetworks = 192.168.0.0/24, 127.0.0.0/8
local_recipient_maps =
smtpd_banner = $myhostname ESMTP unknow
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
message_size_limit = 15728640
mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp
vim /etc/sasl2/smtpd.conf
log_level: 3
saslauthd_path:/var/run/saslauthd/mux
vim /etc/sysconfig/iptables
-A INPUT -p TCP -i $EXTIF --dport 25 --sport 1024:65534 -j ACCEPT
-A INPUT -p TCP -i $EXTIF --dport 993 --sport 1024:65534 -j ACCEPT
-A INPUT -p TCP -i $EXTIF --dport 995 --sport 1024:65534 -j ACCEPT
/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/cyrus-imapd start
netstat -tpnl | grep smtpd
netstat -tpnl | grep :25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1698/master
netstat -tpnl | grep cyrus
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 3432/cyrus-master
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 3432/cyrus-master
tcp 0 0 0.0.0.0:4190 0.0.0.0:* LISTEN 3432/cyrus-master
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 3432/cyrus-master
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 3432/cyrus-master
tcp 0 0 :::110 :::* LISTEN 3432/cyrus-master
tcp 0 0 :::143 :::* LISTEN 3432/cyrus-master
tcp 0 0 :::4190 :::* LISTEN 3432/cyrus-master
tcp 0 0 :::993 :::* LISTEN 3432/cyrus-master
tcp 0 0 :::995 :::* LISTEN 3432/cyrus-master
答案1
NickW 立刻回答了你的问题。由于当 iptables 关闭时你可以 telnet 到它,但当它打开时却不行,所以问题出在防火墙上。NickW 的第二条评论也是正确的,即进程应该是“主”而不是 smtp,但默认情况下 postfix 应该监听端口 25。
当我现在进行 telnet 时,我得到了以下信息:
# telnet h-chen.com 25
Trying 144.214.150.161...
telnet: Unable to connect to remote host: No route to host
如果您安装的是默认的 CentOS 安装,那么 iptables 中的“拒绝”语句之一可能如下所示:
REJECT --reject-with icmp-host-prohibited
当服务器使用“icmp-host-prohibited”拒绝时,它会向客户端发送“无路由到主机”语句。从您提供给我们的 iptables 输出(提供 iptables -L 的输出会对我们更有帮助)我认为不需要“-i”或“--sport”选项。