SIPサーバに対してはブルートフォースアタックが来ることが多い。
Asteriskでもfail2banを使って不正なアクセスを弾きたいが、ノーマルのAsteriskのログにはブルートフォースアタックなどは何故かサーバのIPが記録されて肝心のリモートホストの情報が残らないのでfail2banで弾くことができない。
Asteriskバージョン | パッチファイル |
---|---|
11.08 | patch-channels-chan_sip.c__asterisk11.08.txt |
11.10 | patch-channels-chan_sip.c__asterisk11.10.txt |
使い方
# portsnap fetch update でportsを更新する。 # portsdb -F で、portsのメタ情報を更新する。 # pkg update でpkgのメタ情報を更新する。 # pkg search asterisk11(新規インストール) または # pkg version -v | grep asterisk11(更新) で最新のasterisk11のバージョンを確認する。
確認したバージョンと対応するこのページのパッチファイルをダウンロードする。
ダウンロードしたパッチファイルをpatch-channels-chan_sip.c__asterisk11.10.txt を patch-channels-chan_sip.cのようにリネームする。
"__asterisk{Ver.No}.txt"が不要な部分
リネームしたパッチファイルを/usr/ports/net/asterisk11/files/に置く。
新規インストールの場合
# cd /usr/ports/net/asterisk11 # make install # echo asterisk_enable=\"YES\" >> /etc/rc.conf
更新の場合
# portupgrade asterisk11
/usr/local/etc/fail2ban/jail.local
1 2 3 4 5 6 7 8 9 10 11 12 13 | [DEFAULT]
ignoreip = 127.0.0.1 192.168.0.0/24 #弾く対象から外すIPアドレス
bantime = 259200 #秒
findtime = 86400 #秒
backend = auto
[asterisk]
enabled = true
filter = asterisk11 #新規作成のフィルタ
action = pf #Linuxの場合はpfではなくiptablesかと・・
sendmail-whois[name=Asterisk, dest=foo@example.com, sender=bar@example.com]
logpath = /var/log/asterisk/security #Securityログを分けた場合(最下部参照)
maxretry = 1
|
/usr/local/etc/fail2ban/filter.d/asterisk11.conf (新規作成のフィルタファイル)
1 2 3 4 5 6 7 8 | [Definition]
failregex = SECURITY.* SecurityEvent="FailedACL".*RemoteAddress=".+?/.+?/ |
Securityログを分離する場合
/usr/local/etc/asterisk/logger.confsecurity => security #行頭の"#"を外す