我们有一个基于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 中没有直通过滤解决方案。因此,您的服务器需要成为交换机和路由器之间的透明桥梁。否则,您将无法控制客户端的互联网访问。
您可以尝试的解决方案:
Windows 传递过滤解决方案。http://www.imfirewall.us
linux 透明桥接。然后您可以使用 iptables 和 tc 进行阻止和带宽整形。