it-swarm.cn

iptables:允许某些ip并阻止所有其他连接

如何允许某些ip并阻止iptables中的所有其他连接?

27
David

很久以前,我写了一篇 有关面向桌面用户的基本Iptables规则的博客文章 ,您应该阅读它,以及其有关 状态防火墙设计 的链接文章。但是,内核2.6.39之前的版本(包括ipset),如果要将IP列入白名单的数量超过10(其中10是任意的),则您可能希望将其用于将IP列入白名单。

我们知道我们要接受或删除的第一个处理状态以及接口。

iptables -P FORWARD DROP # we aren't a router
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP # Drop everything we don't accept

如果您只想通过IP进行允许,而没有状态

iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP

但是您可能会在执行此操作时遇到问题,我建议您使用状态来简化您的生活。例如,不允许-i lo-o lo当然会对某些应用程序造成问题。

29
xenoterracide

这是一个(未试用的!)示例,仅阻止传入连接。允许通过回送接口从192.168.3.x,ICMP或SSH端口进行连接。其他所有连接均被拒绝。

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.3.0/24 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT
10

以下规则将仅允许您的IP并通过端口22或ssh阻止所有其他IP。断开连接之前,请使用新的端子进行测试。

iptables -I INPUT -p tcp ! -s yourIPaddress --dport 22 -j DROP
7
Ishtiyaque Noori

这是完整的工作示例。
也可以使应用程序正常工作(关于我对keepass的评论未启动)

https://github.com/skironDotNet/linux-allow-only-single-ip

0
Pawel Cioch