在构build新系统时,我不打开networking,直到我configuration了iptables来阻止除端口22(ssh)以外的所有入站stream量。 稍后,我打开端口并configuration允许的地址范围。
什么是最短的iptables命令我可以键入以禁止所有入站通信,除了连接到(给定)单个IP地址的端口22?
# flush rules iptables -F INPUT iptables -P INPUT DROP # allow loopback traffic iptables -A INPUT -s lo -j ACCEPT # allow established connections iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # allow ssh iptables -A INPUT -s 10.15.10.0/24 -p tcp --dport 22 -j ACCEPT
我在实际的命令不是很好,但我的iptables文件看起来像这样:
#过滤所有以前的规则
*过滤
#环回地址
-Ainput-i lo -j接受
#build立eth +连接的入站规则
-A INPUT -i eth + -m状态 – 状态RELATED,ESTABLISHED -j接受
#允许SSH访问
-A INPUT -i eth + -s XXXX / Y -p tcp –dport 22 -j ACCEPT
#最后显式的规则
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
承诺
iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp -j DROP
非常类似于@pQd(不是我投票),但我讨厌DROP政策 – 我认为他们是不好的做法。