それマグで!スマートフォン用の表示で見るそれマグで!知識はカップより、マグでゆっくり頂きます。OpenVZの仮想サーバ(VE)のSSHポートをiptablesで保護する2009-08-05OpenVZの仮想サーバ(VE)のSSHポートをiptablesで保護するこれはかなりハマった。lenny上のopenvzではiptablesのrecentが動かない。VEにiptablesのsshアタック防止設定をしようとした。DROPこんなエラーとか出る。argumentiptablesエラーメッセージの読み方。ここのサイトに詳しく載っている。iptablesのデバグ以下に抜粋を載せる。する能力を持っているので、こうしたエラーの出た原因はふた通り考えられる。適切に行わなかったか、あなたがそのモジュールのことをはなから忘れていたかのどちらかだ。ところが一方、問題のモジュールがマッチに関するものだった場合、エラーメッセージはもっと暗号じみて、理解が困難となる。例としてこのエラーメッセージを見ていただこう。のし忘れなのかモジュールそのものが欠如しているのかを知る一番手っ取り早い方法は、モジュールが存在するはずのディレクトリを確認してみることだ。原因はipt_recentモジュールの欠如だが・・・ここまで原因がつかめてきた。OpenVZのフォーラムなどを読んで大体を理解した。原因はipt_recentの欠如である。OpenVZの仮想サーバー(以下VE)のiptablesはホスト側のモジュールと共有しているらしい。missing?考えられる原因は二つ考えられる原因は二つある。ホスト側にモジュールがロードされていない。ホスト側のモジュールをopenvzが共有してない。このそれぞれに対してエラーメッセージは対応している原因とエラーの対応はこうなる。(かも)原因エラーメッセージホスト側にモジュールがロードされていない。nameホスト側のモジュールをopenvzが共有してない。argumentなんとなくこんな感じのようだ。iptablesのデバグの記述を振り返ってみよう。する能力を持っているの・・・・(ryホスト側でロード済みでないと、VEから使えない。iptablesはモジュールが自動的にロードされる。VEのiptablesは自分でロードできない。モジュールはホストと共通だからだ。従って『ホスト側にロード済モジュールだけ』がVE側は使用可能。ホスト側でロードする必要がある。OpenVZではVE管理機能(vzctl)がある。この管理機能がVEのiptablesが使えるモジュールを制限することができる。言い換えればホスト側がモジュールロードされていても、VEの設定次第でVEがモジュール使えないことがある。ホスト側のiptablesのモジュールを確認する。僕の場合はロードされていなかった。いえばホスト側のiptablesはこのトラブル時にリセットしてから、まだ設定してないんだった。ホスト側のiptablesを設定する。通常のiptablesの設定方法。アクセス数が一定以上なら、sshのポートブロックする。DROPipt_recentがロードされる。xt_DSCP,xt_helper,xt_conntrack,ipt_LOG,xt_length,ipt_ttl,xt_tcpmss,xt_TCPMSS,xt_multiport,xt_limit,xt_dscp,ipt_REJECT,ipt_recent,xt_state,xt_tcpudp,iptable_nat,ip_tablesちゃんとロードされた。再起動時にipt_recentがロードされる設定。iptables設定が再起動後にロードされるようにする。このためにiptablesの設定が自動ロードされるようにする。OpenVZのホスト側で以下の設定をする。/etc/network/if-pre-up.d/iptables再起動してロードを確認する。xt_DSCP,xt_helper,xt_conntrack,ipt_LOG,xt_length,ipt_ttl,xt_tcpmss,xt_TCPMSS,xt_multiport,xt_limit,xt_dscp,ipt_REJECT,ipt_recent,xt_state,xt_tcpudp,iptable_nat,ip_tablesちゃんとロードされた。OpenVZのVEでモジュールが使えるか調べる。rerecentちゃんとロードされたね。iptablesするまえに行う設定がある。VEが使えるiptablesモジュールを追加指定する方法A:OpenVZのVE全部に設定する。(たぶん)方法B:VEごとに設定する。$i;done;OpenVZのVEにiptablesによるSSH総当たり対策を施す。/etc/network/if-pre-up.d/iptablesVE再起動後も有効か調べる。sourceちゃんと有効になっており問題なく成功した。参考スレッドhttp://forum.openvz.org/index.php?t=msg&goto=8831&http://forum.openvz.org/index.php?t=selmsg&&frm_id=0&mr=1&start=160&reply_count=0http://forum.openvz.org/index.php?t=msg&goto=28800&&srch=confiptablesの使い方。古いけれど、基本的なことはシッカリ載っているので参考に。別に...2010-10-08SSH総当たり防止策をiptablesのrecentモジュールでやるブルートフォースアタックが来るので対策。つかってSSHのアタックを保護する。