security run outputが長すぎる


 さくらで借りてる鯖から毎日自動的に送られてくるセキュリティレポートだが、sshログイン失敗のログがとてつもなく大量すぎる。恐らくブルートフォース攻撃のログだな。勘弁してくれ。
 まーでも別に読み飛ばせばいいんだけど、と思いながら何となくファイルサイズを見たら、たった一通で650KBとか。おいおいおい。これはいかん。何とかしよう。

 ということで、まずはsshdの設定を一通り見てみる。ふーむ。ブルートフォース攻撃があっても全く気付かなくなるような設定は可能っぽいなあ。でもそれは嫌だな。一応は攻撃のログが残ってくれないと。
 んで、とりあえずパスワード認証を切って、公開鍵認証のみに変更してみる。少し待つと、相変わらず/var/log/auth.logが肥大化している。不正なユーザー名を試された時点でログに残るのか。うぜえ。
 ここで、連絡用Wikiのエラーログも妙に膨れ上がっていることに気付いたので、面倒だがローテートの設定。どうやらnewsyslogなるツールがデフォで使われてるようなので、ざっとmanを読んで、設定ファイルを適当に書き換えて、試しに一回実行してみる。綺麗にローテートする。こりゃ便利。

 それはともかく、何かうまい方法が無いかと探したのだが、pfというパケットフィルタ機能が使えないと駄目、という物が多かった。pfの導入方法を適当に調べると、何やらカーネル再構築がどうこう出てきた。怖いんで速攻で諦める。
 pfを使わないっぽいツールを調べると、pam_afとかdenyhostsとかが見付かる。どっちがいいのかさっぱり分からんけど、PAMはあまりよく分かっていない、TCPは何となく分かる気がする、という理由で後者を選択。
 では早速インストール開始。

 以前の教訓から、インストールの最後に出るメッセージはちゃんと読もう、と思ったので、読む。
 ふむふむ、/etc/hosts.allowを書き換えて、sshdの時は/etc/hosts.deniedsshを読み込むようにするのかな。よく分からんがサンプル通り書いとこうか。
 んで、hosts.deniedsshが無いなら自分でtouchしろ、とのこと。ハハハ。オーケーオーケー。touch /etc/hosts.deniedsshと。
 あとはもちろん、/etc/rc.confにdenyhosts_enable="YES"の追加だな。

 そして、/usr/local/etc/denyhosts.confを編集開始。
 ふむふむ、PURGE_DENYで有効期限を決める感じか。無期にすると事故った時に怖いな…。うーむ。どうするか。
 悩んでたら、次の項目にPURGE_THRESHOLDという設定が。ここで設定した回数以上の再犯者は無期になるっぽいな。併用すれば問題ないか。短めの有効期限にして、3ストライクアウトにしよう。万が一事故って自分が入れなくなったら、期限が切れた隙にログインしてしまえば何とでもなる。気がする。
 失敗回数の設定もあるな。これはまあ、そんな厳しくなくてもいい気はするな。ブルートフォース攻撃なんてもんは相当な回数で試行しないと破れるもんじゃなかろうし。デフォだとかなり厳しい設定になってるけど、レンタル鯖だからリモートシェル使えなくなる方がずっと怖いんだよな。つーかログがうざいのが元々の動機だし。ということで大幅に緩めておく。
 さらに、共有DBがあって、お互いに拒否情報を出し合ったり、○○台以上のホストに拒否食らってる奴の情報を貰って拒否とか何とか、便利そうな機能なので早速使おうと思いかけたんだけども、何かの間違いで俺がログイン出来なくなると嫌なので使わないことに。どんどん緩くしちゃうよー。

 んで、拒否リストを一定期間で解除する機能を有効にするには、コマンドラインに–purgeを書かなきゃならんのだが、どこで書くんだろう。んー。通例だと/etc/rc.confにdenyhosts_flags="--purge"とか?
 調べたけど良く分からんので、そのまま試した。オーケーちゃんと動いたぜ。
 そして、起動するなり早速どこかのホストが規制リストに加わっていた。ハハハ。ざまー見ろカス野郎が!

 ということで、メールのサイズが縮むことを祈るのであった。出来れば大幅に。
 ついでにブルートフォース攻撃の心配も軽減された(本来逆だが)ので、sshのパスワード認証を復活させても別にいいような気がしなくもないが。うーん。どうなんだろうなあ。

(Visited 44 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください