我想对本地网络上的用户阻止端口 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 接口的变量(例如enp2s1
,eth1
等)。
通常,您希望在您的机器上或从您的机器上限制对服务的访问。由于 TCP 握手中的初始数据包是从客户端到服务器的,因此更常见的是
dport
在INPUT
链中使用以控制对本地服务的访问,或者dport
在OUTPUT
链中使用以控制对删除服务的访问(从本地主机).大多数基于 TCP 的协议并不关心客户端绑定到的端口。作为管理员,您可能只允许从特定客户端端口访问本地服务(请记住,在 Linux 上默认情况下,1024 以下的端口号需要额外的权限才能绑定),但这并不常见。
将阻止来自 SSH 服务器的 INPUT 数据帧。那么您将无法访问外部 SSH 服务器。
将阻止来自 SSH 客户端的 INPUT 数据帧。那么没有人能够访问您的 SSH 服务器。我想这就是你想要的。
注意:保护主机的常用方法是阻止所有内容,并允许您需要的内容。也许
ufw
应该帮助你做你的保护。它是一个更高级别的防火墙,可以满足大多数需求。(ufw
处理连接的方向。iptable
,数据帧的方向较低)。