自分用メモ。
SSHポート(22)に対して、辞書攻撃なりピンポンダッシュ攻撃を仕掛けるPCから自衛する方法。
Freebsd 6.1 – p9 にて動作確認。
# vi /etc/ssh/sshd_config
MaxStartups 2:90:4
上記、MaxStartupsパラメータの意味ですが、2つまでの接続要求を受け付けます。
3つを超えるそれ以降の要求を90%の割合で拒否。
さらに要求が増え続けて4つを超えると以降すべてを拒否します。
まずこれで接続に対する防御ができます。
次に、特定IPからの辞書攻撃ですが、自分は「BruteForceBlocker」を使っています。
Portsから落とせる最新版は、BruteForceBlocker 1.2.3かと思います。
# /usr/ports/security/bruteforceblocker
# make install clean
上記にて、インストール完了。
まず、BruteForceBlockerがキックするpfのコンフィグファイルを編集します。
以下は自分の設定なので、参考程度に。
ext_ifの名前はNICによって異なるので、less /etc/rc.conf の ifconfig_*** の ***と一緒にしてください。
# vi /etc/pf.conf
ext_if=”dc0″
set loginterface $ext_if
set block-policy return
scrub in all
pass all
table persist file “/var/db/ssh-bruteforce”
block in log quick proto tcp from to any port ssh
次に、syslog.confの書き換えをします。
# vi /etc/syslog.conf
auth.info;authpriv.info /var/log/auth.log
auth.info;authpriv.info | exec /usr/local/sbin/bruteforceblocker < - 追加分
次にBruteForceBlocker自身のコンフィグを書き換えます。
おそらく書き換える所はwhitelistのところだけでいいと思います。
# vi /usr/local/etc/bruteforceblocker.conf
whitelist => [qw{
127.0.0.1
172.16.0.2
10.10.1.4
192.168.10.1 < - 追加分 }],
ただし注意が必要なのは、Firewall(IP Masq利用時),L/B以下にサーバを設置した場合です。
FirewallやL/B以下に置くと、サーバに対し通知されるIPは内部の物になっているはずです。
apacheのmod_rpafのようにX-Forwarded-Forを見てくれればいいんですが、
そんな機能は無いのでBruteForceBlockerを利用する意味が無いと思われます。
(もっともそんな環境ならF/WやL/Bでhost制限かけてると思いますが)
後は、/etc/rc.conf に以下を追記して再起動すれば完了です。
# vi /etc/rc.conf
pf_enable=”YES”
pflog_enable=”YES”
syslogd_flags=”-sc”
そのまま起動したい場合には、
# /etc/rc.d/pf start
# /etc/rc.d/pflog start
で起動します。
勿論、syslogもkill -HUPしてください。
意味がわからなければ、さくっと再起動するのがいいと思います(笑)
なこなこが、ピンポンなどを動作しなかったよ。