ブルートフォースアタックからの防衛ツール BlockHosts 導入手順。環境は CentOS 4。
インストール
rpmで導入する場合
wget http://www.aczoom.com/tools/blockhosts/BlockHosts-2.4.0-1.noarch.rpm sudo rpm -Uvh BlockHosts-2.4.0-1.noarch.rpm
もしくはソースからインストールする場合
wget http://www.aczoom.com/tools/blockhosts/BlockHosts-2.4.0.tar.gz tar xvzf BlockHosts-2.4.0.tar.gz cd BlockHosts-2.4.0 sudo python setup.py install
どちらの方法を使っても、設定ファイルは /etc/blockhosts.cfg にインストールされるし、ログローテーションのための設定ファイル /etc/logrotate.d/blockhosts もインストールされる。
/etc/blockhosts.cfg の設定
まずは最低限の設定を行う。CentOS ならほとんどの場合はデフォルトで良いと思うが、
HOSTS_BLOCKFILE = "/etc/hosts.allow" WHITELIST = [ "127.0.0.1", "192\.168\.2\..*", ] LOGFILES = [ "/var/log/secure", ]
このあたりは明示的に設定しておいた方が良いと思う。WHITELIST に追加する設定は自分の環境にあわせて。
/etc/hosts.allow に設定追加
こちらもまずは最低限の情報を書いて、動作確認をする。
#---- BlockHosts Additions #---- BlockHosts Additions
この状態で以下のコマンドを実行し、正しく解析結果が表示されることを確認。
sudo blockhosts.py --verbose --dry-run
次に –dry-run オプションを外し、/etc/hosts.allow の書き換えが正しく行われることを確認する(BlockHosts Additions の間に情報が書き込まれる)。
sudo blockhosts.py --verbose
最後に /etc/hosts.allow の末尾に blockhosts.py の起動設定を追加する。以下は一例
sshd: ALL: spawn /usr/bin/blockhosts.py --verbose --echo "%c-%s" >> /var/log/blockhosts.log 2>&1 : allow
その後の設定
ほとんどの設定は /etc/blockhosts.cfg の中でも、blockhosts.py のコマンドラインオプションとしても(つまり /etc/hosts.allow の中でも)設定できる。詳しくは blockhosts.cfg の中のコメントや blockhosts.py –help を参照。
試していないが、「ipblock」の設定を行うことで、TCP/IP レベルでのブロックも行えるようだ。ip コマンドで無効なルートを設定するか、iptables でフィルタリングするか選べるらしい。blockhosts.cfg より:
#IPBLOCK = "" # (default) #IPBLOCK = "ip route" # or use full path "/sbin/ip route" #IPBLOCK = "iptables" # or use full path "/sbin/iptables" # "ip route": Do TCP/IP blocking using route commands to setup null-routes. # ip route addvia 127.0.0.1 # "iptables": Do TCP/IP blocking, using iptables packet filtering. # iptables --append blockhosts --source -j DROP
[...] インストールまで。標準の設定では sshd と ftpd しか有効にならない。 [...]