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

Ubuntu Server 20.04でサーバー構築 SNORT , Tripwire インストール

1.SNORTインストール

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

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

1.1 インストール

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

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

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

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

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

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

下記ファイル作成

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

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

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

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

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

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

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

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

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

 にアクセスし、

「Sign In」をクリック

「Sign Up」をクリック

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

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

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

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

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

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

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

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

①snort.conf を編集

編集内容

②設定の検証

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

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

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

再度

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

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

    Rules Engine: SF_SNORT_DETECTION_ENGINE Version 3.2 <Build 1>
    Preprocessor Object: SF_SDF Version 1.1 <Build 1>
    Preprocessor Object: SF_MODBUS Version 1.1 <Build 1>
    Preprocessor Object: SF_POP Version 1.0 <Build 1>
    Preprocessor Object: SF_FTPTELNET Version 1.2 <Build 13>
    Preprocessor Object: SF_SMTP Version 1.1 <Build 9>
    Preprocessor Object: SF_GTP Version 1.1 <Build 1>
    Preprocessor Object: SF_DNS Version 1.1 <Build 4>
    Preprocessor Object: SF_REPUTATION Version 1.1 <Build 1>
    Preprocessor Object: SF_DNP3 Version 1.1 <Build 1>
    Preprocessor Object: SF_IMAP Version 1.0 <Build 1>
    Preprocessor Object: SF_S7COMMPLUS Version 1.0 <Build 1>
    Preprocessor Object: SF_SSH Version 1.1 <Build 3>
    Preprocessor Object: SF_DCERPC2 Version 1.0 <Build 3>
    Preprocessor Object: appid Version 1.1 <Build 5>
    Preprocessor Object: SF_SIP Version 1.1 <Build 1>
    Preprocessor Object: SF_SSLPP Version 1.1 <Build 4>

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

1.7 構成のテスト

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

テスト実行

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

Commencing packet processing (pid=131577)
12/15-21:27:03.928135 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 192.168.11.20 -> 192.168.11.63
12/15-21:27:03.928419 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 192.168.11.63 -> 192.168.11.20
12/15-21:27:04.931973 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 192.168.11.20 -> 192.168.11.63
12/15-21:27:04.932072 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 192.168.11.63 -> 192.168.11.20
Snort は、/var/log/snort/snort.log.<timestamp> の下のログにアラートを記録します。ログは、下のコマンドで読み取ることができます

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編集

② 設定ファイル生成

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

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

④データベース作成

途中でエラーで止まるときは「--v」オプションをつけて、進行状況を表示し、エラーで止まるファイルを確認する。当方の環境の場合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をコピーしました