首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >伊普塔莱--体育与体育。输入与输出

伊普塔莱--体育与体育。输入与输出
EN

Stack Overflow用户
提问于 2015-03-09 14:59:57
回答 2查看 21.4K关注 0票数 8

我对iptables的理解有些困难。我知道它是一个过滤器,但有些东西没有点击,因为它的工作方式,我认为它不应该。让我首先说,我正在创建一个白名单,因此所有策略(输入、向前、输出)都默认删除。

我有以下与SMTP相关的规则:

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p tcp --dport 25 -j ACCEPT -A OUTPUT -p tcp --dport 25 -j ACCEPT //needed for receiving? -A OUTPUT -p tcp --sport 25 -j ACCEPT //needed for sending?

*这3行对于端口587和465也是逐字存在的

如果我删除第一个输出行,那么我的服务器将不会接收电子邮件&如果删除最后一行,它将不会发送电子邮件。我不明白的是为什么。不应:

-A INPUT -p tcp --dport 25 -j ACCEPT -A OUTPUT -p tcp --sport 25 -j ACCEPT

足够让一切都过去吗?AFAIK所有SMTP通信应该超过25,587或465。我目前的理解是,SMTP数据包应该始终匹配这两条规则中的一条。所有输入数据包都应该到达25端口,所有输出数据包都是从25端口发送的?我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-09 15:09:38

对于SMTP,您不需要任何--sport规则。源和目的地不依赖于方向--它们在数据包的源端口和目标端口上匹配。每个连接都有一个随机的源端口,因此没有什么可匹配的。

如果我删除第一个输出行,那么我的服务器将不会接收电子邮件&如果删除最后一行,它将不会发送电子邮件。

这是错误的。只有输入行对接收电子邮件很重要。而且,只有输出--dport 25行对发送电子邮件很重要。所以这些规则应该足够了:

代码语言:javascript
运行
复制
-A INPUT -p tcp --dport 25 -j ACCEPT
-A OUTPUT -p tcp --dport 25 -j ACCEPT

问题可能是,您将输出设置为default,但只允许在输入上建立连接。通常,人们会留下默认的产出来接受。如果要继续使用白名单进行输出,则必须添加:

代码语言:javascript
运行
复制
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

此外,请阅读SMTP端口。您列出的一些内容仅用于电子邮件提交和不推荐的加密,而不是用于服务器与服务器之间的通信。这可能会改变您规划规则的方式。

票数 8
EN

Stack Overflow用户

发布于 2015-06-07 06:56:53

以前的答复状态:而且,只有输出-dport 25行重要的发送电子邮件.

这并不总是正确的。例如,在MTA成为客户端的地方,有些系统被配置为最智能的。在这种情况下,MTA将使用SASL身份验证在提交端口(587)上连接到远程服务器以发送邮件。

为了继续,客户端通过远程服务器发送邮件,远程服务器本身通过SASL身份验证连接到端口587上的另一个远程服务器。

在这种情况下,适用下列可修改的规则(适用于最聪明的人)

代码语言:javascript
运行
复制
iptables -I OUTPUT -p -tcp -dport 597 -j ACCEPT
iptables -I INPUT -p -tcp -sport 587 -j ACCEPT
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28945114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档