CentOS on X40:SSHブルートフォース対策(Fail2ban編)

SSH辞書攻撃対策として、連続でアクセスがあった場合にiptablesで拒否できるものがないのかなと探してみたところ、sshdfilter・breakinguard・fail2banといったものがありました。

中でもFail2banはCentOS用(正確にはRedhat)のRPMパッケージがあるため導入が楽ということで、さっそく導入してみます。

参考サイトはこちら:

KinoWiki – Fail2Ban
Fail2banでDoSアタック/DoS攻撃 対策 (1)
::こうたのそれなりな日記::SSH ブルートフォースアタック対策 fail2ban編

ちなみに、Fail2banは元々SSH攻撃に対しての防御用だったそうですが、今ではApacheのログなども読んでくれるそうなので、さまざまなフィルタリングに対応できるようです(sshのほかにApache,vsftpd,mailの設定項目がありました)。

Fail2banのダウンロード

# wget http://fail2ban.sourceforge.net/rpms/fail2ban-0.6.1-2jik.noarch.rpm

インストール

# rpm -ivh fail2ban-0.6.1-2jik.noarch.rpm

インストールされたかの確認

# fail2ban -V
/usr/bin/fail2ban 0.6.1

設定ファイル(fail2ban.conf)の編集

# vi /etc/fail2ban.conf
【42行目あたり】何回連続アクセスがくれば拒否するか
maxfailures = 3
【49行目あたり】アクセス拒否する時間(秒)
bantime = 600
【63行目あたり】アクセス拒否の対象外アドレスを指定
ignoreip = 対象外にしたいアドレス

このままfail2banを起動するとfail2banのログにエラーを吐くので、その対策をしておきます。

# vi /etc/default/fail2ban
export LANG=C

fail2banの起動

# service fail2ban start

起動しているかの確認

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-SSH tcp — anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-SSH (1 references)
target prot opt source destination
RETURN all — anywhere anywhere

一日ぐらいしたらログを確認してみましょう。
ちゃんと動いてるっぽいなと確認したらサービスを起動時にもONとします。

# chkconfig hail2ban on

ちなみに永久的に拒否したい場合はログを見てiptablesで以下のようなコマンドを打てばいいようです。

# iptables -I INPUT -s 拒否したいIPアドレス -j DROP

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中