iptablesのチュートリアルを読んでいたが、えらく長大なチュートリアルであった。これ作るのも翻訳も大変だろーなー。というかぶっちゃけ途中までしか読んでない。まー、あとは人真似でも動かせるだろー、とか。
で、待望(?)のFail2ban導入。例によってLogwatchのメールがうざいことになっているので。
基本的には、ログから不正アクセスの試行を検出して遮断するツールの一つである。が、検出パターン(filter)は正規表現二つ(failとignore)で比較的自由に作成可能だし、検出時の動作(action)はかなり詳細に作成出来るので、例えばNginxのHttpLimitZoneModule(標準組み込み)などと組み合わせると、「ダウンロード用ポートへのn本以上の同時アクセスを禁止し、何度も引っ掛かる人は警告画面へ飛ばしつつ当分は転送速度も落とす」などの挙動も可能と思われる。iptablesのhashlimitとか使えば多分。
つっても、今は大人しいサーバしか動かしていないので、無難な設定で十分だけど。
んで、例によってyum install fail2ban
して、cd /etc/fail2ban
して、jail.confを見てみる。ふむ。これはあまり好みじゃないから、サンプルとしてリネームした方がいいかな。だって、例えばSMTP認証のエラーを拾った時にも25しか塞いでないし。587とかも塞ぎたいぞ。
という訳で、スクラッチから適当にガシガシ書いていく。メール通知系のアクションはまあ、要らないかな。しかしまー、色々なフィルタが公開されてていいなあ。例えばDovecotのフィルタとかも標準添付されてないけど、Dovecot Wikiからのコピペで済ませたし。結構流行ってるのかなこれ。
とりあえず、認証を使うサービス全部を監視対象にしたが、ついでにFail2ban自身も監視したい。"Fail2ban monitoring Fail2ban"というページで紹介されているが、要するに何度もbanされる人はもっと長期的にbanしよう、という奴。再帰的な動作なので多少の注意点はあるようだけど、多分大丈夫だろー、ということで入れてみる。
さくらのVPSはシリアルコンソールもあるのでかなり気楽に導入してしまったが、Osukiniの方はどうすっかなー、と思ってよくよく考えると、認証が必要なサービスを外部に公開していない予感。オーケー、問題無しだ。
待てよ、IPv6ってちゃんと塞がれるのかなこれ。えーと。iptablesに投げてるから無理じゃね。ip6tablesのactionとか入ってないしなあ。自前で書く気力は今は無いし。hostsdenyアクションとか使えば当面は行けるんだろうか。いや、そもそもIPv6アドレスを拾ってくれるのか?
つーかIPv6ってクラッカー的には狙い目なんだろうなあ(笑)。普及してある程度落ち着くとこまで早く行って欲しいけど。