fail2ban 过滤器,用于捕获针对 log4j CVE-2021-44228 的攻击
将此文件复制到您的 fail2ban filter.d 目录,该目录通常类似于
/etc/fail2ban/filter.d
或类似的位置。
在您的 jail.local 或 jail.conf 中添加一个 apache-jndi 部分:
[apache-jndi]
enabled = true
filter = apache-jndi
port = http,https
logpath = /var/log/apache2/access.log
bantime = 86400
maxretry = 1
如果您需要监控多个站点,通配符可能会有所帮助:
[apache-jndi]
enabled = true
filter = apache-jndi
port = http,https
logpath = /var/www/*/logs/access.log
bantime = 86400
maxretry = 1
由 ispConfig 管理的 LAMP 服务器的日志路径:
logpath = /var/www/clients/client*/web*/log/access.log
这些示例假设:
截至目前,此正则表达式可捕获包含 "jndi:ldap" 以及使用 "lower" 的一种混淆版本的 jndi:ldap 请求。
一旦找到更多变体,我会添加,但也欢迎提交建议。
既可以说是,也可以说不是。从技术角度来看,它完成了预期的功能。它能检测已知格式的 log4shell 尝试,并至少能阻止那些未在扫描上投入太多精力的人访问您的机器。不幸的是,掩码/混淆这些请求的可能性是无限的,因此跟上所有可能的正则表达式变体可能就像一场猫鼠游戏。
如果这个工具为您节省了时间,何不 请我喝杯咖啡?;)