|
次のページ
前のページ
目次へ
2. パケットフィルタリングの基礎2.1 パケットフィルタとは何をするもの?ネットワークを通る全てのトラフィックは、パケットの形で送り出されます。 例えば、このパッケージ(50Kバイトはあるでしょう)をダウンロードすることで、1460バイトのパケット36個ほどを受信することになるでしょう(実際にはそのときどきによって個数やサイズは異なります)。 (訳注: 現在ではこの文書は100KBを越えています:)) 各パケットはそれがどこに向けられたものかを記述する部分から始まり、どこから来たものか、それからパケットの種類と管理上必要な詳細内容を含んでいます。 パケットのこの開始部分は、ヘッダと呼ばれています。また、伝送されている実際のデータを含んだパケットの残りの部分は、通常ボディと呼ばれています。 ウェブ・トラフィック、メールとリモートログインのために使われるいくつかのプロトコル(例えば TCP)は `接続(コネクション)'とよばれる概念を使います。 実際のデータパケットが送り出される前に、`私は、接続したい'、`OK'、そして`ありがとう'といった、(特別なヘッダを伴う)色々なセットアップ・パケットを交換します。 パケット・フィルタは、パケットのヘッダを見て、そのパケット全体をどのように取り扱うかを決定する小さなソフトウェアです。パケットは拒否(deny)(すなわち、受信しなかったかのように、パケットを捨てる)ことに決められるかもしれないし、許可(accept)(すなわち、パケットを通過させる)することになるかもしれないし、パケットを返却(reject)("拒否"と似ているけれど、パケットの発信元にそのことを通知する)するかもしれません。 Linux においては、パケット・フィルタリングはカーネルに組み込まれています。 そして、パケットの取扱いに関して少しばかりトリックを仕掛けることができますが、その基本的な規則はあくまでヘッダを見て、パケットの取り扱いを決定するというものです。 2.2 なぜ?コントロール。セキュリティ。監視。
2.3 どうやって?パケットフィルタリング機能を有効にしたカーネル新しい IP ファイアウォール・チェーン機能を持つカーネルが必要です。今動作しているカーネルが、この機能を組み込んだものかどうか判断するには、 /proc/net/ip_fwchains を探してみましょう。 これが存在するならば、既に組み込まれています。 (訳注: 2.2.x以降のカーネルをお使いの場合は、大抵既に組み込まれていることでしょう。) もしそうでなければ、あなたは IP ファイアウォール・チェーンを持つカーネルを作る必要があります。 最初に、あなたが欲しいカーネルのソースをダウンロードしましょう。あなたのカーネルが バージョン 2.1.102 以降のものなら、現在主流のカーネルであるので、改めてパッチを当てる必要はありません。 そうでない時には前出の Web ページからパッチを入手して適用し、そして次に示すような設定でカーネルを構成して下さい。もし、あなたがこれをする方法を知らなくても、慌てないで Kernel-HOWTO を読みましょう。 (訳注: Kernel-HOWTOの邦訳は http://www.linux.or.jp/JF/JFdocs/Kernel-HOWTO.html にあります。) あなたが2.0-シリーズのカーネルに設定する必要があるコンフィグレーションオプションは、以下の通りです:
CONFIG_EXPERIMENTAL=y CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=y CONFIG_IP_FIREWALL_CHAINS=y 2.1 か 2.2 のシリーズ・カーネルの場合は次の通りです: CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=y ツールである ipchains
http://netfilter.filewatcher.org/ipchains/ipchains-scripts-1.1.2.tar.gz これには以前行われていたのと同じようなスタイルでパケット・フィルタリングを行わせるための
フィルタ規則を恒久的にするにはあなたの現在のファイアウォール設定は、カーネルに格納されて、このように再起動時には失われてしまいます。 あなたのルールを恒久的にするために `ipchains-save' と `ipchains-restore' スクリプトを使うことをお勧めします。 これを使うには、まずあなたのルールを設定して、次のようにコマンドを実行します(root として実行して下さい):
スクリプトは次のように作っておきます:
これが起動時の最初のうちに実行されるようにします。筆者のケース (Debian 2.1) では、 `S39packetfilter' というシンボリックリンクを `/etc/rcS.d' ディレクトリに作ってあります(これは、 S40network の前に実行されます)。 (訳注: 「最初のうち」というのは、起動時、ネットワークに対して通信が可能となる状態以前に行うという意味です。 ネットワークの他のサービスなどが起動したあとにファイアウオールを設定すると、全く設定されていないわずかな瞬間をついて"悪いやつ"が入り込む危険性があります。) 次のページ 前のページ 目次へ |
[ |