業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」

AlmaLinux9.7 : SNORT3 インストール

SNORT3

 Snortは、IPネットワーク上でリアルタイムのトラフィック分析とパケットロギングを実行できるオープンソースのネットワーク侵入検知システムです。

「プロトコル分析」「コンテンツ検索」「マッチング」を実行でき、「バッファオーバーフロー」「ステルスポートスキャン」「CGI攻撃」「SMBプローブ」「OSフィンガープリント試行」「セマンティックURL攻撃」「サーバメッセージブロック探査」など、さまざまな攻撃検出に使用できます。

1.事前準備

1.1 必須パッケージのインストール

1.openssl-develのインストール

2.cmakeのインストール

1.2 必要なパッケージのインストール
1.3 LibDAQのインストール
1.4 オプションパッケージのインストール

1.LZMAとUUIDのインストール

2.Hyperscanのインストール

3.Tcmallocのインストール

2. Snort3のインストール

configureの実行

不足パッケージインストール

ビルド、コンパイル、インストール

バージョン確認

テスト実行

ネットワークインターフェースの設定

ネットワーク インタフェースを確認

ネットワーク・インターフェース名はens160である

ネットワークインターフェイスをプロミスキャスモードに設定する。こうすることで、ネットワークデバイスはすべてのネットワークパケットをキャプチャし、検査できるようになる。

設定を確認

ネットワーク・インタフェースのオフロード・ステータスを確認。インタフェースのネッ トワーク・トラフィックを監視する必要がある場合は、オフロードを無効にする必要がある

onになっているので下記コマンドでGRO,LROを無効にする

再度状況を確認する

Snortネットワークインターフェース用のsystemdサービスを作成する

[snort3-nic.service]の内容
[Unit]
Description=Set Snort 3 NIC in promiscuous mode and Disable GRO, LRO on boot
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/ip link set dev ens160 promisc on
ExecStart=/usr/sbin/ethtool -K ens160 gro off lro off
TimeoutStartSec=0
RemainAfterExit=yes

[Install]
WantedBy=default.target

systemd デーモンが変更を適用する

Snort NICサービスのステータスを確認

Snortコミュニティ・ルールセットを追加

1.Snortルール用のフォルダを作成し、SnortのWebサイトからコミュニティルールセットをダウンロードし、所定のルールディレクトリーに配置

2.Snortメイン設定ファイルを編集

[snort.lua]編集内容

●24行目変更
HOME_NET = '192.168.11.0/24'
●28行目変更
EXTERNAL_NET = '!$HOME_NET'
●185行目当たりのips項目の最後に追加
ips =
{
-- use this to enable decoder and inspector alerts
-- enable_builtin_rules = true,

-- use include for rules files; be sure to set your path
-- note that rules files can include other rules files
-- (see also related path vars at the top of snort_defaults.lua)

variables = default_variables,
rules = [[
include /usr/local/snort/etc/snort/rules/snort3-community-rules/snort3-community.rules
]]

}

3.Snortのメインコンフィグレーションの変更をテスト

カスタムルールの追加

1.Snort rulesディレクトリにファイルを作成する

2.Snortメイン設定ファイルを編集
カスタム ルール ファイル ディレクトリをメイン構成に含めるためSnortメイン設定ファイルを編集

[snort.lua]編集内容

●196行目当たりに追加
ips =
{
-- use this to enable decoder and inspector alerts
--enable_builtin_rules = true,

-- use include for rules files; be sure to set your path
-- note that rules files can include other rules files
-- (see also related path vars at the top of snort_defaults.lua)

variables = default_variables,
rules = [[
include /usr/local/snort/etc/snort/rules/local.rules
include /usr/local/snort/etc/snort/rules/snort3-community-rules/snort3-community.rules
]]

}

3.Snortのメインコンフィグレーションの変更をテスト

OpenAppIDエクステンションをインストール

OpenAppIDエクステンションをインストールすると、Snortはアプリケーションレイヤーレベルでネットワーク脅威を検出できるようになります

1.OpenAppIDエクステンションダウンロードと展開

2.解凍したフォルダ(odp)を以下のディレクトリにコピー

3.Snortメイン設定ファイルを編集し、OpenAppIDフォルダの場所を定義

[snort.lua]編集内容

●99行目当たりのappidセクションに追加
appid =
{
-- appid requires this to use appids in rules
--app_detector_dir = 'directory to load appid detectors from'
app_detector_dir = '/usr/local/lib',
log_stats = true,
}
appid_listener =
{
json_logging = true,
file = "/var/log/snort/appid-output.log",
}

--[[
reputation =

4.Snortのメインコンフィグレーションの変更をテスト

すべてのコンフィギュレーションが正しくセットアップされていることを確認する

リモートコンピュータからサーバのIPアドレスにpingコマンドを送信します。これにより、ホストサーバーのコンソールウィンドウにアラートログが表示されます

Snort systemdサービスの設定

1.Snortサービス用のユーザの作成

2.ログフォルダの作成とパーミッションの設定
Snortログ用のディレクトリフォルダを作成し、フォルダパーミッションを設定

3.Systemdサービスファイルの作成

[snort3.service]の内容
[Unit]
Description=Snort3 IDS Daemon Service
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/local/snort/bin/snort -c /usr/local/snort/etc/snort/snort.lua -s 65535 -k none -l /var/log/snort -D -i ens160 -m 0x1b -u snort -g snort
ExecStop=/bin/kill -9 $MAINPID

[Install]
WantedBy=multi-user.target

Snortサービスをリロードして有効にする

Snortサービスを開始

ステータスを確認

Snort IDS ロギング

1.Snort JSONロギングの設定

[snort.lua]編集内容

●259行目当たりの-- 7. configure outputsセクションの最後にalert_jsonを追加

-------------------------------------------------------------------------------------
-- 7. configure outputs
-------------------------------------------------------------------------------------

-- event logging
-- you can enable with defaults from the command line with -A <alert_type>
-- uncomment below to set non-default configs
--alert_csv = { }
--alert_fast = { }
--alert_full = { }
--alert_sfsocket = { }
--alert_syslog = { }
--unified2 = { }

-- packet logging
-- you can enable with defaults from the command line with -L <log_type>
--log_codecs = { }
--log_hext = { }
--log_pcap = { }

-- additional logs
--packet_capture = { }
--file_log = { }
alert_json =
{
file = true,
limit = 50,
fields = 'timestamp msg pkt_num proto pkt_gen pkt_len dir src_addr src_port dst_addr dst_port service rule priority class action b64_data'
}

2.Snortを再起動

3.ログファイルを確認
リモートコンピュータからサーバにpingコマンドを実行する。Snort alert_json.txtファイルに保存されます。

以上でSnort 3のインストールと設定が完了

タイトルとURLをコピーしました