CentOS 8 Stream に Suricata をインストールする方法

紹介

Suricataは、コミュニティが作成したセットやユーザーが定義したシグネチャ(ルールとも呼ばれる)を使用してネットワークトラフィックを調査および処理するネットワークセキュリティモニタリング(NSM)ツールです。Suricataは、不審なパケットやサーバーで実行されているさまざまなサービスへのリクエストを検出した場合にログイベントを生成し、アラートをトリガーし、トラフィックをドロップすることができます。

デフォルトでは、Suricataはサーバーやネットワーク上の不審なトラフィックをスキャンするパッシブ侵入検知システム(IDS)として機能します。さらなる調査のためにアラートを生成および記録します。また、特定のルールに一致するネットワークトラフィックをログに記録し、アラートを発生させ、完全にブロックするアクティブ侵入防止システム(IPS)として構成することもできます。

Suricataをネットワーク内のゲートウェイホストに展開して、他のシステムからのすべての入出力ネットワークトラフィックをスキャンするか、それを個々のマシンでローカルに実行して、どちらのモードでも実行できます。

このチュートリアルでは、Centos 8 StreamにSuricataをインストールし、デフォルトの設定をカスタマイズして必要に応じて適用する方法を学びます。また、Suricataがネットワークトラフィックをスキャンするために使用する既存のシグネチャセット(通常はルールセットと呼ばれる)をダウンロードする方法も学びます。最後に、Suricataが不審なリクエストやデータを検出したときに正常に動作しているかどうかをテストする方法も学びます。

前提条件

Suricataを使用するネットワーク構成と使用方法に応じて、サーバーに必要なCPUとRAMが異なる場合があります。一般的に、検査するトラフィックが多いほど、Suricataに割り当てるリソースが増えます。本番環境では、最低でも2つのCPUと4〜8GBのRAMを割り当てることをお勧めします。そこから、Suricataのパフォーマンスと処理する必要のあるトラフィック量に応じてリソースをスケーリングできます。

Suricataを実行しているサーバーを保護するためにSuricataを使用する場合は、以下が必要です:

  • 2つ以上のCPU、sudoノンルートユーザー、有効なファイアウォールを備えた1台のCentos 8 Streamサーバー。これを設定するには、当社のCentOS Linux 8での初期サーバー設定チュートリアルに従うことができます。

それ以外の場合、複数のサーバーを監視および保護するためのゲートウェイホストでSuricataを使用する場合は、ホストのネットワーキングが正しく構成されていることを確認する必要があります。

DigitalOceanを使用している場合は、ドロップレットをVPCゲートウェイとして構成する方法ガイドに従うことができます。これらの手順は、ほとんどのCentOS、Fedora、および他のRedHat派生サーバーでも機能するはずです。

ステップ1 — Suricataのインストール

Suricataをインストールするには、まず、CentOSシステムにOpen Information Security Foundation(OISF)のソフトウェアリポジトリ情報を追加する必要があります。これには、dnf copr enableコマンドを使用します。また、Extra Packages for Enterprise Linux(EPEL)リポジトリも追加する必要があります。

次に、dnfパッケージツールのCommunity Projects(copr)サブコマンドを有効にするには、次のコマンドを実行します:

  1. sudo dnf install 'dnf-command(copr)'

追加の依存関係のインストールと、CentOS LinuxディストリビューションのGPGキーの受け入れが求められます。yを押して、ENTERを押して、coprパッケージのインストールを完了します。

次に、次のコマンドを実行して、OISFリポジトリをシステムに追加し、利用可能なパッケージのリストを更新します:

  1. sudo dnf copr enable @oisf/suricata-6.0

リポジトリを追加するかどうかの確認が求められたら、yENTERを押して確認します。

次に、Suricataで必要な追加の依存関係パッケージを利用できるようにするために、epel-releaseパッケージを追加します:

  1. sudo dnf install epel-release

GPGキーをインポートするかどうかの確認が求められたら、yENTERを押して受け入れます。

必要なソフトウェアリポジトリが有効になったので、dnfコマンドを使用してsuricataパッケージをインストールできます。

  1. sudo dnf install suricata

OISFリポジトリのGPGキーを追加するようにプロンプトが表示されたら、yを押してENTERを押します。パッケージとその依存関係が今ダウンロードされ、インストールされます。

次に、suricata.serviceを有効にして、システムが再起動するときに実行されるようにします。それを有効にするにはsystemctlコマンドを使用します:

  1. sudo systemctl enable suricata.service

次のような出力を受け取るはずです。これは、サービスが有効になっていることを示しています:

Output
Created symlink /etc/systemd/system/multi-user.target.wants/suricata.service → /usr/lib/systemd/system/suricata.service.

このチュートリアルの次のセクションに進む前に、Suricataの設定方法を説明するために、サービスをsystemctlを使用して停止します:

  1. sudo systemctl stop suricata.service

Suricataを停止することで、構成ファイルを編集してテストする際に行った変更が、Suricataが再起動したときに検証され、ロードされることが保証されます。

ステップ2 — 初めてのSuricataの設定

OISFリポジトリからのSuricataパッケージには、さまざまなユースケースをカバーする設定ファイルが付属しています。SuricataのデフォルトモードはIDSモードであり、トラフィックはドロップされず、ログのみが記録されます。Suricataを学ぶにつれて、このモードをデフォルトに設定したままにしておくことは良い考えです。Suricataを設定し、環境に統合し、警告を受けるトラフィックの種類を把握したら、IPSモードを有効にすることができます。

ただし、デフォルトの設定には、環境やニーズに応じて変更する必要がある設定がいくつかあります。

(オプション)コミュニティフローIDの有効化

Suricataは、JSON出力にコミュニティIDフィールドを含めることができ、個々のイベントレコードを他のツールが生成したデータセットのレコードと照合しやすくなります。

SuricataをZeekElasticsearchなどの他のツールと共に使用する予定がある場合、今コミュニティIDを追加することをお勧めします。

このオプションを有効にするには、/etc/suricata/suricata.yamlviまたはお好みのエディタで開きます:

  1. sudo vi /etc/suricata/suricata.yaml

120行目を見つけてください、そこには# Community Flow IDと記載されています。もしviを使用している場合は120ggと入力して直接その行へ移動します。その行の下にcommunity-idキーがあります。これをtrueに設定して機能を有効にします:

/etc/suricata/suricata.yaml
. . .
      # Community Flow ID
      # EVEレコードに'community_id'フィールドを追加します。これは、
      # レコードに予測可能なフローIDを与え、
      # 他のツールの出力、例えばZeek (Bro)との照合を可能にします。
      #
      # 'seed'を取り、センサーやツール間で同じである必要があります
      # IDを予測しにくくするためです。

      # コミュニティID機能の有効化/無効化。
      community-id: true
. . .

今、イベントを調査すると、1:S+3BA2UmrHK0Pk+u3XH78GAFTtQ=のようなIDが付いています。これを使用して、異なるNMSツール間でレコードを関連付けることができます。

/etc/suricata/suricata.yamlファイルを保存して閉じます。もしviを使用している場合は、ESCを押してから:x、そしてENTERを押してファイルを保存して終了します。

使用するネットワークインターフェースの決定

Suricataがトラフィックを検査するデフォルトのネットワークインターフェースまたはインターフェースをオーバーライドする必要がある場合があります。OISF Suricataパッケージに付属の設定ファイルは、デフォルトでeth0というデバイス上のトラフィックを検査するようになっています。システムが異なるデフォルトのネットワークインターフェースを使用している場合、または複数のインターフェースでトラフィックを検査したい場合は、この値を変更する必要があります。

デフォルトのネットワークインターフェースのデバイス名を特定するには、次のようにipコマンドを使用できます。

  1. ip -p -j route show default

-pフラグは出力をより読みやすい形式に整形し、-jフラグは出力をJSON形式で表示します。

次のような出力が表示されます。

Output
[ { "dst": "default", "gateway": "203.0.113.254", "dev": "eth0", "protocol": "static", "metric": 100, "flags": [ ] } ]

devラインはデフォルトのデバイスを示しています。この例の出力では、デバイスはハイライトされたeth0インターフェースです。お使いの出力にはens...またはeno...のようなデバイス名が表示される場合があります。どんな名前であれ、それをメモしてください。

これで、Suricataの設定を編集し、インターフェース名を確認または変更できます。お好みのエディタ(viなど)を使用して/etc/suricata/suricata.yaml設定ファイルを開きます。

  1. sudo vi /etc/suricata/suricata.yaml

ファイルをスクロールして、おおよそ580行目にaf-packet:と書かれた行が表示されるまで進みます。もしviを使用している場合は、580ggを入力して直接その行に移動することもできます。その行の下には、Suricataがトラフィックを検査するために使用するデフォルトのインターフェースがあります。次に示すハイライトされた例のように、その行をお使いのインターフェースに合わせて編集します:

/etc/suriata/suricata.yaml
# Linux高速キャプチャサポート
af-packet:
  - interface: eth0
    # 受信スレッドの数。「auto」はコア数を使用します
    #threads: auto
    # デフォルトのclusterid。AF_PACKETはフローに基づいてパケットを負荷分散します
    cluster-id: 99
. . .

トラフィックを追加のインターフェースで検査する場合は、- interface: eth...のような追加のYAMLオブジェクトを追加できます。たとえば、enp0s1というデバイスを追加するには、af-packetセクションの末尾までスクロールして、おおよそ650行目付近に移動します。新しいインターフェースを追加するには、次のハイライトされた例のように、- interface: defaultセクションの前に挿入します。

/ec/suricata/suricata.yaml
    # eBPFおよびXDP設定、バイパス、フィルタリング、ロードバランシングを含む設定方法については、
    # doc/userguide/capture-hardware/ebpf-xdp.rst を参照してください。

  - interface: enp0s1
cluster-id: 98

  - interface: default
    #threads: auto
    #use-mmap: no
    #tpacket-v3: yes

- interfaceオブジェクトに固有のcluster-id値を選択してください。

エディターを開いたまま次のセクションに進み、ライブルールのリローディングを設定してください。その設定を有効にしたくない場合は、/etc/suricata/suricata.yamlファイルを保存して閉じることができます。もしviを使用している場合は、ESCを押し、その後:xと入力してENTERを押すことで保存して終了します。

ライブルールリローディングの設定

Suricataはライブルールリローディングをサポートしており、これにより、実行中のSuricataプロセスを再起動することなくルールの追加、削除、編集が可能です。ライブリロードオプションを有効にするためには、設定ファイルの最下部に次の行を追加してください:

/etc/suricata/suricata.yaml
. . .

detect-engine:
  - rule-reload: true

この設定を行うことで、実行中のプロセスにSIGUSR2システムシグナルを送信すると、Suricataは変更されたルールをメモリに再読み込みします。

A command like the following will notify the Suricata process to reload its rulesets, without restarting the process:

  1. sudo kill -usr2 $(pidof suricata)

コマンドの $(pidof suricata) 部分は サブシェルを呼び出し、実行中の Suricata デーモンのプロセス ID を検索します。コマンドの始めの sudo kill -usr2 部分は、kill ユーティリティを使用して、サブシェルによって報告されたプロセス ID に SIGUSR2 シグナルを送信します。

このコマンドは、suricata-update を実行するたびや、独自のカスタムルールを追加または編集する場合にいつでも使用できます。

/etc/suricata/suricata.yaml ファイルを保存して閉じます。 vi を使用している場合は、ESC:x、そして ENTER を押して確認します。

ステップ 3 — Suricata ルールセットの更新

このチュートリアルのこの時点で、Suricata を起動すると、以下のような警告メッセージがログに表示され、ロードされたルールがないことが通知されます:

Output
<Warning> - [ERRCODE: SC_ERR_NO_RULES(42)] - No rule files match the pattern /var/lib/suricata/rules/suricata.rules

デフォルトでは、Suricata パッケージには限られた検出ルールが含まれています(/etc/suricata/rules ディレクトリにあります)。したがって、この時点で Suricata を起動すると、悪意のあるトラフィックの検出が制限されます。

Suricata には、外部プロバイダからルールセットを取得するための suricata-update というツールが含まれています。次のように実行して、Suricata サーバー用の最新のルールセットをダウンロードします:

  1. sudo suricata-update

以下のような出力が表示されるはずです:

Output
19/10/2021 -- 19:31:03 - <Info> -- Using data-directory /var/lib/suricata. 19/10/2021 -- 19:31:03 - <Info> -- Using Suricata configuration /etc/suricata/suricata.yaml 19/10/2021 -- 19:31:03 - <Info> -- Using /usr/share/suricata/rules for Suricata provided rules. . . . 19/10/2021 -- 19:31:03 - <Info> -- No sources configured, will use Emerging Threats Open 19/10/2021 -- 19:31:03 - <Info> -- Fetching https://rules.emergingthreats.net/open/suricata-6.0.3/emerging.rules.tar.gz. 100% - 3062850/3062850 . . . 19/10/2021 -- 19:31:06 - <Info> -- Writing rules to /var/lib/suricata/rules/suricata.rules: total: 31011; enabled: 23649; added: 31011; removed 0; modified: 0 19/10/2021 -- 19:31:07 - <Info> -- Writing /var/lib/suricata/rules/classification.config 19/10/2021 -- 19:31:07 - <Info> -- Testing with suricata -T. 19/10/2021 -- 19:31:32 - <Info> -- Done.

強調された行は、suricata-update が無料のEmerging Threats ET Open Rulesを取得し、それらをSuricataの/var/lib/suricata/rules/suricata.rulesファイルに保存したことを示しています。 また、この例では、処理されたルールの数を示しており、そのうち31011が追加され、そのうち23649が有効になっています。

ルールセットプロバイダーの追加

suricata-updateツールは、さまざまな無料および商用のルールセットプロバイダーからルールを取得できます。 すでに追加したET Openセットのような一部のルールセットは無料で利用できますが、他のものは有料のサブスクリプションが必要です。

list-sourcesフラグをsuricata-updateに使用して、デフォルトのルールプロバイダーのセットをリストできます。 たとえば、次のようにします:

  1. sudo suricata-update list-sources

以下のようなソースのリストが表示されます:

Output
. . . 19/10/2021 -- 19:27:34 - <Info> -- Adding all sources 19/10/2021 -- 19:27:34 - <Info> -- Saved /var/lib/suricata/update/cache/index.yaml Name: et/open Vendor: Proofpoint Summary: Emerging Threats Open Ruleset License: MIT . . .

たとえば、tgreen/huntingルールセットを含めたい場合は、次のコマンドを使用して有効にできます:

  1. sudo suricata-update enable-source tgreen/hunting

その後、suricata-updateを再実行すると、新しいルールセットが追加されます。、既存のET Openルールおよびダウンロードしたその他のルールに追加されます。

ステップ4 — Suricataの設定の検証

Suricataの設定ファイルを編集して、オプションのCommunity IDを含め、デフォルトのネットワークインターフェースを指定し、ライブルールのリロードを有効にしたので、設定をテストするのは良い考えです。

Suricataには、設定ファイルと含まれているルールの妥当性をチェックする組み込みのテストモードがあります。前のセクションでの変更を、Suricataをテストモードで実行するために-Tフラグを使用して検証します。-vフラグは追加情報を出力し、-cフラグはSuricataが設定ファイルを見つける場所を指定します。

  1. sudo suricata -T -c /etc/suricata/suricata.yaml -v

テストには、Suricataに割り当てられたCPUの量と追加したルールの数に応じて、時間がかかる場合があります。完了するまで1〜2分お待ちください。

デフォルトのET Openルールセットでは、次のような出力が表示されるはずです:

Output
21/10/2021 -- 15:00:40 - <Info> - Running suricata under test mode 21/10/2021 -- 15:00:40 - <Notice> - This is Suricata version 6.0.3 RELEASE running in SYSTEM mode 21/10/2021 -- 15:00:40 - <Info> - CPUs/cores online: 2 21/10/2021 -- 15:00:40 - <Info> - fast output device (regular) initialized: fast.log 21/10/2021 -- 15:00:40 - <Info> - eve-log output device (regular) initialized: eve.json 21/10/2021 -- 15:00:40 - <Info> - stats output device (regular) initialized: stats.log 21/10/2021 -- 15:00:46 - <Info> - 1 rule files processed. 23879 rules successfully loaded, 0 rules failed 21/10/2021 -- 15:00:46 - <Info> - Threshold config parsed: 0 rule(s) found 21/10/2021 -- 15:00:47 - <Info> - 23882 signatures processed. 1183 are IP-only rules, 4043 are inspecting packet payload, 18453 inspect application layer, 107 are decoder event only 21/10/2021 -- 15:01:13 - <Notice> - Configuration provided was successfully loaded. Exiting. 21/10/2021 -- 15:01:13 - <Info> - cleaning up signature grouping structure... complete

設定ファイルにエラーがある場合、テストモードは特定のエラーコードとメッセージを生成し、トラブルシューティングに役立ちます。たとえば、存在しないルールファイルtest.rulesを含めると、次のようなエラーが生成されます:

Output
21/10/2021 -- 15:10:15 - <Info> - Running suricata under test mode 21/10/2021 -- 15:10:15 - <Notice> - This is Suricata version 6.0.3 RELEASE running in SYSTEM mode 21/10/2021 -- 15:10:15 - <Info> - CPUs/cores online: 2 21/10/2021 -- 15:10:15 - <Info> - eve-log output device (regular) initialized: eve.json 21/10/2021 -- 15:10:15 - <Info> - stats output device (regular) initialized: stats.log 21/10/2021 -- 15:10:21 - <Warning> - [ERRCODE: SC_ERR_NO_RULES(42)] - No rule files match the pattern /var/lib/suricata/rules/test.rules

そのエラーを使用して、正しいパスを含めるか、無効な変数や設定オプションを修正できます。

Suricataのテストモードの実行が正常に完了したら、次のステップに進むことができます。それは、Suricataをデーモンモードで起動することです。

ステップ5 — Suricataの実行

有効なSuricataの設定とルールセットを持っているので、Suricataサーバを起動することができます。次のsystemctlコマンドを実行してください:

  1. sudo systemctl start suricata.service

サービスの状態を確認するには、systemctl statusコマンドを使用できます:

  1. sudo systemctl status suricata.service

以下のような出力が表示されるはずです:

Output
● suricata.service - Suricata Intrusion Detection Service Loaded: loaded (/usr/lib/systemd/system/suricata.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-10-21 18:22:56 UTC; 1min 57s ago Docs: man:suricata(1) Process: 24588 ExecStartPre=/bin/rm -f /var/run/suricata.pid (code=exited, status=0/SUCCESS) Main PID: 24590 (Suricata-Main) Tasks: 1 (limit: 23473) Memory: 80.2M CGroup: /system.slice/suricata.service └─24590 /sbin/suricata -c /etc/suricata/suricata.yaml --pidfile /var/run/suricata.pid -i eth0 --user suricata Oct 21 18:22:56 suricata systemd[1]: Starting Suricata Intrusion Detection Service.. Oct 21 18:22:56 suricata systemd[1]: Started Suricata Intrusion Detection Service. . . .

テストモードコマンドと同様に、Suricataがすべてのルールをロードして解析するには1〜2分かかります。Suricataのログで特定のメッセージが表示されるまでtailコマンドを使用して待機できます:

  1. sudo tail -f /var/log/suricata/suricata.log

いくつかの行の出力が表示され、ターミナルがSuricataの読み込み中に停止しているように見える場合があります。Suricataが実行され、トラフィックを検査する準備が整ったことを示す行が表示されるまで出力を待ち続けてください:

Output
19/10/2021 -- 19:22:39 - <Info> - All AFP capture threads are running.

この行は、Suricataが実行され、トラフィックを検査する準備が整ったことを示しています。 tailコマンドをCTRL+Cを使用して終了することができます。

Suricataが実行されていることを確認したので、このチュートリアルの次のステップは、Suricataがアラートを生成するように設計されたテストURLへのリクエストを検出するかどうかを確認することです。

ステップ6 — Suricataルールのテスト

ダウンロードしたET Openルールセットには30000以上のルールが含まれています。Suricataルールの動作や構築方法の詳細な説明は、この入門チュートリアルの範囲外です。このシリーズの後続のチュートリアルで、ルールの動作や独自のルールの作成方法について説明します。

このチュートリアルの目的では、生成した構成でSuricataが不審なトラフィックを検出しているかどうかをテストすることが十分です。Suricataクイックスタートでは、curlコマンドを使用してET Openルールの番号2100498をテストすることを推奨しています。

次のコマンドを実行して、Suricataのアラートルールに一致する応答を返すHTTPリクエストを生成します。

  1. curl http://testmynids.org/uid/index.html

curlコマンドは、以下のような応答を出力します。

Output
uid=0(root) gid=0(root) groups=0(root)

この例の応答データは、Webシェルを介して侵害されたリモートシステムで実行される可能性のあるidのようなコマンドの出力を模倣して、アラートをトリガーするように設計されています。

これで、Suricataのログを対応するアラートを確認できます。デフォルトのSuricata構成で有効になっている2つのログがあります。1つ目は/var/log/suricata/fast.logにあり、2つ目は/var/log/suricata/eve.logにある機械可読ログです。

/var/log/suricata/fast.logを調査します。

/var/log/suricata/fast.log内のログエントリを確認するには、grepコマンドを使用します。クイックスタートドキュメントからの2100498ルール識別子を使用して、次のコマンドを使用してそれに一致するエントリを検索します:

  1. grep 2100498 /var/log/suricata/fast.log

リクエストがIPv6を使用している場合、次のような出力が表示されます。ここで2001:DB8::1はシステムのパブリックIPv6アドレスです:

Output
10/21/2021-18:35:54.950106 [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 2600:9000:2000:4400:0018:30b3:e400:93a1:80 -> 2001:DB8::1:34628

リクエストがIPv4を使用している場合、ログに次のようなメッセージが表示されます。ここで203.0.113.1はシステムのパブリックIPv4アドレスです:

Output
10/21/2021-18:35:57.247239 [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 204.246.178.81:80 -> 203.0.113.1:36364

出力のハイライト表示された2100498値に注意してください。これはSuricataがルールを識別するために使用するシグネチャID (sid) です。

/var/log/suricata/eve.logを調査します。

Suricataは、/var/log/suricata/eve.log(EVEログと呼ばれる)にイベントをログとして記録し、JSONを使用してエントリをフォーマットします。

Suricataのドキュメントでは、このファイル内のエントリを読み取り、フィルタリングするためにjqユーティリティの使用を推奨しています。以下のdnfコマンドを使用して、システムにjqがない場合はインストールしてください:

  1. sudo dnf install jq

jqがインストールされている場合は、次のコマンドを使用してEVEログ内のイベントをフィルタリングできます:

  1. jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json

このコマンドは、各JSONエントリを調べ、alertオブジェクトがあり、signature_idキーが検索している2100498の値と一致する場合にそれを出力します。出力は次のようになります:

Output
{ "timestamp": "2021-10-21T19:42:47.368856+0000", "flow_id": 775889108832281, "in_iface": "eth0", "event_type": "alert", "src_ip": "203.0.113.1", "src_port": 80, "dest_ip": "147.182.148.159", "dest_port": 38920, "proto": "TCP", "community_id": "1:vuSfAFyy7oUq0LQC5+KNTBSuPxg=", "alert": { "action": "allowed", "gid": 1, "signature_id": 2100498, "rev": 7, "signature": "GPL ATTACK_RESPONSE id check returned root", "category": "Potentially Bad Traffic", . . . }

検索しているキーであるjqが検索しているキーです。2100498の値に一致するsignature_id行をハイライト表示してください。また、JSON出力の"community_id": "1:vuSfAFyy7oUq0LQC5+KNTBSuPxg=",行をハイライト表示してください。このキーは、Suricataの構成ファイルで有効にした生成されたコミュニティフロー識別子です。

各アラートは、ユニークなコミュニティフロー識別子を生成します。他のNMSツールも同じ識別子を生成して、Suricataアラートを他のツールの出力と相互参照できるようにすることができます。

A matching log entry in either log file means that Suricata successfully inspected the network traffic, matched it against a detection rule, and generated an alert for subsequent analysis or logging. A future tutorial in this series will explore how to send Suricata alerts to a Security Information Event Management (SIEM) system for further processing.

ステップ7 — Suricataアラートの処理

アラートを設定してテストしたら、どのように処理するかを選択できます。一部のユースケースでは、監査目的でアラートをログに記録することで十分です。または、繰り返しアラートを生成するシステムからのトラフィックをブロックするために、より積極的なアプローチを取ることを好む場合もあります。

Suricataが生成するアラートに基づいてトラフィックをブロックしたい場合、一つのアプローチはEVEログからエントリを使用して、システムへのアクセスを制限するためのファイアウォールルールを追加することです。 jqツールを使用してアラートから特定のフィールドを抽出し、次にUFWまたはIPtablesルールを追加してリクエストをブロックできます。

再度述べますが、この例は意図的に作成されたリクエストとレスポンスデータを使用した仮想的なシナリオです。どのトラフィックが正当であり、どれがブロックされるべきかを判断するには、環境がアクセスできるシステムとプロトコルに関する知識が不可欠です。

結論

このチュートリアルでは、SuricataをOISFソフトウェアリポジトリからインストールしました。この方法でSuricataをインストールすると、新しいバージョンのSuricataがリリースされるたびに更新を受け取ることができます。Suricataをインストールした後は、他のセキュリティツールとの使用のためにコミュニティフローIDを追加するためにデフォルトの設定を編集しました。また、ライブルールのリロードを有効にし、初期セットのルールをダウンロードしました。

Suricataの構成を検証した後、プロセスを開始し、いくつかのテストHTTPトラフィックを生成しました。テストしているルールに対応するアラートが含まれていることを確認するために、デフォルトのログの両方を調べました。

Suricataの詳細については、公式のSuricataサイトを参照してください。このチュートリアルで構成した構成オプションの詳細については、Suricataユーザーガイドを参照してください。

Suricataをインストールして構成したので、このシリーズの次のチュートリアルに進むことができます。Suricataシグネチャの理解ここでは、独自のカスタムSuricataルールを作成する方法について探求します。無効なTCP/IPパケット、DNSクエリの内容、HTTPリクエストおよびレスポンス、そしてTLSハンドシェイクなどの基準に基づいて、アラートを作成するさまざまな方法や、トラフィックを完全にドロップする方法さえ学びます。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-suricata-on-centos-8-stream