fail2banをMacOSX10.4で利用する
提供:maruko2 Note.
目次 |
動作環境
- Mac OS X 10.4.11 Server
- OS にインストール済みの Python (2.3.5)
インストール
- fail2ban のソースコードをダウンロード
- 解凍
- インストール
fail2ban-client
などを、/usr/local/bin にコピー- 起動用ファイル (Launchd Property List File) をコピー&編集
- fail2ban のログファイルを作っておく
curl -O http://jaist.dl.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.3/fail2ban-0.8.3.tar.bz2
tar xjf fail2ban-0.8.3.tar.bz2
fail2ban をコンパイルしインストールする。
cd fail2ban-0.8.3 sudo python setup.py install
/usr/local/bin ディレクトリがなければ作成する。
sudo mkdir -p /usr/local/bin
sudo cp fail2ban-client /usr/local/bin/ sudo cp fail2ban-regex /usr/local/bin/ sudo cp fail2ban-server /usr/local/bin/
sudo cp files/macosx-initd /Library/LaunchDaemons/fail2ban.plist
コピーした起動用ファイルの先頭の2行を削除。(<?xml から始まるようにする)
sudo vi /Library/LaunchDaemons/fail2ban.plist
sudo touch /var/log/fail2ban.log
Mac OS X 10.4 の Python 2.3 で動作するよう修正する
/usr/share/fail2ban/server/asyncserver.py
を編集する。
sudo vi /usr/share/fail2ban/server/asyncserver.py
135行目を(fail2ban 0.8.4 は 145行目)
asyncore.loop(use_poll = True)
次のように変更する。
asyncore.loop(timeout=1, use_poll=hasattr(asyncore.select, 'poll'))
vi で行番号を表示させるには、esc キーを押し :set number を入力 |
ssh ブルートフォースアタック対策として設定する
Mac OS X 10.4 で動作させるには、デフォルトで用意されている設定を一部編集して利用する必要がある。
修正ポイントとしては、次のような箇所を Mac OS X に合わせ編集する。
- fai2ban で監視するログファイルの場所。 → jail.conf の logpath
- フィルタの正規表現。 → filter.d/*.conf の failregex
- Mac OS X は
ipfw
でブロックする。 → action.d/*.conf
fail2ban.conf
Mac OS X の動作に合わせ Jail を追加する。
sudo vi /etc/fail2ban/jail.conf
[ssh-ipfw] enabled = true filter = sshd action = ipfw logpath = /var/log/secure.log
filter.d/sshd.conf
Mac OS X の動作に合わせ filter.d/sshd.conf
を一部修正する。
sudo vi /etc/fail2ban/filter.d/sshd.conf
^%(__prefix_line)sAddress <HOST> .* POSSIBLE BREAK-IN ATTEMPT\s*$
次のように修正する。
^%(__prefix_line)sAddress <HOST> .* POSSIBLE BREAK-IN ATTEMPT!\s*$
action.d/ipfw.conf
fail2ban が追加する ipfw のルールを一部修正する。ルールの内容は、環境にあわせる必要がある。
actionban = ipfw add 200 deny tcp from <ip> to any <port> in
上の例だと、<port> で拒否するポート番号も指定することになるが、次のようにするとアタックのあった IP アドレスからの接続を全て拒否するようになる。
actionban = ipfw add 200 deny tcp from <ip> to any in
fail2ban を起動・停止・再読込する
- 起動する
sudo /usr/local/bin/fail2ban-client start
- 停止する
sudo /usr/local/bin/fail2ban-client stop
- 設定を再読込する
sudo /usr/local/bin/fail2ban-client reload
動作確認
ログ(/var/log/fail2ban.log
)に Ban, Unban が記録される。
例えば次のようなログが記録される。
2011-07-06 16:25:05,640 fail2ban.actions: WARNING [ssh-ipfw] Ban 124.129.5.82 2011-07-06 16:35:05,737 fail2ban.actions: WARNING [ssh-ipfw] Unban 124.129.5.82
ipfw のルールは、次のコマンドで確認できる。
sudo ipfw list