
SIPCheckは、Asteriskのユーザ認証を監視し、間違ったパスワードを使用して登録や発信を試みるユーザ(またはボット)を自動的に禁止するツールです。
Fail2Banとは異なり、SIPCheckは攻撃者だけでなく、信頼できることが証明されているクライアントも管理します。つまり、信頼できるSIPユーザがいる場合、間違ったパスワードを受け取っても禁止しません。なぜなら、そのIPの背後にいる多くのSIPクライアントも一緒に禁止されてしまう可能性があるからです。
このため、旧バージョンと比較していくつかの機能を備えたこのアプリケーションをゼロから再設計しました。
sipcheck.conf を使用して、禁止する前の試行回数、攻撃者がファイアウォールに留まる時間、監視対象の疑わしいユーザの時間を制御できます。SIPCheckは、Asteriskが動作している同じシステムで実行する必要があります(別のシステムでも実行可能ですが、ファイアウォールは実行されている同じシステムで使用されます)。 SIPCheckはファイアウォールにルールを挿入・削除するためにroot権限が必要です。
SIPCheck 3はPython 3と requirements.txt で定義されたライブラリを使用します。
/etc/asterisk/manager.conf には、以下のようなマネージャユーザが必要です(userとpasswordの変数を変更してください):
Asterisk Manager Interface の新しいユーザを作成してください。
[CHANGETHISUSER]
secret = CHANGETHISPASSWORD
deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1/255.255.255.255
read = security
write = system
このユーザを作成/変更したら、マネージャの設定をリロードします:
asterisk -rx 'manager reload'
# GitHubリポジトリをダウンロード
git clone https://github.com/sinologicnet/sipcheck.git /opt/sipcheck
cd /opt/sipcheck
# リポジトリを更新
apt-get update
# Python3用のPIPをインストール
apt-get install python3-pip
# 必要なライブラリをインストール
pip3 install -r requirements.txt
# 設定ファイルのサンプルを正式な設定ファイルにコピー
cp sipcheck.conf.sample sipcheck.conf
# このファイルを編集してSIPCheckを設定
nano sipcheck.conf
# sipcheck.pyを実行可能に
chmod 777 sipcheck.py
# スクリプトをsystemdに登録
cp /opt/sipcheck/sipcheck.service /etc/systemd/system/
systemctl enable sipcheck
# アプリケーションを起動
systemctl start sipcheck
# 正常に動作しているか確認
tail -f /var/log/sipcheck.log
2020-03-14 19:25:51,309 INFO: -----------------------------------------------------
2020-03-14 19:25:51,309 INFO: Starting SIPCheck 3 ...
2020-03-14 19:25:51,309 INFO: + Added 185.53.88.49,1584140431 into blacklist again from the time: 1584140431
2020-03-14 19:25:51,309 INFO: BL: Detected attack from IP: '185.53.88.49' (Banning address)
2020-03-14 19:25:51,312 INFO: + Added 195.154.28.205,1584140431 into blacklist again from the time: 1584140431
2020-03-14 19:25:51,312 INFO: BL: Detected attack from IP: '195.154.28.205' (Banning address)
2020-03-14 19:25:51,313 INFO: + Added 92.246.85.154,1584140431 into blacklist again from the time: 1584140431
2020-03-14 19:25:51,313 INFO: BL: Detected attack from IP: '92.246.85.154' (Banning address)
2020-03-14 19:25:51,315 INFO: + Added 113.141.67.163,1584140431 into blacklist again from the time: 1584140431
2020-03-14 19:25:51,315 INFO: BL: Detected attack from IP: '113.141.67.163' (Banning address)
2020-03-14 19:25:51,317 INFO: + Added 192.227.132.19,1584140431 into blacklist again from the time: 1584140431
2020-03-14 19:25:51,317 INFO: BL: Detected attack from IP: '192.227.132.19' (Banning address)
2020-03-14 19:25:51,319 INFO: + Added 45.143.220.240,1584140431 into blacklist again from the time: 1584140431
2020-03-14 19:25:51,319 INFO: BL: Detected attack from IP: '45.143.220.240' (Banning address)
2020-03-14 19:25:51,321 INFO: + Added 45.143.221.59,1584200178 into blacklist again from the time: 1584200178
2020-03-14 19:25:51,321 INFO: BL: Detected attack from IP: '45.143.221.59' (Banning address)
2020-03-14 19:25:51,322 INFO: + Added 192.3.140.204,1584200178 into blacklist again from the time: 1584200178
2020-03-14 19:25:51,322 INFO: BL: Detected attack from IP: '192.3.140.204' (Banning address)
2020-03-14 19:25:51,324 INFO: + Added 185.221.135.138,1584200178 into blacklist again from the time: 1584200178
2020-03-14 19:25:51,324 INFO: BL: Detected attack from IP: '185.221.135.138' (Banning address)
2020-03-14 19:25:51,326 INFO: + Added 45.143.220.25,1584200178 into blacklist again from the time: 1584200178
2020-03-14 19:25:51,326 INFO: BL: Detected attack from IP: '45.143.220.25' (Banning address)
2020-03-14 19:25:51,331 INFO: + Added 10.10.10.10 into whitelist during one year
2020-03-14 19:25:51,332 INFO: + Added 10.10.12.12 into whitelist during one year
2020-03-14 19:25:51,341 INFO: protocol version: '5.0.0'
2020-03-14 19:25:51,342 INFO: Sending awaiting actions
2020-03-14 19:47:09,842 WARNING: Received anonymous INVITE from IP 91.212.38.210
2020-03-14 20:47:14,776 INFO: TL: Expired time for 91.212.38.210
2020-03-14 21:14:17,786 WARNING: Received wrong password for user Administrator from IP 45.234.152.38
2020-03-14 21:50:28,963 WARNING: Received wrong password for user administrator from IP 45.234.152.38
2020-03-14 22:07:02,806 WARNING: Received wrong password for user 10 from IP 45.234.152.38
2020-03-14 22:14:18,490 INFO: TL: Expired time for 45.234.152.38
2020-03-14 22:24:22,969 WARNING: Received anonymous INVITE from IP 45.143.220.220
2020-03-14 22:43:22,100 WARNING: Received wrong password for user 11 from IP 45.234.152.38
2020-03-14 23:19:42,874 WARNING: Received wrong password for user 100 from IP 45.234.152.38
2020-03-14 23:24:26,489 INFO: TL: Expired time for 45.143.220.220
2020-03-14 23:27:28,488 WARNING: Received anonymous INVITE from IP 45.143.220.214