В чем суть.
Обратил внимание на то, что
Asterisk 1.8.5 теперь вместо <HOST> теперь пишет <HOST>:port в логе. Например,
#tail ./messages |grep failed
[2011-08-11 19:31:04] NOTICE[1599] chan_sip.c: Registration from '"420" <sip:420@81.155.210.44>' failed for '191.10.62.108:5060' - No matching peer found
То есть в данном случае регулярное выражение в /etc/fail2ban/asterisk.conf надо поправить с:
NOTICE.* .*: Registration from '.*' failed for '<HOST>' - No matching peer found на:
NOTICE.* .*: Registration from '.*' failed for '<HOST>.*' - No matching peer found
Поскольку я не уверен, что порт в логе теперь дописывается во всех случаях, описанных в регулярных выражениях в файле /etc/fail2ban/asterisk.conf, нужно просимулировать эти ситуации и соответственно поправить регулярники. Некоторые понятно, как сделать, некоторые - нет.
Может, кто подскажет, как сымитировать нужную ситуацию?
failregex = NOTICE.* .*: Registration from '.*' failed for '<HOST>.*' - Wrong password - ясен пень, неправильный пароль
NOTICE.* .*: Registration from '.*' failed for '<HOST>.*' - No matching peer found - нет такого номера, не заведен
NOTICE.* .*: Registration from '.*' failed for '<HOST>.*' - Username/auth name mismatch - непонятно
NOTICE.* .*: Registration from '.*' failed for '<HOST>.*' - Device does not match ACL - хост не указан в permit экстиншна
NOTICE.* .*: Registration from '.*' failed for '<HOST>.*' - Peer is not supposed to register - непонятно
NOTICE.* .*: Registration from '.*' failed for '<HOST>.*' - ACL error (permit/deny) непонятно
NOTICE.* <HOST>.* failed to authenticate as '.*'$ - непонятно
NOTICE.* .*: No registration for peer '.*' \(from <HOST>\) - непонятно
NOTICE.* .*: Host <HOST>.* failed MD5 authentication for '.*' (.*) - непонятно
NOTICE.* .*: Failed to authenticate user .*@<HOST>.* - непонятно
либо заставить астериск не указывать порт в логе каким-нибудь образом
PS Рекомендую всем, кто использует fail2ban проверить, банит ли он после апгрейда.