iptables -F 后无法连接

iptables -F 后无法连接

我想使用 iptables 在我的系统中添加白名单。所以我在网上搜索并找到了这个:

iptables -I INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -I INPUT -s 127.0.0.1/8 -j ACCEPT
iptables -I INPUT -s 192.168.0.0/16 -j ACCEPT
iptables -P INPUT DROP

确实有效。所以我iptable -F删除了所有规则,然后我就无法再连接到该服务器了。

怎么了?

删除所有规则的正确方法是什么?

答案1

INPUT 的链策略设置为 DROP。

如果没有任何规则,一切都会被丢弃。

在摧毁所有链之前,确保所有链都有接受的政策iptables -P INPUT ACCEPT

答案2

除了 Olipro 的正确和有用的答案之外,我还想推荐一些东西

避免被防火墙锁定的风险

使用 crontab 绑定脚本,在出现问题时重新打开防火墙;如您所知,您可以在 sshd_config 中犯错误,但只要您仍处于登录状态,错误不会造成实际损害。但 iptables 则不然:一个错误就足以让您出局。因此:

#!/bin/bash
# openFW.sh

IPT=$(which iptables)
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -F

NOW=$(date +"%H:%m")
echo "FW opened on %h at $NOW" | mail -s "FW reset cron job jh1" \
[email protected]
logger "WARNING : iptables flushed and opened by cron job"

crontab -e放置类似

#*/5 8-19 * * * /root/scripts/openFW.sh

刷新 iptables 规则并每 5 分钟打开一次 FW。在编辑规则之前取消注释;检查规则(确保它们可用,并且尚未被此 cron 作业刷新);一切正常后,注释掉 flush cron

希望这可以帮助。

相关内容