ホームページ > 記事 > システムチュートリアル > Linux ファイアウォールを使用してローカルのスプーフィングされたアドレスを隔離する方法を説明します。
iptables ファイアウォールを使用してネットワークをハッカーから保護する方法。
侵入検知および隔離システムで保護されたリモート ネットワークであっても、ハッカーは依然としてさまざまな洗練された侵入方法を見つけています。 IDS/IPS は、ネットワークの制御を乗っ取ろうとするハッカーによる攻撃を阻止したり軽減したりすることはできません。構成が不適切な場合、攻撃者は導入されたすべてのセキュリティ対策を回避できます。
この記事では、セキュリティ エンジニアまたはシステム管理者がこれらの攻撃を回避する方法を説明します。
ほぼすべての Linux ディストリビューションには、Linux ホスト上で実行されているプロセスとアプリケーションを保護するためのファイアウォールが組み込まれています。ほとんどのファイアウォールは IDS/IPS ソリューションとして設計されており、そのような設計の主な目的は、悪意のあるパケットがネットワークに侵入することを検出して阻止することです。
Linux ファイアウォールには通常、iptables プログラムと ipchains プログラムという 2 つのインターフェイスがあります (LCTT 翻訳: systemd をサポートするシステムでは、新しいインターフェイス firewalld が使用されます)。ほとんどの人は、これらのインターフェイスを iptables ファイアウォールまたは ipchains ファイアウォールと呼びます。どちらのインターフェイスもパケット フィルターとして設計されています。 iptables は、以前のパケットに基づいて決定を行うステートフル ファイアウォールです。 ipchains は以前のパケットに基づいて決定を下さず、ステートレス ファイアウォールになるように設計されています。
この記事では、カーネル 2.4 以降に登場した iptables ファイアウォールに焦点を当てます。
iptables ファイアウォールを使用すると、特定のパケットの処理方法をカーネルに指示するポリシーまたは順序付けされたルール セットを作成できます。カーネルには Netfilter フレームワークがあります。 Netfilter は、iptables ファイアウォールのフレームワークでもあり、プロジェクト名でもあります。フレームワークとして、Netfilter を使用すると、パケット機能を操作するための iptables フックを設計できます。一言で言えば、iptables は Netfilter フレームワークに依存して、パケット データのフィルタリングなどの機能を構築します。
各 iptables ルールはテーブル内のチェーンに適用されます。 iptables チェーンは、類似した特性についてパッケージを比較する一連のルールです。テーブル (nat や mangle など) には、さまざまな機能ディレクトリが記述されています。たとえば、マングル テーブルはパッケージ データを変更するために使用されます。したがって、ここではパケット データを変更するための特定のルールが適用され、フィルタ テーブルはパケット データをフィルタリングするため、フィルタリング ルールが適用されます。
iptables ルールには一致セットと、ルールに準拠するためにパケットをどのように処理するかを iptables に指示するドロップや拒否などのターゲットがあります。したがって、ターゲットと一致セットがなければ、iptables はパケットを効率的に処理できません。パケットがルールに一致する場合、ターゲットは実行される特定のアクションを指します。一方、iptables がパケットを処理するには、各パケットが一致する必要があります。
iptables ファイアウォールの仕組みがわかったので、iptables ファイアウォールを使用してスプーフィングされたアドレスを検出し、拒否または削除する方法を見てみましょう。
セキュリティ エンジニアとして、リモートのスプーフィングされたアドレスに対処するとき、私が最初に行うステップは、カーネルで送信元アドレスの検証を有効にすることです。
送信元アドレス検証は、ネットワークから来たふりをするパケットをドロップするカーネルレベルの機能です。この機能は、リバース パス フィルタ方式を使用して、受信パケットの送信元アドレスが、パケットが到着したインターフェイスを介して到達可能かどうかを確認します。 (LCTT 変換アノテーション: 到着パケットの送信元アドレスは、パケットが到着したネットワーク インターフェイスから逆方向に到達可能である必要があります。この効果は、送信元アドレスと宛先アドレスを逆にするだけで実現できます)
次の簡単なスクリプトを使用して、手動操作なしで送信元アドレスの検証を有効にします:
リーリー上記のスクリプトを実行すると、「送信元アドレス検証を有効にする」というメッセージが表示されるだけで、行は折り返されません。デフォルトのリバース パス フィルタリング値は 0 で、これはソース検証が行われないことを意味します。したがって、2 行目はデフォルト値の 0 を 1 に上書きするだけです。1 は、カーネルが逆パスを確認することによってソース アドレスを検証することを意味します。
最後に、次のコマンドを使用して、DROP または REJECT ターゲットのいずれかを選択することで、リモート ホストからスプーフィングされたアドレスを削除または拒否できます。ただし、セキュリティ上の理由から、DROP ターゲットを使用することをお勧めします。
以下のように、IP アドレスのプレースホルダーを独自の IP アドレスに置き換えます。さらに、REJECT または DROP の両方を同時に使用するのではなく、どちらかを使用することを選択する必要があります。
リーリーこの記事では、iptables ファイアウォールを使用してリモート スプーフィング攻撃を回避する方法に関する基本的な知識のみを提供します。
以上がLinux ファイアウォールを使用してローカルのスプーフィングされたアドレスを隔離する方法を説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。