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。