fail2banのlogpathはregex(正規表現)使えるってよ

2 min read

こんにちは、無能です。
*nix系のOSそれぞれ、ログローテート設定が違うときすぐに/var/log/auth.logがアーカイブ化されて全然banしてくれなかったりもするので以下のように正規表現が使えるみたい。

How! to! Use!

:/etc/fail2ban# cat jail.local 
[sshd]
ignoreip = 127.0.0.1/8 ::1
enabled = true
port    = all
logpath = /var/log/auth.log*
bantime = 10w
findtime = 10d
maxretry = 2

で、fail2ban-client status sshdでみると

:/usr/local/etc/fail2ban # fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- File list:        /var/log/auth.log /var/log/auth.log.2.bz2 /var/log/auth.log.1.bz2 /var/log/auth.log.6.bz2 /var/log/auth.log.3.bz2 /var/log/auth.log.4.bz2 /var/log/auth.log.5.bz2 /var/log/auth.log.0.bz2
`- Actions
   |- Currently banned: 158
   |- Total banned:     158

なんか.bzファイルも対象にされているけど・・・見ているのかな・・・?と思ったけど普通に考えたらまあ無理ですよね(´・ω・`)
まだくわしくみていないけど、気を効かせてzgrepみたいに圧縮バイナリでも見てくれているようならうれしいにゃ。

と、思ってls auth.log.*.bz2 | xargs bunzip2で解凍してfail2banを再起動して見ても、banIPは変わらなかったのでおそらく圧縮バイナリのログも見てくれているっぽい。

このようなソフトウェアで不用意に正規表現、特に.*等をすると無駄なリソース食う場合が多いのでちゃんと明示的な正規表現をすることをおすすめします。

とんでもないHeznerVPS機

恐ろしい。

:/etc/fail2ban# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 814
|  |- Total failed:     132602
|  `- File list:        /var/log/auth.log.1 /var/log/auth.log
`- Actions
   |- Currently banned: 2503
   |- Total banned:     2503

2503 IPだと・・・?
おいしいデータソースが取れたような気がしてうれしいDos。

PGP --- Contact --- Machines