カーネルはネットワークデータのトランスポート層、インターネット層、ネットワークアクセス層を担当するそうです。その後、ネットワークデータはポート番号に基づいて適切なプロセスに渡されます。
ファイアウォール、IPS、IDSなどのセキュリティプログラムはユーザーレベルのプログラムであり、カーネルの一部ではありません。そのプログラムに属さないネットワークデータにどのようにアクセスできますか?プロキシサーバーはどうですか?
ネットワークデータが正しく処理されるために、なぜファイアウォールを通過する必要があるのですか?
答え1
通常、これらのセキュリティプログラムは2つの部分で構成されています。ある部分はカーネル空間で実行され、もう一方はユーザ空間で実行されます。このuser space
部分はカーネル空間部分とやりとりするインタフェースです。
たとえば、iptablesには次のものがあります。
カーネル内のネットワーキングコードのためのフックセットであるnetfilter。また、ユーザ空間プログラムにパケットを転送するメカニズムも含まれています。
ip_tables
、netfilterを使用してネットワークパケットの問題を解決し、ルールを設定するモジュールです。iptables
、ip_tablesモジュールでルールを設定するためのユーザースペースツールです。
Netfilter はip_iptables
カーネル空間で実行され、iptables
ユーザー空間で実行されます。