「SIP-Fail2ban」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(新しいページ: '==fail2ban== ログファイルとiptablesを利用したファイアウォールの一種。Brute Forceアタックの対策に使いやすい。<br> :http://www.fail2ban.org/...')
 
4行目: 4行目:
 
:http://sourceforge.net/projects/fail2ban/
 
:http://sourceforge.net/projects/fail2ban/
 
==動作条件==
 
==動作条件==
pythonとiptablesが必要。yum install python iptablesなどで入れておくこと。
+
pythonとiptablesが必要。yum install python iptablesなどで入れておいて下さい。
 
==インストール==
 
==インストール==
まずSFからfail2banをダウンロードし、展開する。
+
まずSFからfail2banをダウンロードし、展開します。
 
  tar jxvf fail2ban-0.8.4.tar.bz2
 
  tar jxvf fail2ban-0.8.4.tar.bz2
展開したディレクトリでインストールする。
+
展開したディレクトリでインストールを実行します。
 
  cd fail2ban-0.8.4
 
  cd fail2ban-0.8.4
 
  python ./setup.py
 
  python ./setup.py
スタートアップ・スクリプトをコピーしておく(CentOSなどRedHat系の場合の例)。
+
スタートアップ・スクリプトをコピーしておきます(CentOSなどRedHat系の場合の例)。
 
  cp files/redhat-initd /etc/init.d/fail2ban
 
  cp files/redhat-initd /etc/init.d/fail2ban
 
==設定==
 
==設定==
 +
===Asteriskのログフォーマットを変更する===
 +
Fail2banはそのままではAsteriskのログの日付を認識できないため、Asteriskのログフォーマットを変更します。<br>
 +
/etc/asterisk/logger.confを編集し、日付のフォーマット変更を行います。<br>
 +
[general]セクションにある
 +
dateformat=%F %T
 +
のコメントを外すか、もしこのエントリがなければ記述します。設定を変更したら、Asteriskを再起動するか、loggerモジュールのリロードを行って、変更を有効にします。これによりAsteriskのログの日付形式が以下のように変わりますので、確認してください。
 +
[2010-12-30 09:25:25] NOTICE[17537] chan_sip.c:.....
 +
===Asterisk用の定義ファイルを作る===
 +
/etc/fail2ban/filter.d ディレクトリに asterisk.conf という名前で以下のようなファイルを作ります。<br>
 +
<br>
 +
Asterisk 1.8系の場合
 +
# Fail2Ban configuration file
 +
#
 +
#
 +
# $Revision: 250 $
 +
#
 +
 +
[INCLUDES]
 +
 +
# Read common prefixes. If any customizations available -- read them from
 +
# common.local
 +
#before = common.conf
 +
 +
 +
[Definition]
 +
 +
#_daemon = asterisk
 +
 +
# Option:  failregex
 +
# Notes.:  regex to match the password failures messages in the logfile. The
 +
#          host must be matched by a group named "host". The tag "<HOST>" can
 +
#          be used for standard IP/hostname matching and is only an alias for
 +
#          (?:::f{4,6}:)?(?P<host>\S+)
 +
# Values:  TEXT
 +
#
 +
 +
failregex = Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Wrong password
 +
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - No matching peer found
 +
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Username/auth name mismatch
 +
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Device does not match ACL
 +
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Peer is not supposed to register
 +
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Not a local domain
 +
 +
# Option:  ignoreregex
 +
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
 +
# Values:  TEXT
 +
#
 +
ignoreregex =

2010年12月30日 (木) 09:36時点における版

fail2ban

ログファイルとiptablesを利用したファイアウォールの一種。Brute Forceアタックの対策に使いやすい。

http://www.fail2ban.org/
http://sourceforge.net/projects/fail2ban/

動作条件

pythonとiptablesが必要。yum install python iptablesなどで入れておいて下さい。

インストール

まずSFからfail2banをダウンロードし、展開します。

tar jxvf fail2ban-0.8.4.tar.bz2

展開したディレクトリでインストールを実行します。

cd fail2ban-0.8.4
python ./setup.py

スタートアップ・スクリプトをコピーしておきます(CentOSなどRedHat系の場合の例)。

cp files/redhat-initd /etc/init.d/fail2ban

設定

Asteriskのログフォーマットを変更する

Fail2banはそのままではAsteriskのログの日付を認識できないため、Asteriskのログフォーマットを変更します。
/etc/asterisk/logger.confを編集し、日付のフォーマット変更を行います。
[general]セクションにある

dateformat=%F %T

のコメントを外すか、もしこのエントリがなければ記述します。設定を変更したら、Asteriskを再起動するか、loggerモジュールのリロードを行って、変更を有効にします。これによりAsteriskのログの日付形式が以下のように変わりますので、確認してください。

[2010-12-30 09:25:25] NOTICE[17537] chan_sip.c:.....

Asterisk用の定義ファイルを作る

/etc/fail2ban/filter.d ディレクトリに asterisk.conf という名前で以下のようなファイルを作ります。

Asterisk 1.8系の場合

# Fail2Ban configuration file
#
#
# $Revision: 250 $
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
#before = common.conf


[Definition]

#_daemon = asterisk

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#

failregex = Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Wrong password
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - No matching peer found
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Username/auth name mismatch
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Device does not match ACL
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Peer is not supposed to register
            Registration from '.*' failed for '<HOST>(:[0-9]{1,5})?' - Not a local domain

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =