如何在 Linux 中的局域网中阻止客户端请求?

如何在 Linux 中的局域网中阻止客户端请求?

我们有一个基于Linux的局域网,请参见下面的架构图

在此处输入图片描述

我们通过网络交换机连接服务器和客户端机器,当任何请求来自客户端时,我们都能够在服务器(192.168.12.10)中阻止该请求。但是客户端 1 将请求发送给客户端 2,这是我们无法控制的 Tcp/IP 请求,我们无法在服务器中阻止,这是否可能?如果可能,请解决我的问题。服务器端阻止我正在使用 iptables。

例子 :

Client1 尝试使用 22 端口连接 clinet2,现在我想在服务器本身(192.168.12.10)中阻止 clinet1 请求,而不是在客户端中,我想在主服务器中管理所有客户端请求。

编辑: 我想将所有流量路由到我的服务器(192.168.12.10)
客户端 1 -> SSH -> 服务器 -> SSH -> 客户端 2

答案1

如果客户端也运行 Linux,您也应该能够使用 iptables 来阻止它们。

例如,如果您希望在客户端 1 上阻止来自客户端 2 和 3 的所有传入 TCP IP 流量:

iptables -I INPUT -s 192.168.12.2 -j REJECT
iptables -I INPUT -s 192.168.12.3 -j REJECT

在客户端 1 上,如果您希望阻止到客户端 1 和 3 的所有传出 TCP IP 流量:

iptables -I OUTPUT -d 192.168.12.2 -j REJECT
iptables -I OUTPUT -d 192.168.12.3 -j REJECT

答案2

您无法简单地控制问题中提供的设置中的客户端之间的流量。这是因为客户端可以直接相互通信,而无需通过任何路由器或防火墙。您的客户端连接到同一子网(假设/24掩码)。

如果您想通过路由器/防火墙控制流量,则需要更改网络的子网划分。每个客户端都必须位于自己的子网/VLAN 中。因此,当它需要与任何其他客户端通信时,它需要与其网关(您的服务器)通信。

还有其他不干净的选择,例如ARP欺骗

答案3

Linux 中没有直通过滤解决方案。因此,您的服务器需要成为交换机和路由器之间的透明桥梁。否则,您将无法控制客户端的互联网访问。

您可以尝试的解决方案:

  1. Windows 传递过滤解决方案。http://www.imfirewall.us

  2. linux 透明桥接。然后您可以使用 iptables 和 tc 进行阻止和带宽整形。

相关内容