manekineko倉金家ホームページ

趣味の部屋/インターネットサーバー/サーバー構築メモ その3/仮想マシン

VineLinuxでもfail2ban

2014年2月23日


 サーバーを運用してログを見ていますと毎日多くのアタックを受けています。ssh, http, メール関係, ftp などに特に多く、不正ログインしたりサーバーを乗っとろうという意図が見え見えです。
 CentOSではfail2banでこれらのアタックを撃退していましたが、今回も導入しましょう。
とはいえ、Vinelinuxの標準レポにはfail2banはありません。同類のblockhostsやdenyhostsも見当たりません。
使いづらいSELinuxはともかく、セキュリティー上fail2banくらいはぜひともほしい、というより絶対必要と思うのですが...
 仕方ないので本家から導入することにします。
http://www.fail2ban.org/ より最新版をダウンロード。rpmがあったのであとあと管理の楽なrpmで。
fail2ban-0.8.12-1.noarch.rpm

インストール
# rpm -ivh fail2ban-0.8.12-1.noarch.rpm

# man fail2ban でマニュアルを見てみます。細かいところはよくわかりませんが...。
ユーザインタフェースのfail2ban-clientから本体のfail2ban-serverを制御するようです。
とりあえず起動/停止は、
# fail2ban-client start/stop でいいみたい。で、やってみます。
# fail2ban-client start
ERROR There is no directory /var/run/fail2ban to contain the socket file /var/run/fail2ban/fail2ban.sock.
1回目失敗 /var/run/fail2banディレクトリがないと。つくりました。

起動
# fail2ban-client start
2014-02-22 19:24:31,700 fail2ban.server [4916]: INFO Starting Fail2ban v0.8.12
2014-02-22 19:24:31,700 fail2ban.server [4916]: INFO Starting in daemon mode
起動OK

停止
# fail2ban-client stop
Shutdown successful
停止OK

基本的なインストールはいいようです。

 引き続き設定を行いますが、全く新規にやる気はありません。
/etc/fail2banの各設定ファイルをざっと眺めるとCentOSのがそのまま使えそうです。
CentOS6のサーバーから、
/etc/fail2ban/jail.conf
/etc/fail2ban/filter.d/(変更したフィルター)
をこちらへコピー。ただし公開は堪忍。もっとも攻撃者がこれを読んで攻撃の仕方を調整してくるとも思えないけど。

さらにログローテートスクリプトがないのでこれももってきます。

→ログローテートスクリプトを

 さらにいちいちサーバー起動停止のたびに手動でstart/stopも面倒なのでCentOS6の/etc/rc.d/init.d から起動停止スクリプト fail2ban をこちらの/etc/rc.d/init.d にコピーし、
# chkconfig --add fail2ban
これでcheckconfig fail2ban on/off と service fail2ban start/stop/reload が使えるようになります。
# chkconfig fail2ban on …すでにonになっていたけど動作確認。
# service fail2ban start

→起動停止スクリプトを

 しばらくして見てみると一応ちゃんと動作はしています。あとはディストリビューションやバージョンの違いで監視対象のログが微妙に違うことがあるので実際に運用して調整することにします。