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" を含む jndi:ldap リクエストと、"lower" を使用した難読化版の一つをキャッチします。
見つけ次第さらに追加しますが、提案があれば遠慮なく送信してください。
はいでもあり、いいえでもあります。技術的な観点からは、意図されたとおりに動作します。既知の形式のlog4shell試行を検出し、あまり手の込んだスキャンをしない攻撃者を少なくともマシンからブロックしておくことができます。残念ながら、これらのリクエストをマスキング/難読化する方法は無限にあるため、考えられるすべての正規表現のバリエーションに対応し続けることは、いたちごっこのように思えるかもしれません。
これで時間が節約できましたら、コーヒーをおごってください いかがですか? ;)