除IP地址外,iptables阻止访问端口8000

时间:2011-09-14 21:38:56

标签: firewall iptables

我从未使用过iptables,在线文档似乎有点不透明。

我想阻止我的服务器上的所有端口8000请求,但来自特定IP地址的请求除外。我如何使用iptables做到这一点?

3 个答案:

答案 0 :(得分:129)

这个问题应该在Server Fault。然而,假设您正在讨论TCP并且您想要允许的IP是1.2.3.4,则以下应该可以解决这个问题:

iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP

答案 1 :(得分:17)

另一种选择是;

sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP

我有类似的问题,3桥接虚拟机只需要使用不同的组合访问彼此,所以我测试了这个命令,它运作良好。

编辑**

  

根据费尔南多的评论和这个link感叹号   (!)将放在-s参数:

之前
sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP

答案 2 :(得分:4)

您始终可以使用iptables删除规则。如果您有很多规则,只需使用以下命令输出它们。

iptables-save > myfile

vi从推荐行编辑它们。只需使用“dd”删除不再需要的行。

iptables-load < myfile and you're good to go.  

请记住,如果您没有配置您的操作系统以保存文件的规则,那么在您的规则将丢失的情况下加载文件。