Ubuntu Server23.04 ; SNORT2 , Tripwire インストール

1.SNORT2 インストール

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

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

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

1.1 インストール

①必要なライブラリーインストール
できれば一項目ごとインストールするほうが良い

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

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

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

make実施時にファイル・ディレクトリーが見つからないというエラーが多く出るケースがあります。
当方の場合下記のようなファイルエラーが出たため「libntirpc-dev」をインストールし、所定の場所にコピーしました

もっとよい方法があれば教えてネ (^_^)

⑤SNORTバージョン確認

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

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

下記ファイル作成

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

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

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

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

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

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

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

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

①Oinkcodeを取得
Snort 公式サイトでユーザー登録を行い、コミュニティルール取得に必要なOinkcodeを取得する
最新ルールファイルをダウンロードする為に、Snort の公式でユーザー登録をします。
https://www.snort.org/ にアクセスし、

「Sign in」をクリック

「Sign up」をクリック

「Email」、「Passsword」、「Password confirmation」を入力とその他項目をチェックし、「Sign up」をクリック

「Sign up」が成功すると、登録したメールアドレスに下記のメールが届く、本文のリンクをクリック

登録した内容を入力してログイン

メールアドレスをクリック

「Oinkcodes」をクリックし、「Oinkcode」を別に保存しておく

②登録済みユーザールールをダウンロード
下記の「oinkcode」の箇所を上記で取得したコードに置き換える

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

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

①snort.conf を編集

編集内容

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

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

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

再度

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

1.7 構成のテスト

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

テスト実行

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

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

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

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

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

設定反映・起動

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で定期実行する

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

下記コマンドを実行して上記で設定したアドレスに通知が届くか確認する