iptablesを使ってSSH brute forceを防ぐ方法
元ネタはこちら→ http://sawano.members.icraft.jp/wp/2008/11/06/1032.html;title
ちょうど自宅サーバを立てたというのもあり、個人が便利に利用する上で必要だと感じたので、上記のページを参考にとりあえずやってみました。
・・・全然いかないやんけorz
Gentooじゃいかないのか?そんな訳ないよなーとと思い、そういえば確かiptablesってカーネルの機能だったようなー、と思いだしたので、/usr/src/linuxに移動し、make menuconfig。
そして、
[Netwoking support] --> [Networking options] --> [Network packet filtering framework (Netfilter)] --> [*] Advanced netfilter configuration [Core Netfilter Configuration] --> この下にある、〜 target supportを片っ端から組み込み。モジュールにしても大丈夫だとは思います。
として、make && make modules_install。これで、iptablesで色々なマッチングモジュールを利用する準備が整います。
こういうのがデフォルトで用意されていないのも、Gentooならでは。
ですが、参考にしたページそのままではいきませんでした。実際に成功したiptablesの設定は次の通り。(コメントは削除しています)
$ iptables -N SSH_ACCEPT $ iptables -N SSH_BFA $ iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j SSH_ACCEPT $ iptables -A SSH_ACCEPT -m recent --set --name SSH_ACCEPT $ iptables -A SSH_ACCEPT -m recent --rcheck --seconds 60 --hitcount 5 --rttl --name SSH_ACCEPT -j SSH_BFA $ iptables -A SSH_BFA -j LOG --log-tcp-options --log-level 4 --log-prefix 'iptables: ssh_bfa :' $ iptables -A SSH_BFA -j DROP $ /etc/init.d/iptables save
こんな感じになります。最後の /etc/init.d/iptables save は、入力したiptablesのコマンドを、次回以降入力しなくてもよいように保存してくれます。
上記のものですが、マッチングモジュール以降(-m 〜の部分)のオプションは、大文字でなければならない & ターゲットは事前に-Nで追加しておかなきゃならない、という点がポイントでした。
あまりセキュリティには詳しくないのですが、とりあえずよさげなのでいいことにします。