我在一家托管公司有一台 VPS,因此我可以通过 SSH 远程访问它。我试图刷新所有 iptables 规则并从头开始...问题是,当我输入 # iptables INPUT DROP(因为我想阻止所有传入和白名单)时,PuTTY 会退出,我无法连接。
当我输入该命令时,如何才能做到这一点而不被 CentOS 踢出?
或者有其他方法可以做到。
谢谢
答案1
您需要确保在添加该规则时现有连接保持打开状态。
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
然后在此下方添加允许列表,最后在 INPUT 链的末尾添加一行
-A INPUT -j DROP
一个适合你入门的阅读/教程是:
这里
答案2
Iptables 在第一次比赛获胜时才起作用,因此您必须将捕获的所有 DROP 放在列表的末尾。
查看/etc/sysconfig/iptables
文件。在 CentOS 系统上,它通常具有基本配置,允许您通过 ssh 进入框,仅此而已 - 这将是一个很好的起点。
答案3
如果您远程工作,我强烈建议您使用像 firehol 这样的工具。
Firehol 是一个 iptables/netfilter 前端。它包含代码来验证您是否没有将自己锁定。您使用该firehol try
命令,它将启动一组新规则,然后提示您输入提交。如果您在 30 秒内没有提交,它将假定您破坏了某些东西并恢复到旧规则集。
答案4
编写一个“cron”脚本并添加 iptables 规则以允许您访问,并将其设置为在您刷新命令后 5/10 分钟运行。这样,您将在 5 分钟后再次获得访问权限。