Linux に Snort IDS をインストールしてセットアップしてネットワークを保護する方法

ネットワーク セキュリティと保護の向上を真剣に考えている場合は、ネットワーク境界を強化し、不要なネットワーク トラフィックを回避するために、侵入検知および防御システム (IPS または IDS) をインストールすることが必須です。

Snort は、個人使用およびオープンソースであれば無料の人気のある IPS/IDS ソリューションです。ネットワークをサイバー攻撃から守るために、Linux に Snort をインストールして設定する方法を学びましょう。確認する 携帯電話があなたを監視するとどうなりますか?

スノートとは何ですか?

Snort は、オープン ソースのネットワーク侵入検知および防御 (NIDS/IPS) アプリケーションであり、その名前が示すように、ネットワークに注入された悪意のあるパケットを検出してドロップするルールとフィルターを適用することで、ネットワーク境界のセキュリティを確保します。

Snort を使用すると、高度なネットワーク トラフィックのログ記録、パケット スニッフィングと分析を実行し、望ましくない潜在的な悪意のあるトラフィックからネットワークを保護する強力な侵入防御システムをセットアップできます。

Snort をインストールするための基本要件

Snort をインストールする前に、いくつかの初期設定を行う必要があります。これには主に、システムの更新とアップグレード、および Snort が適切に機能するために必要な依存関係のインストールが含まれます。

まずはシステムの更新とアップグレードから始めます。

Ubuntu および Debian ベースの Linux ディストリビューションの場合:

sudo apt update && apt upgrade -y

Arch Linux およびそのベースのディストリビューションの場合:

sudo pacman -Syu

RHEL と Fedora の場合:

sudo dnfアップグレード

システムがアップグレードされたら、Snort に必要な依存関係のインストールを続けます。実行する必要があるコマンドは次のとおりです。

Ubuntu と Debian では、次を実行します。

sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool libjemalloc-dev libpcre++-dev

Arch Linux で次を実行します。

sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pullporkxz zlib cmake pkgconf

RHEL および Fedora の場合は、次のコマンドを実行します。

sudo dnf install gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y

さらに、Snort が正しく動作するためにデータ収集ライブラリである LibDAQ を手動でインストールし、ビルド ファイルを生成するために gperftools も手動でインストールする必要があります。

まず、コマンドを使用して公式WebサイトからLibDAQソースファイルをダウンロードします。 wgetの。次に、zip ファイルを解凍し、cd でディレクトリに移動します。ディレクトリ内でブート スクリプトと構成スクリプトを実行し、次のコマンドでファイルの準備を続けます。 make installを.

wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz tar -xzvf lib* cd lib* ./bootstrap ./configure make sudo make install

LibDAQ がインストールされたら、最後の依存関係である gperftools をインストールする必要があります。まず、GitHub リポジトリからソース ファイルを取得します。ファイルを抽出し、ディレクトリに移動して、構成スクリプトを実行します。最後に、コマンドを使用してパッケージをインストールします make installを.

wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz tar -xvzf gper* && cd gper ./configure make sudo make install

これらの依存関係がインストールされたら、次の手順に進んで Snort をインストールできます。

Linux 上のソースから Snort をインストールする

初期設定が完了したら、実際のアプリのインストールに集中できます。ソースからビルドするので、最初に必要なビルド ファイルを入手します。

wget コマンドを使用するか、公式ダウンロード ページからファイルを手動でダウンロードします。

https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz をダウンロードしてください

ダウンロードする: 鼻を鳴らす

ビルド ファイルを含む zip ファイルのダウンロードが完了したら、次のコマンドを使用して解凍します。 tar:

tar -xzvf snort*

抽出したフォルダーに移動し、構成スクリプトを実行して、次のコマンドを使用します。 make ファイルを準備するには、最後に次を使用してインストールします。 make installを:

cd snort* ./configure_cmake.sh — prefix=/usr/local — enable-tcmalloc cd build make sudo make install

これで、Snort がシステムに正常にインストールされます。ただし、完了する必要がある手順がもう 1 つあります。新しいアプリケーションを手動でインストールする場合、インストール ディレクトリと必要なライブラリがシステムのデフォルト パスに自動的に含まれない場合があります。そのため、アプリケーションの起動時にエラーが発生する可能性があります。

この問題を回避するには、次のコマンドを実行する必要があります。 ldconfig。システムの共有ライブラリ キャッシュと、新しくインストールされたライブラリおよびバイナリが同期されます。コマンドを実行します ldconfig root権限またはプレフィックスを使用する場合 sudo:

sudo ldconfig

これで、Snort のインストールに必要な重要な手順をすべて説明しました。インストールを確認するには、フラグを指定して Snort コマンドを実行します。 -V と、バージョン名とその他のデータを返す出力が表示されるはずです。

鼻を鳴らす -V

Snort がインストールされていることを確認したら、次の手順に進み、全機能の IDS/IPS として設定します。

Linux での Snort の初期構成

Snort の効率は、ほぼ完全に、Snort に提供されるルール セットの品質に依存します。

ただし、ルールの設定を開始する前に、Snort で動作するようにネットワーク カードを構成する必要があります。また、デフォルト構成が Snort によってどのように処理されるかをテストする必要もあります。まずはネットワークカードの設定から始めます。

ネットワーク インターフェイスを無差別モードに設定する必要があります。

sudo ip link set dev interface_name promisc on

を使用して エスツール グローバル受信オフロード (GRO) とラージ受信オフロード (LRO) を無効にして、より大きなネットワーク パケットがドロップされないようにします。

sudo ethtool -K インターフェース名 gro オフ lro オフ

デフォルト構成で Snort がどのように動作するかをテストします。

snort -c /usr/local/etc/snort/snort.lua

これにより、システムに Snort が正しくインストールされ、設定されたことを示す正常な出力が返されるはずです。その機能を微調整し、さまざまな構成を試して、ネットワークを保護するための最適なルールのセットを見つけることができるようになりました。

Snort を使用してルールを設定および適用する

基本設定が完了すると、Snort は境界を守る準備が整いました。ご存知のとおり、Snort にはトラフィックの有効性を判断するためのルール セットが必要です。コミュニティが作成した無料のルール セットを Snort 用にいくつか準備しましょう。

Snort は、指定されたディレクトリからルール セットと構成を読み取ります。まず、コマンドを使用します mkdir و touch 、Snort のルールやその他の関連データを保存するための重要なディレクトリをいくつか作成します。

sudo mkdir -p /usr/local/etc/{lists,so_rules,rules} sudo touch /usr/local/etc/rules/local.rules sudo touch /usr/local/etc/lists/default.blocklist

これらのガイドを作成すると、次のコマンドを使用して公式 Web サイトからコミュニティ ルールセットをダウンロードできます。 wgetの:

https://www.snort.org/downloads/community/snort3-community-rules.tar.gz をダウンロードしてください

ルールセットのダウンロードが完了したら、抽出してディレクトリにコピーします。 /usr/local/etc/rules/.

tar -xvzf snort3-com* cd snort3-com* cp * /usr/local/etc/rules/

ルールセットを使用して Snort を実行するには、次のコマンドを実行します。

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i インターフェース名 -s 65535 -k なし

コマンドの解釈:

  1. -c デフォルトの構成ファイルへのパスを指定します。
  2. -R 適用されるルールへのパスを指定します。
  3. -i インターフェースを定義します。
  4. -s snaplen の制限を無視します。
  5. -k チェックサムを無視します。

これにより、構成が検証され、すべてのルール セットが Snort に適用されます。ネットワーク障害を検知すると、コンソール メッセージで警告します。

独自のルールセットを作成して実装したい場合は、次の URL で詳細を学ぶことができます。 公式ドキュメントページ。 確認 Web サイトを保護するための最高の Web アプリケーション ファイアウォール サービス.

Snort を使用したログの設定

デフォルトでは、Snort はログを出力しません。タグを使用して選択する必要があります -L Snort をログ モードで開始するには、ログ ファイルの種類を選択し、 -l Snort がログをダンプするためのログ ディレクトリを設定します。

ログを有効にして Snort を起動するコマンドは次のとおりです。

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i インターフェース名 -s 65535 -k なし -L ファイルタイプ -l /var/log/snort

コマンドの解釈:

  1. -c デフォルトの構成ファイルへのパスを指定します。
  2. -R 適用されるルールへのパスを指定します。
  3. -i インターフェースを定義します。
  4. -s snaplen の制限を無視します。
  5. -k チェックサムを無視します。
  6. -L ログモードを有効にし、ログファイルのタイプを選択します。
  7. 彼は指定します -l レコードの保存パス。

前のコマンドの例では、レジストリ ディレクトリが次のように設定されていることに注意してください。 /var/log/snort。これは推奨される方法ですが、レコードを他の場所に自由に保存できます。

指定したディレクトリから Snort からログ ファイルを読み取ることも、Splunk などの SIEM アプリケーションに渡してさらに分析することもできます。

Snort をデーモン プロセスとして追加し、システムで起動します。

Snort をインストールして設定したとしても、起動時に Snort が実行を開始し、バックグラウンド サーバーとして実行されることを確認する必要があります。これを自動起動システム サービスとして追加すると、Snort がオンラインのときに常に実行され、システムが保護されます。

Linux で Snort を起動するデーモン プロセスを追加する方法は次のとおりです。

  • まずはサービスファイルの作成から始めます systemd 新しい:
/lib/systemd/system/snort.service をタッチします。
  • 任意のテキスト エディタでファイルを開き、次のデータを入力します。ニーズに合わせてタグを変更できます。
[Unit] Description=Snort Daemon After=syslog.target network.target [Service] Type=simple ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -s 65535 -k none -l /var/log/snort -D -L pcap -i ens33 [Install] WantedBy=multi-user.target
  • ファイルを保存して終了します。次に、2 つのコマンドを使用して、 サービス و systemctl 、スクリプトを有効にして開始します。
sudo systemctl enable snort. service sudo snort start

Snort デーモン プロセスが実行されているはずです。コマンドを使用してスクリプトのステータスを確認できます。正の出力が返されるはずです。

systemctl ステータス snort

Snort IDS を使用してネットワークを保護する方法がわかりました。

IDS の導入は良い習慣ですが、これは積極的な対策というよりも受動的な対策です。ネットワークのセキュリティを改善し、確保する最善の方法は、ネットワークを常にテストし、修正する必要がある欠陥を探すことです。

侵入テストは、悪用可能な脆弱性を見つけてパッチを適用するための優れた方法です。閲覧できるようになりました サイバーセキュリティ専門家向けの最高の侵入テスト ツール.

トップボタンに移動