fail2banをMacOSX10.4で利用する

提供:maruko2 Note.
移動: 案内, 検索

目次

動作環境

インストール

  1. fail2ban のソースコードをダウンロード
  2. curl -O http://jaist.dl.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.3/fail2ban-0.8.3.tar.bz2
    
  3. 解凍
  4. tar xjf fail2ban-0.8.3.tar.bz2
    
  5. インストール
  6. fail2ban をコンパイルしインストールする。

    cd fail2ban-0.8.3
    sudo python setup.py install
    
  7. fail2ban-client などを、/usr/local/bin にコピー
  8. /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/
    
  9. 起動用ファイル (Launchd Property List File) をコピー&編集
  10. sudo cp files/macosx-initd /Library/LaunchDaemons/fail2ban.plist
    

    コピーした起動用ファイルの先頭の2行を削除。(<?xml から始まるようにする)

    sudo vi /Library/LaunchDaemons/fail2ban.plist
    
  11. fail2ban のログファイルを作っておく
  12. 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 に合わせ編集する。

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

参考ページ

LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数