不正アクセス検知システムのSnort インストール

ネットワーク侵入防御システム Snort

無料で使用できるオープンソースのネットワーク侵入防御システムの「Snort」をインストールします。但しWEBで不正アクセスログを確認できる「SnortSnarf」のダウンロード先が見つからなかったので、WEBインターフェイスはインストール出来ませんでした。すごく中途半端な状態ですが、Snort自体のインストールできたので、その手順を紹介します

Snort インストール

「Snort」をインストールする時に、libsfbpf.soがないと下記のようにエラーになりますので、「daq」をインストールします

# rpm -Uvh snort-2.9.16.1-1.centos8.x86_64.rpm
error: Failed dependencies:
        libsfbpf.so.0()(64bit) is needed by snort-1:2.9.16.1-1.x86_64

# daqをインストールします
# yum --enablerepo=epel install daq

rpmのパッケージをダウンロードして、インストールします

# cd /usr/local/src
# wget https://www.snort.org/downloads/snort/snort-2.9.16.1-1.centos8.x86_64.rpm
# rpm -Uvh snort-2.9.16.1-1.centos8.x86_64.rpm 

Snort ルール取得

snortで利用するルールファイルが必要ですので、snort.orgにユーザ登録します。ユーザー登録すると無料のRegistered rulesが利用できます

UR : https://www.snort.org/users/sign_up

ユーザー登録してからログインして「https://www.snort.org/downloads#rules」にアクセスして「snortrules-snapshot-29161.tar.gz」のルールファイルをダウンロードします。
ダウンロードしたらWinSCP等でサーバーにアップロードします。私の場合は「/var/tmp」にアップロードしました。

ルールファイルをアップロードをしたら、解凍してsnortのディレクトリ(/etc/snort/rules/)にコピーします

# ファイルを解凍します
# tar xzvf /var/tmp/snortrules-snapshot-29161.tar.gz

# 「/etc/snort/rules/」に解凍したファイルをコピーします
# cp /var/tmp/rules/* /etc/snort/rules/

# 「/etc/snort/rules/so_rules/」に解凍したファイルをコピーします
# mkdir /etc/snort/rules/so_rules
# cp /var/tmp/so_rules/* /etc/snort/rules/so_rules/

# コピーしたら、解凍したファイル・ディレクトリを削除します
# rm -Rf /var/tmp/rules
# rm -Rf /var/tmp/so_rules

「/etc/snort/snort.conf」の設定ファイル編集

/etc/snort/snort.confのファイルを編集します。変更箇所のみ記載しています。
主にローカルネットワークのアドレス帯と、ルールファイルの場所を指定しています

# vi /etc/snort/snort.conf
ipvar HOME_NET 192.168.0.0/24
ipvar EXTERNAL_NET !$HOME_NET

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

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

# path to dynamic rules libraries
#dynamicdetection directory /usr/local/lib/snort_dynamicrules

#include $RULE_PATH/local.rules
include /etc/snort/rules/local.rules

「local.rules」、「white_list.rules」、「black_list.rules」のファイルが無いと起動時にエラーになるので、起動する前に作成しておきます

# touch /etc/snort/rules/local.rules
# touch /etc/snort/rules/white_list.rules
# touch /etc/snort/rules/black_list.rules

snortを起動時に下記のようにlibdnetがないとエラーになりますので、シンボリックリンクを作成して対処します

# /etc/init.d/snortd status
● snortd.service - SYSV: snort is a lightweight network intrusion detection tool that currently detects more than 1100 host and network vulnerabilities, portscans, backdoors, and more.
   Loaded: loaded (/etc/rc.d/init.d/snortd; bad; vendor preset: disabled)
   Active: active (exited) since Wed 2020-09-23 14:33:27 JST; 3min 21s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 28234 ExecStart=/etc/rc.d/init.d/snortd start (code=exited, status=0/SUCCESS)

Sep 23 14:33:27 www01 snortd[28234]: Starting snort: /usr/sbin/snort: error while loading shared libraries: libdnet.1: cannot open shared object file: No such file or directory
Sep 23 14:33:27 www01 snortd[28234]: [FAILED]

# エラー対策でシンボリックリンクを作成
# ln -s /usr/lib64/libdnet.so.1.0.1 /usr/lib64/libdnet.1

snortの起動はsystemctlコマンドでなく、下記のように「/etc/init.d/snortd start」で起動できます。
WEBインターフェイスの「SnortSnarf」がダウンロード先がなかったので、CUIのみとなったので起動確認したのみで実際に運用はおこないませんでした

# /etc/init.d/snortd start
Starting snortd (via systemctl):                           [  OK  ]

 

 

LinuxCentOS 7

Posted by admin