「エアコンの安全な修理・適切なフロン回収」はこちら

Debian10.13 ; SNORT2 , Tripwire インストール

1.SNORT2 インストール

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

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

SNORT3をインストールするには次を参照

1.1 インストール

①必要なライブラリーインストール

②作業ディレクトリー作成

③Daqダウンロード、インストール
Snort Webサイトから、wgetコマンドを使用して最新のDAQソースパッケージをダウンロードします。 新しいソースが利用可能な場合は、コマンドのバージョン番号を置き換えてください

④SNORTのダウンロード、インストール

1.2 ユーザーとフォルダー構造の設定

ルートアクセスなしでSnort を安全に実行するには、新しい特権のないユーザーと、デーモンを実行するための新しいユーザーグループを作成する必要があります

下記ファイル作成

1.3 設定ファイルのセットアップ

すべてのファイルを構成ディレクトリにコピーします。

1.4 コミュニティルールの使用

自由に利用できるコミュニティルールを取得する。

①コミュニティルールを取得し、構成フォルダにコピー

②不要な行を一括してコメントアウト

1.5 登録済みユーザールールの取得

ウェブサイトに無料で登録することで、登録ユーザールールセットをダウンロードできるOinkコードにアクセスできます。

①Oinkcodeを取得
Snortのウェブサイトに登録すると、Oink コードを使用して登録済みユーザールールをダウンロードできます。Oink コードは Snort ユーザーアカウントの詳細にあります。
②登録済みユーザールールをダウンロード
下記の「oinkcode」の箇所を上記で取得したコードに置き換える

③構成ディレクトリにルールを抽出

1.6 ネットワーク・セットおよびルール・セットの構成

①snort.conf を編集

編集内容

45行目 192.168.11.0/24は自サーバーの環境に合わす
Setup the network addresses you are protecting
ipvar HOME_NET 192.168.11.0/24

48行目
Set up the external network addresses. Leave as "any" in most situations
ipvar EXTERNAL_NET !$HOME_NET

104-106行目コメントアウトにして下記追記
Path to your rules files (this can be a relative path)
#var RULE_PATH ../rules
#var SO_RULE_PATH ../so_rules
#var PREPROC_RULE_PATH ../preproc_rules

var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules


113,114行目コメントアウトにして下記追記
Set the absolute path appropriately
#var WHITE_LIST_PATH ../rules
#var BLACK_LIST_PATH ../rules

var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules


Step #6 まで下にスクロールし、次のように snort.log のファイル名でログに記録するように unified2 の出力を設定します。
522行目あたり追記
#unified2
#Recommended for most installs
#output unified2: filename merged.log, limit 128, nostamp, mpls_event_types , vlan_event_types
output unified2: filename snort.log, limit 128

最後に、ファイルの一番下までスクロールして、含まれているルール セットの一覧を見つけます。Snort がカスタム ルールを読み込むようにするには、local.rules のコメントを解除する必要があります。
546行目あたり
include $RULE_PATH/local.rules
コミュニティ ルールを使用している場合は、local.rules 行のすぐ下に追加します。
include $RULE_PATH/community.rules

②設定の検証
パラメーター -T を使用して構成をテストし、テスト・モードを使用可能にします

「ファイルが見つからない」というエラーが出た場合、エラーが出るファイルを/etc/snort/rulesにコピーする
当方の場合次のファイルエラーが出た

invalidエラーが出た場合次のようにする

再度

実行すると次の例のようなメッセージが表示されます

--== Initialization Complete ==--
,,_ -> Snort! <-
o" )~ Version 2.9.20 GRE (Build 82)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014-2022 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.8.1
Using PCRE version: 8.39 2016-06-14
Using ZLIB version: 1.2.11

Rules Engine: SF_SNORT_DETECTION_ENGINE Version 3.2
Preprocessor Object: SF_DCERPC2 Version 1.0
Preprocessor Object: SF_SSLPP Version 1.1
Preprocessor Object: appid Version 1.1
Preprocessor Object: SF_SDF Version 1.1
Preprocessor Object: SF_POP Version 1.0
Preprocessor Object: SF_GTP Version 1.1
Preprocessor Object: SF_FTPTELNET Version 1.2
Preprocessor Object: SF_SIP Version 1.1
Preprocessor Object: SF_IMAP Version 1.0
Preprocessor Object: SF_MODBUS Version 1.1
Preprocessor Object: SF_SMTP Version 1.1
Preprocessor Object: SF_DNS Version 1.1
Preprocessor Object: SF_SSH Version 1.1
Preprocessor Object: SF_DNP3 Version 1.1
Preprocessor Object: SF_REPUTATION Version 1.1
Preprocessor Object: SF_S7COMMPLUS Version 1.0

Total snort Fixed Memory Cost - MaxRss:825912
Snort successfully validated the configuration!
Snort exiting

1.7 構成のテスト

Snort が意図したとおりにアラートをログに記録しているかどうかをテストするには、着信 ICMP 接続に関するカスタム検出ルールアラートを local.rules ファイルに追加します

テスト実行

「eno1」は各自のネットワークインターフェイスに書き換える。
ターミナルをこの状態のままにして、同じネットワーク上にある他のPC(Windows等)からPingを本サーバーに実行すると、Snort を実行しているターミナルに ICMP 呼び出しごとに次のような通知が表示されます

Commencing packet processing (pid=36794)
02/11-14:56:50.751093 [] [1:10000001:1] ICMP test [] [Priority: 0] {ICMP} 192.168.11.22 -> 192.168.11.83
02/11-14:56:50.751128 [] [1:10000001:1] ICMP test [] [Priority: 0] {ICMP} 192.168.11.83 -> 192.168.11.22
02/11-14:56:51.838246 [] [1:10000001:1] ICMP test [] [Priority: 0] {ICMP} 192.168.11.22 -> 192.168.11.83
02/11-14:56:51.838298 [] [1:10000001:1] ICMP test [] [Priority: 0] {ICMP} 192.168.11.83 -> 192.168.11.22
02/11-14:56:52.934644 [] [1:10000001:1] ICMP test [] [Priority: 0] {ICMP} 192.168.11.22 -> 192.168.11.83
02/11-14:56:52.934717 [] [1:10000001:1] ICMP test [] [Priority: 0] {ICMP} 192.168.11.83 -> 192.168.11.22
02/11-14:56:54.037295 [] [1:10000001:1] ICMP test [] [Priority: 0] {ICMP} 192.168.11.22 -> 192.168.11.83
02/11-14:56:54.037343 [] [1:10000001:1] ICMP test [] [Priority: 0] {ICMP} 192.168.11.83 -> 192.168.11.22

Snort は、/var/log/snort/ の下にログにアラートを記録します。ログは、下のコマンドで読み取ることができます

1.8 バックグラウンドで Snortを実行

サービスとしてSnort を実行するため、Snort のスタートアップスクリプトを新規追加する

スクリプト内容
「eno1」は各自環境に合わす

設定反映・起動

2.Tripwireインストール

クラッカーによるLinuxサーバーのファイルの改竄を検知するシステムを導入する。
今回は、ファイル改竄検知システムにホスト型IDS(IDS=Intrusion Detection System)のTripwireを導入する。
Tripwireは、導入時のファイル状態をデータベース化し、そのデータベースとファイルの現状を比較することにより、ファイルの追加/変更/削除を検知する。

2.1 インストールと構成

①サイト キーの作成
Tripwire は、「tw.cfg」tripwire構成ファイルと 「tw.pol」tripwireポリシーファイルをセキュリティで保護するためにサイトパスフレーズを必要とします。指定されたパスフレーズを使用して両方のファイルを暗号化します。 サイトパスフレーズは、単一インスタンスのtripwireに対しても必要です。

②ローカルキーパスフレーズ
tripwireデータベースとレポートファイルの保護にはローカルパスフレーズが必要です。tripwireベースラインデータベースの不正な変更を避けるためにtripwireが使用するローカルキー。

③tripwire構成パス
tripwireの設定は /etc/tripwire/twcfg.txt ファイルに保存されています。暗号化された構成ファイル tw.cfg を生成するために使用されます。

④tripwire ポリシー パス
tripwireは/etc/tripwire/twpol.txtファイルにポリシーを保存します。これは、tripwire で使用される暗号化されたポリシー ファイル tw.pol の生成に使用されます。

⑤サイトキーパスフレーズの入力


再度サイトキーパスフレーズの入力を求められる

⑥ローカールキーパスフレーズの入力


⑦再度ローカールキーパスフレーズの入力を求められる

⑧インストールが進み完了します

2.2 構成ファイルの設定

①トリップワイヤ構成ファイル (twcfg.txt)
トリップワイヤ構成ファイル (twcfg.txt) の詳細を以下の通りです。暗号化されたポリシー ファイル (tw.pol)、サイトキー (site.key)、およびローカルキー (ホスト名ローカル.key) などのパスは以下の通りです。

2.3 キーの作成やデータベース作成等の初期設定

①twcfg.txt編集

② 設定ファイル生成

③ ポリシーを最適化
次のポリシー最適化スクリプトを利用し、ポリシーを最適化する

ポリシー最適化スクリプト内容

④データベース作成

途中でエラーで止まるときは「--verbose」オプションをつけて再実行

進行状況を表示し、エラーで止まるファイルを確認する。当方の環境の場合Snort関連のファイルで止まりました。

止まると予想されるパス、ファイル
/etc/snort/etc
/etc/snort/preproc_rules
/etc/snort/rules
/etc/snort/so_rules
/root/community-rules
上記ファイルに所有権と、権限を与えた後、再度次を実行

2.4 チェックを実行

①テスト用ファイルを作成

②Tripwire の動作確認

成功すると次ような表示が出る

テストファイルを削除しておく

2.5 Tripwire 自動実行

①自動実行スクリプト(tripwire.sh)を作成し、自動実行させる

自動実行スクリプト(tripwire.sh)の内容

②実行権限を与え、Cronで定期実行する

参考: メールで結果報告用スクリプト

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