| 更新履歴 |
| [ 2002.01.07 ] [ 2002.01.14-1 ] [ 2002.01.14-2 ] [ 2002.01.31 ] [ 2002.03.09 ] [ 2002.03.15 ] |
|
ご注意:はっきり言ってしまケロはまだ iptables 初心者です(iptables の歴史を考えれば開発者以外は誰しも初心者)。運用実績も多くはないです。ここで敢えて紹介するのは iptables ユーザー層拡大を目指し、新たな知識の獲得、カン違いの修正などの恩恵を共有するためです。ですので、以下の内容、サンプルは鵜呑みにしてはいけません。また、ipchains サンプルのときと同じですが、これは特別に書き下ろしたもので、運用実績はありません。あくまでサンプルです。(追記: 2002/03/15)最近はさすがに初心者ではなくなったかと(^^;(さらに追記:2003/01/16)いいかげんちゃんとしたルールを見せてみい!つことで、サンプルを更新。サンプルはサイト内の「スクリーンドブランチネットのファイアウォール」にあります。
以下は iptables についてイチから説明するものではないです。主に ipchains を使っていた人のためのもので、主に私が実際にハマったリ、ハマりそうになったり、今もハマっていて抜け出せないポイントについて書いたものです。ipwadm や ipfw だった人でも何とかなるでしょうが、そうでない場合はキツイかも。またパケットフィルタリング自体よく分からないヒトにはただの暗号文です。そういう人は基本的なほかのドキュメントなどで勉強してからがよいでしょう。JF にはうんざりするほどたくさんありますし、しまケロが Linux World 1月号に書いたファイアウォールの記事も入門によいでしょう(宣伝(^^;)。 さて、今回はFAQのように書いていってみようかな(自問自答だけど)。
教えましょう。それは夢です。しかし貴殿の夢は iptables -N log-and-drop iptables -A log-and-drop -j LOG iptables -A log-and-drop -j DROPとかいうチェインでも作れば叶うでしょう(謎の紳士より)。 オレに言うな!私も困っているのです。 ほう、いい度胸ですね、どうなっても知りませんよ、ひひ。 iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 80 -j DNAT --to 192.168.100.1:80のようにするとポートフォワードできるので簡単に出来ます。こうすると、LAN 内の 192.168.100.1 が WEB 鯖として公開できます。宛先は XXX.XXX.XXX.XXX:XXX のように指定する点に注意しましょう。 はい、最近ノートPC(新品)を買いました。スペックがよろしいので快適です。 わかってますよ。えと、インターフェースが無効なときはエラーでなく、無視してくれます。これはADSL接続には大変うれしいことです。ppp0 というインターフェースは接続して初めて実在し、接続していないときは実在しないため、以前の ipchains では -i ppp0 とか書いておくとエラーになりました。iptables なら無造作に書いておいていいので幸せになれます。 あと、とにかくパケットを細かく検査できるので、簡易パケットキャプチャツールのようにも使えそうです(特に意味は無いけど)。 こういったツールに本来の安定はありません。それを承知の上で使うべきです。セキュリティの何もかもをたった一つのツールに託す使い方はあまりよろしくありません。不具合はすぐにフィックスされます。その間はその他のツールたちに任せて、迅速に対処すればよいのです。また、テスト運用時もそうです。こちらはテストでも攻撃者にとっては格好の餌食です。 フィルタリングを行うツールは、通常パケットのデータ部まで詳細に調べてどうこうするということはしません。ipchainsなどもそうです。それらはパケットキャプチャツールにおまかせするのが一般的でした。しかし、iptablesではstringモジュールというものを使うことによってデータ部の文字列を検査することができます。詳しくは[ ここ ]に書いてあります。CodeRed や Nimda が送りつけてくるパケットには cmd.exe や default.ida?NNNN... といった決まった文字列が入っていますので、これにマッチしたら破棄とすればよいのです。 -m string --string "default.ida" (追記: 2002/03/15)ホントはこの方がイイ -m string --string "NNNNNNNN" -m string --string "AAAAAAAA"とすればマッチします(安易すぎますが、これは単なる例だからよいのです)。 また[ ここ ]に書いてありますが、なんと Snort のルールから iptables のルールを生成するツールなるものが存在します。 [ http://www.stearns.org/snort2iptables/ ] Nimda や CodeRed だけでなく、さまざまな凶悪パケットを選択して料理することができるのです。 むむむ.....しかし、現在のサンプルは動くはずです。まあ、やっと実験環境が整ったのでぼちぼちちゃんとやります。赤帽嫌いとしては本運用以外に赤帽機を持つのはかなりの苦痛なので、ここまで引っ張ってきました。ご理解ください。みんながみんなカーネル2.4の安定版を出してくれるといいんですけど。 おおお、こんな重要なことを言うのを忘れていました。スマンスマン。でも、ここまで誰も聞かなかったというのは、そんな要望がないということか、みんなトーゼン知ってたかのどちらでしょうか? どっちにしても、この前説明した string モジュールだって、当然パッチをあてなければいけないわけで、そのとき説明しなきゃいかんでしたねえ。-m string なんて使えないぞ!と怒られそうです(汗)。まあ、いいや。[ 開発元 ] から、樽玉をもってきて展開して、カーネルにパッチを当てて、それからパッケージを作る、という雰囲気です。展開したディレクトリの中の INSTALL を読んでその通りにすればよいです。当然、カーネルのバージョンが対応してなければだめです。それから、iptables のようなツールはただ新しけりゃいいってもんじゃない、ことも頭に入れておきましょう。革新的、実験的なコードはバグの元でもあるのです。iptables の開発者は気合が入ってますので、逆に怖い部分もあるかもれません。しかし、それでもとにかく最新版を追う、というのはiptables 愛好家の心意気というものでしょう。 |