加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 即使允许使用smtp和dns,Sendmail也不能与iptables一起

发布时间:2020-12-13 16:41:53 所属栏目:Linux 来源:网络整理
导读:我在Ubuntu 10.04上安装了sendmail,仅用于使用php mail()函数.除非iptables正在运行,否则这个工作正常(我一直在使用sendmail myemailaddress@domain.com来测试这个). 我认为我已经允许SMTP和DNS(我用来测试iptables规则的脚本如下,在我的版本中是我的主机名
我在Ubuntu 10.04上安装了sendmail,仅用于使用php mail()函数.除非iptables正在运行,否则这个工作正常(我一直在使用sendmail myemailaddress@domain.com来测试这个).

我认为我已经允许SMTP和DNS(我用来测试iptables规则的脚本如下,在我的版本中是我的主机名称服务器的实际IP),但无济于事!

iptables --flush

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Postgres
iptables -A INPUT -p tcp --dport 5432 -j ACCEPT

# Webmin
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT

# Ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

# sendmail
iptables -A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT

# DNS
iptables -A INPUT -p udp --sport 53 -s <nameserver1> -j ACCEPT
iptables -A INPUT -p udp --sport 53 -s <nameserver2> -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -s <nameserver1> -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -s <nameserver2> -j ACCEPT

iptables -A OUTPUT -p udp --dport 53 -d <nameserver1> -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -d <nameserver2> -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -d <nameserver1> -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -d <nameserver2> -j ACCEPT


iptables -A INPUT -j DROP

# Add loopback
iptables -I INPUT 1 -i lo -j ACCEPT

解决方法

目前你有:
iptables -A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT

这使得:

>数据包到您的sendmail,
>来自您的端口的数据包25 out,但仅适用于已建立的连接(因此只有来自外部的连接).

对于传出的电子邮件,您需要使用sendmail才能连接到外部世界.

所以你也需要这样的东西:

iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT

请确保你没有成为一个开放的接力.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读