在 Linux iptables 中阻止特定客户端

在 Linux iptables 中阻止特定客户端

因此,我在使用 Linux 的虚拟机中使用 iptables 时遇到了困难。基本上,我想要实现的是单向阻止网络上连接的 1 个客户端的 FTP 访问。我的意思是:客户端 1 可以连接到服务器,但不能接收任何文件...或者只是阻止连接,客户端无论如何都无法访问服务器,无论哪种方式都可以。

我不想使用状态过滤,只想尽可能使用基本的 iptables。通过谷歌搜索,我根本无法使我的规则发挥作用。:( 这是我目前得到的不起作用的结果。

这是我的设置:

Client 1                   Server               
  [X]-----ftp,ping-----------[O]
 .118                       .207          

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -p 192.168.1.118 -p tcp -i eth0 --dport 20 -j ACCEPT
iptables -A INPUT -p 192.168.1.118 -p tcp -i eth0 --dport 21 -j ACCEPT

iptables -A OUTPUT-p 192.168.1.118 -p tcp -o eth0 --dport 5000:50000 -j ACCEPT
iptables -A OUTPUT-p 192.168.1.118 -p tcp -i eth0 --sport 5000:50000 -j ACCEPT

因此,ping 应该可以正常工作,无论是从 192.168.1.118 还是 FTP(连接和接收),但其他客户端会受到影响并被拒绝访问 FTP。我不确定如何解决这些规则。您是否发现 iptables 存在任何明显错误?非常希望得到帮助 :)

答案1

我认为你需要!从你不想允许的 IP 进入

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --sport 22 -j ACCEPT

iptables -A INPUT -p tcp ! -d 192.168.1.118 -i eth0 --dport 20:21 -j ACCEPT

iptables -A OUTPUT -p tcp ! -d 192.168.1.118 -o eth0 --dport 5000:50000 -j ACCEPT
iptables -A OUTPUT -p tcp ! -d 192.168.1.118 -o eth0 --sport 5000:50000 -j ACCEPT

相关内容