CSF封禁IP后自动从csf.deny消失,如何永久阻止攻击者IP?
CSF封禁IP后自动从csf.deny消失,如何永久阻止攻击者IP?
嘿,这种情况我碰到过好多次了,咱们一步步来排查原因,再彻底搞定它:
先搞清楚为啥IP会消失
可能的原因主要有这几个:
- 不小心用了临时封禁:如果手抖用了
csf -td <IP>(临时封禁)而不是csf -d <IP>,那IP到时间就会自动从csf.deny里删掉,不过你说一开始看到IP在文件里,这个可能性偏低,但还是要确认下。 - CSF的IP数量限制触发了自动清理:CSF默认有个
DENY_IP_LIMIT配置,要是csf.deny里的IP数量超过这个值,旧的IP就会被自动移除。比如默认可能是100,要是你封禁的IP多了,之前加的攻击者IP就被顶掉了。 - 第三方脚本或定时任务在搞事情:有些服务器上会装自定义安全脚本,或者有cron任务定期清理csf.deny,不小心把你的封禁IP删了。
- CSF/系统更新覆盖了配置:虽然少见,但有时候CSF更新时如果没处理好,可能会重置csf.deny文件,不过这种情况概率很低。
接下来是永久解决的步骤
1. 确保用对永久封禁命令
先确认你用的是真正的永久封禁,最好加个备注方便区分手动封禁和自动封禁的IP:
csf -d <攻击者IP> "永久封禁:恶意扫描/攻击"
执行完一定要重启CSF和LFD让规则生效:
csf -r service lfd restart
2. 调整CSF配置,关闭自动清理
编辑/etc/csf/csf.conf文件,找到这几个关键配置:
DENY_IP_LIMIT:把这个值调大,比如改成1000(根据你的需求来,只要比你现在封禁的IP数多就行),这样就不会因为IP太多顶掉旧的封禁记录。- 确认
DENY_TEMP_TIMEOUT只针对临时封禁,这个值不会影响你手动加的永久IP。
改完配置后记得重启CSF生效。
3. 给csf.deny加锁,防止被修改
要是担心文件被意外篡改,可以给它加个不可变属性,这样除非你手动解锁,否则谁都改不了这个文件:
chattr +i /etc/csf/csf.deny
以后要加新IP的话,先解锁、添加、再锁回去:
chattr -i /etc/csf/csf.deny csf -d <新IP> chattr +i /etc/csf/csf.deny csf -r
4. 检查定时任务,揪出捣蛋鬼
看看服务器上有没有定时清理csf.deny的脚本:
# 查看当前用户的定时任务 crontab -l # 查看系统级定时任务目录 ls -la /etc/cron.*
要是发现可疑的脚本,直接禁用或者删掉它就行。
5. 定期备份,以防万一
养成备份的好习惯,定期把csf.deny备份一份:
cp /etc/csf/csf.deny /etc/csf/csf.deny.bak
备注:内容来源于stack exchange,提问作者Del tree
相关产品推荐
相关产品推荐

