Iptables 的 INPUT 上何时使用 sport 或 dport?

Iptables 的 INPUT 上何时使用 sport 或 dport?

我想阻止本地网络上的用户使用端口 22。我的 linux 服务器控制流量iptables。哪些规则最合适?

iptables -A INPUT -i $LAN -p tcp --sport 22 -j DROP

或者

iptables -A INPUT -i $LAN -p tcp --dport 22 -j DROP

重要提示:这些规则只是一个示例。你们可以在答案中选择任何示例端口

dport我只是想知道链上的和sport都用在什么场景INPUT。答案可以用其他例子

PS:问题的目的是阻止本地 LAN 网络的用户访问此端口(或任何其他端口),因此该规则必须仅针对本地 LAN 网络(而不是 WAN)的接口。$LAN是 LAN 接口的变量(例如enp2s1eth1等)。

答案1

dport我只是想知道链上的和sport都用在什么场景INPUT

通常,您希望限制对您的计算机上或从您的计算机上的服务的访问。由于 TCP 握手中的初始数据包是从客户端到服务器的,因此更常见的是dportINPUT链中使用来控制对本地服务的访问,或者dport在链中使用OUTPUT来控制对删除服务(从本地主机)的访问。 )。

iptables -A INPUT -p tcp --dport 22 -j DROP // prevents access to a local SSH server
iptables -A OUTPUT -p tcp --dport 22 -j DROP // prevents access to a remote SSH server

大多数基于 TCP 的协议并不关心客户端绑定的端口。作为管理员,您可能只允许从特定客户端端口访问本地服务(请记住,默认情况下,在 Linux 上,1024 以下的端口号需要额外的权限才能绑定),但这并不常见。

答案2

iptables -A INPUT -p tcp --sport 22 -j DROP

将阻止来自 SSH 服务器的 INPUT 数据帧。那么您将无法访问外部 SSH 服务器。

iptables -A INPUT -p tcp --dport 22 -j DROP

将阻止来自 SSH 客户端的 INPUT 数据帧。那么没有人能够访问您的 SSH 服务器。我想这就是你想要的。

注意:保护主机的常用方法是阻止所有内容,并允许您需要的内容。也许ufw应该帮助您做出保护。它是一个更高级别的防火墙,可满足大多数需求。 (ufw处理连接的方向。iptable数据帧的方向处于较低级别)。

相关内容