这是 CentOS 6 的情况。在我的其中一台服务器上,所有 IPTables 规则都会定期被删除,并且所有连接都会开始被阻止。这种情况每隔几天就会随机发生一次。我有一个包含特定规则的脚本,我必须重新运行它才能将它们设置回我需要的位置。
IPTables.sh 看起来像这样:
#!/bin/bash
iptables -F
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -s xx.xx.xx.xxx -m tcp --dport 22 -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables-save | sudo tee /etc/sysconfig/iptables
service iptables save
service iptables restart
运行上述脚本后,一切都正常。知道什么可能导致规则被重置并让 iptables 开始阻止所有传入连接,而我必须直接登录硬件才能重置它们吗?
编辑:经过一年的苦苦思索,我终于收到了 cron 通知。现在我该如何阻止它重置我的规则?
Upgrading csf from v7.59 to 7.60...
Retrieving new csf package...
...5%
...10%
...65%
...70%
...75%
...100%
Unpacking new csf package...
Selecting installer...
Running csf generic installer
Installing generic csf and lfd
Check we're running as root
Checking Perl modules...mode of `os.pl' changed to 0700 (rwx------)
Using configuration defaults
ok
答案1
csf 的所有配置文件都在 /etc/csf 中,包括:
csf.conf - 主配置文件,它有有用的注释来解释每个选项的作用 csf.allow - 应始终允许通过防火墙的 IP 和 CIDR 地址列表 csf.deny - 不应允许通过防火墙的 IP 和 CIDR 地址列表 csf.ignore - lfd 应忽略且在检测到时不会阻止的 IP 和 CIDR 地址列表 csf.*ignore - 各种忽略文件,列出 lfd 应忽略的文件、用户、IP。查看每个文件以了解其特定用途和税收