Asterisk : Brute force攻撃への対策

Brute force攻撃に対する防御としてfail2banを利用しておりますが
最近以下のようなログメッセージが出力されています。
Sending fake auth rejection for user 201<sip:201@192.168.1.2>;tag=29c48bd4
INVITEによるBrute force攻撃について本家WiKiに記載がありますが上記攻撃には対処できません。
http://www.voip-info.jp/index.php/SIP-Fail2ban
そこで本家を参考にしてasteriskにパッチを当てます。
このパッチはAsterisk-1.4.44を対象にしていますが、1.6系、1.8系にも同様の修正で対応できます。
15691c15691
< ast_log(LOG_NOTICE, "Sending fake auth rejection for user %s (%s:%d)\n", get_header(req, "From"), ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
---
> ast_log(LOG_NOTICE, "Sending fake auth rejection for user %s\n", get_header(req, "From"));
パッチを当てて、Asteriskをコンパイルし直し、再起動します。
すると、先ほどの攻撃時のログは以下のように出力されるようになります。
Sending fake auth rejection for user 401<sip:401@192.168.1.2>;tag=e6545f3c (37.8.25.XX:10010)
ログの( )内に攻撃元の実IPアドレスが表示されるようになり、これを元にfail2banで攻撃を検知することができます。
fail2banへ設定を追加
修正したログに合わせたフィルタ設定をfail2banに追加します。
/etc/fail2ban/filter.d/asterisk.conf の failregex の項目に以下を追加します。
NOTICE.* .*: Sending fake auth rejection for user .* \(<HOST>:.*\)
フィルタ追加後、fail2banを再起動し設定完了です。
以上で上記攻撃に対する防御が可能になります。
投稿された内容の著作権はコメントの投稿者に帰属します。