これとまったく同じ質問をしている人々以外に、この件に関してグーグルにはこれまでほとんどありませんでした。
独自のファイアウォールの作成を開始するにはどうすればよいですか?
私は Windows プラットフォーム用に作成することを検討していますが、他のオペレーティング システムについてもこの情報に興味があります。
これとまったく同じ質問をしている人々以外に、この件に関してグーグルにはこれまでほとんどありませんでした。
独自のファイアウォールの作成を開始するにはどうすればよいですか?
私は Windows プラットフォーム用に作成することを検討していますが、他のオペレーティング システムについてもこの情報に興味があります。
Windows 2000/XP については、CodeProject の例を含む記事があります Windows 2000/XP のファイアウォールの開発Vista については、 Windows Filtering Platform
を使用する必要があると思います
この質問は、暗号化アルゴリズムの書き方を尋ねる質問と驚くほど似ています。両方への答えは、業界標準のソリューションについての穏やかなリマインダーで終わる必要があります。
ファイアウォールは、すべてのパケットを効率的かつ正確に検査する必要があるため、OS カーネルまたはネットワーク スタック内で実行されます。エラーや非効率性は、マシン全体と下流のセキュリティとパフォーマンスを危険にさらします。
独自の低レベル ファイアウォールを構築することは、多くのテクノロジに関する教育を提供する優れた演習です。しかし、実際のアプリケーションでは、既存のファイアウォール API を中心にシェルを構築する方がはるかに安全でスマートです。Windows では、netsh
コマンドがこれを行います。Linux はnetfilter
とを使用しiptables
ます。これらのいずれかをグーグルで検索すると、多くの理論、例、およびその他の役立つ情報が表示されます。
そのため、最初に TCP/IP (具体的には、ヘッダー情報: ポートとプロトコル) をブラッシュ アップし、さまざまな種類の攻撃とそれらを検出する方法について学びます。関心のある各オペレーティング システムと、それがネットワーク スタックとどのように相互作用するかについて学びます。最後に、管理とロギングについて考えてみましょう。ファイアウォールをどのように構成し、ファイアウォールを通過するパケットをトレースして、ファイアウォールが意図したとおりに動作していることを確認しますか?
幸運を!
通常のアプローチは、API フックを使用することです。Google はそれを教えてくれます。connect
や などのすべての重要なネットワーク関連のものをフックして、必要なものlistens
を拒否するだけです。