GNU/Linux >> Linux の 問題 >  >> Linux

Linuxファイアウォールを使用してローカルのなりすましアドレスをブロックする方法

攻撃者は、侵入検知および防止システムによって保護されているリモートネットワークにも侵入するための高度な方法を見つけています。 IDS / IPSは、ネットワークを乗っ取ろうと決心したハッカーによる攻撃を阻止または最小限に抑えることはできません。不適切な構成により、攻撃者は実装されているすべてのネットワークセキュリティ対策を回避できます。

この記事では、セキュリティエンジニアまたはシステム管理者がこれらの攻撃を防ぐ方法について説明します。

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

ほとんどすべてのLinuxディストリビューションには、Linuxホストで実行されているプロセスとアプリケーションを保護するためのファイアウォールが組み込まれています。ほとんどのファイアウォールはIDS/IPSソリューションとして設計されており、その主な目的は、悪意のあるパケットがネットワークにアクセスするのを検出して防止することです。

Linuxファイアウォールには通常、iptablesとipchainsの2つのインターフェースが付属しています。ほとんどの人は、これらのインターフェースを「iptablesファイアウォール」または「ipchainsファイアウォール」と呼んでいます。どちらのインターフェースもパケットフィルターとして設計されています。 Iptablesはステートフルファイアウォールとして機能し、以前のパケットに基づいて決定を下します。 Ipchainsは、以前のパケットに基づいて決定を下しません。したがって、ステートレスファイアウォールとして設計されています。

この記事では、カーネルバージョン2.4以降に付属するiptablesファイアウォールに焦点を当てます。

iptablesファイアウォールを使用すると、特定のクラスのパケットを処理する方法をカーネルに伝達するポリシーまたは順序付けられたルールのセットを作成できます。カーネルの中にはNetfilterフレームワークがあります。 Netfilterは、iptablesファイアウォールのフレームワークとプロジェクト名の両方です。フレームワークとして、Netfilterは、iptablesがパケットに対して操作を実行するように設計された関数をフックできるようにします。一言で言えば、iptablesはNetfilterフレームワークに依存して、パケットデータのフィルタリングなどのファイアウォール機能を構築します。

各iptablesルールは、テーブル内のチェーンに適用されます。 iptablesチェーン は、同様の特性を持つパケットと比較されるルールのコレクションですが、テーブル(natやmangleなど)はさまざまなカテゴリの機能を記述します。たとえば、マングルテーブルはパケットデータを変更します。したがって、パケットデータを変更する特殊なルールが適用され、フィルタテーブルがパケットデータをフィルタリングするため、フィルタリングルールがフィルタテーブルに適用されます。

Iptablesルールには、Dropなどのターゲットとともに一連の一致があります またはDeny 、ルールに準拠したパケットをどう処理するかをiptablesに指示します。したがって、ターゲットと一連の一致がないと、iptablesはパケットを効果的に処理できません。ターゲットとは、パケットがルールに一致した場合に実行される特定のアクションを指します。一方、一致は、iptablesがそれらを処理するために、すべてのパケットによって満たされる必要があります。

iptablesファイアウォールがどのように動作するかを理解したので、iptablesファイアウォールを使用して、なりすましアドレスを検出して拒否またはドロップする方法を見てみましょう。

送信元アドレスの確認をオンにする

セキュリティエンジニアとして、リモートホストからのなりすましアドレスを処理するときの最初のステップは、カーネルで送信元アドレスの検証をオンにすることです。

送信元アドレスの検証は、ネットワークから送信されたように見せかけるパケットをドロップするカーネルレベルの機能です。リバースパスフィルタ方式を使用して、受信したパケットの送信元が、受信したインターフェイスを介して到達可能かどうかを確認します。

送信元アドレスの検証を有効にするには、手動で行うのではなく、以下の簡単なシェルスクリプトを利用します。

#!/bin/sh
#author’s name: Michael K Aboagye
#purpose of program: to enable reverse path filtering
#date: 7/02/18
#displays “enabling source address verification” on the screen
echo -n "Enabling source address verification…"
#Overwrites the value 0 to 1 to enable source address verification
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo "completed"

上記のスクリプトを実行すると、メッセージEnabling source address verificationが表示されます。 新しい行を追加せずに。リバースパスフィルターのデフォルト値は0.0です。これは、ソース検証がないことを意味します。したがって、2行目はデフォルト値の0から1を単純に上書きします。1は、カーネルがリバースパスを確認することによってソースを検証することを意味します。

最後に、次のコマンドを使用して、これらのターゲットのいずれかを選択することにより、リモートホストからのなりすましアドレスを削除または拒否できます。DROP またはREJECT 。ただし、DROPを使用することをお勧めします セキュリティ上の理由から。

以下に示すように、「IPアドレス」プレースホルダーを独自のIPアドレスに置き換えます。また、REJECTのいずれかを使用することを選択する必要があります またはDROP; 2つのターゲットは連携しません。

   iptables -A INPUT -i internal_interface -s IP_address -j REJECT / DROP  

    iptables -A INPUT -i internal_interface -s 192.168.0.0/16  -j REJECT/ DROP

この記事では、iptablesファイアウォールを使用してリモートホストからのなりすまし攻撃を防ぐ方法の基本のみを説明します。


Linux
  1. Linux – LinuxでIptablesを使用して、LAN上の特定のユーザーのインターネットアクセスを制限する方法は?

  2. LinuxでFirewalld、IPテーブル、UFWを使用してポートとIPアドレスを許可またはブロックするにはどうすればよいですか?

  3. Cを使用してLinuxでCPUの数を取得するには?

  1. Linux で iptables を使用して LAN 上の特定のユーザーのインターネット アクセスを制限する方法

  2. Linux IPTables を使用して、トレントまたは P2P プロトコルをブロックする方法は?

  3. ポートに接続しようとしている IP アドレスをログに記録する方法は?

  1. LinuxサーバーでIPアドレスをブロックする方法

  2. LinuxサーバーでIPアドレスをブロックする方法

  3. コマンドラインを使用してLinuxでtar.gzファイルを抽出する方法