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

MiracleLinux9 :  Suricata , SNORT インストール

 Suricata

SURICATA IDS/IPSはネットワーク上の通信を監視し、不審なトラフィックを検知するオープンソースのIDSです。基本的な仕組みはシグネチャ型であるため、あらかじめ設定した不正な通信を検知できます。また、Suricataは検知だけでなく防御も行えることが特徴です。

1.事前準備

①EPEL リポジトリをシステム上で有効化する

②システムのアップデート

2.Suricata のインストールと設定

①Suricata のインストール

②Suricataがネットワークパケットを検査するインターフェースとIPアドレスを決定

③設定ファイルを編集

④Suricataのルール更新

<Warning> -- [ERRCODE: SC_ERR_CONF_YAML_ERROR(242)] - App-Layer protocol sip enable status not set, so enabling by default. This behavior will change in Suricata 7, so please update your config. See ticket #4744 for more details.
上記のような警告が出るが無視できるものと思われるので、このまま進めます

⑤Suricataの起動

⑥Suricataの起動確認

ログを確認

統計情報を確認するには、stats.log ファイルを確認します(デフォルトで8秒ごとに更新)

より高度な出力であるEVE JSONは、以下のコマンドで生成することができる

3.Suricata のテスト

①curl ユーティリティで ping テストを実行

②ログに記録されたかどうかを調べるため、アラートログを確認

4.Suricata Rulesの設定

①Suricataにパッケージされているルールセットの表示

②ルールセットを提供するソースのインデックス一覧

③ソースを有効にする(et/openを有効にする場合)

アップデートを実行

Suricata service再起動

5.Suricata Custom Rulesの作成

①カスタマールールを含むファイルを作成

②設定ファイルを編集(新しいルールのパスを定義)

 ③設定ファイルのテスト

Suricat service再起動

④Custom Rulesの適用テスト
同一ローカルネットワーク上の別のデバイスでpingを実行し、ログに記録されたかどうかを確認する

JSON形式のログを取得するには、システムにjqをインストールする

下記コマンドを実行し、同一ローカルネットワーク上の別のデバイスでpingを実行する

SNORT

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

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

1.事前準備

①必要なソフトウェアをインストールする

②DAQ のンストール

③Lua のインストール

④偽のリリース ファイルを作成

2. Snort をダウンロード、コンパイル、インストール

偽のリリース ファイルを削除

3.グルーブとユーザー作成、必要なディレクトリー、ファイル作成

設定ファイルのセットアップ・・・すべてのファイルを構成ディレクトリにコピーします。

4.コミュニティルールの使用

①コミュニティルールを取得

②ルールを抽出し、構成フォルダーにコピー

コミュニティルールに含まれていないさまざまなルールファイルがある。
sedコマンドを使用して、不要な行をコメントアウトする。

5. 登録済みユーザールールの取得

Snortのウェブサイトに登録すると、Oink コードを使用して登録済みユーザールールをダウンロードできます。Oink コードは Snort ユーザーアカウントの詳細にあります。
次のコマンドのoinkcode を個人コードに置き換えます。

ダウンロードが完了したら、構成ディレクトリにルールを抽出

6. ネットワークおよびルールの構成

7. 設定の検証

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

エラーが出た場合該当のファイルを /etc/snort/rulesにコピーする
当方の場合、下記のファイルでエラーが出た

unicode.mapエラーが出る場合は

8. 構成のテスト

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

②コンソールで Snort を起動し、アラートを stdout に出力します。正しいネットワーク インターフェイス(ens160 など)を選択する必要があります

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

ログには、送信元と宛先の IP、時刻と日付、および次の例に示すように、いくつかの追加情報を含む各 ICMP 呼び出しに対する警告が表示されます。

 

9. バックグラウンドで Snortを実行する

①Snort のスタートアップスクリプトを作成
②サービスを定義した後、systemctl デーモンを再ロードし実行する
 

 

 

 

 

 

 

 

 

Tripwire インストール

1.ダウンロード、インストール

2.パスフレーズ設定

サイトパスフレーズとローカルパスフレーズを設定する

3.Tripwire の設定

①設定ファイル編集

②Tripwire 設定ファイル(暗号署名版)を作成

③Tripwire 設定ファイル(テキスト版)削除

④ポリシーファイル設定

twpolmake.plの内容

⑤ポリシーファイル最適化

⑥最適化済ポリシーファイルを元に、ポリシーファイル(暗号署名版)作成
⑦データベースを作成、動作確認

テスト用ファイルを削除

⑧Tripwire 定期実行スクリプト

tripwire.shの内容

⑨Tripwire 自動実行スクリプト実行設定

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

下記コマンドを実行し、指定したメールアドレスにtripwire実行結果が通知されることを確認

Chkrootkit インストール

①chkrootkit をダウンロード、インストール

➁/root/bin ディレクトリを作成し、そのディレクトリにchkrootkit コマンドを移動
➂chkrootkit を確認します。
Checking `chsh'... INFECTED

上記の表示が出る場合はおそらく誤検知だと思います。

④chkrootkit 定期実行スクリプトの作成と権限変更

定期実行スクリプトの内容

chkrootkit実行スクリプトへ実行権限付加

⑥chkrootkit が使用するコマンドをバックアップ
chkrootkit が使用するコマンドが改ざんされた場合、rootkit を検出できなくなるので、
これらのコマンドをバックアップしておきます。
必要な場合は、バックアップしたコマンドを使用してchkrootkit を実行します

⑦コピーしたコマンドにchkrootkit を実行

何も表示されなければ問題ありません

⑧バックアップしたコマンドを圧縮
⑨chkrootkit使用コマンド(圧縮版)をroot宛にメール送信
⑩Windows にchkrootkit_cmd.tar.gz ファイルをダウンロードして退避
⑪バックアップしたサーバー上のコマンドを削除