Snortをインストール
必要パッケージのインストール
恒例のパッケージ更新
# yum update
yumでインストールするもの
# yum install wget
# yum install gcc
# yum install flex
# yum install bison
# yum install libpcap-devel
# yum install pcre-devel
# yum install libdnet-devel
# yum install zlib-devel
# yum install openssl-devel
daqのインストール
公式サイトからdaqをダウンロード
# wget https://www.snort.org/downloads/snort/daq-2.0.7.tar.gz
DLしたものを展開
# tar -xvzf daq-2.0.7.tar.gz
ディレクトリ移動
# cd daq-2.0.7
インストール
# ./configure && make && make install
LuaJITのインストール
先ほどのdaq-2.0.7ディレクトリのままだとややこしいので移動しておく
# cd ..
LuaJITをDL
# wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
DLしたものを展開
# tar -xvzf LuaJIT-2.0.5.tar.gz
ディレクトリ移動
# cd LuaJIT-2.0.5
インストール
# make && make install
LuaJITをyumでインストールできるらしいが、できなかったのでこのやり方にした。
Snortのインストール
先ほどのLuaJIT-2.0.5ディレクトリのままだとややこしいので移動しておく
# cd ..
公式サイトからSnortをDL
# wget https://www.snort.org/downloads/snort/snort-2.9.18.tar.gz
DLしたものを展開
# tar -xvzf snort-2.9.18.tar.gz
ディレクトリ移動
# cd snort-2.9.18
インストール
# ./configure --enable-sourcefire && make && make install
インストールされたか確認
# snort -V
バージョンとかわいいブタちゃんが出たらヨシ!
Snortを使えるようにする
必要なものを作成
共有ファイル登録
# ldconfig
シンボリックリンク作成
# ln -s /usr/local/bin/snort /usr/sbin/snort
グループの作成
# groupadd snort
ユーザの作成
# useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort
必要ディレクトリ作成
# mkdir -p /etc/snort/rules
# mkdir /var/log/snort
# mkdir /usr/local/lib/snort_dynamicrules
権限の付与
# chmod -R 5775 /etc/snort
# chmod -R 5775 /var/log/snort
# chmod -R 5775 /usr/local/lib/snort_dynamicrules
# chown -R snort:snort /etc/snort
# chown -R snort:snort /var/log/snort
# chown -R snort:snort /usr/local/lib/snort_dynamicrules
必要ファイルの作成
# touch /etc/snort/rules/white_list.rules
# touch /etc/snort/rules/black_list.rules
# touch /etc/snort/rules/local.rules
設定ファイルのコピー
# cp ~/snort_src/snort-2.9.16/etc/*.conf* /etc/snort
# cp ~/snort_src/snort-2.9.16/etc/*.map /etc/snort
コミュニティルールのインストール
公式からDL
# wget https://www.snort.org/rules/community -O ~/community.tar.gz
DLしたものを展開
# tar -xvf ~/community.tar.gz -C ~/
展開したものをコピー
# cp ~/community-rules/* /etc/snort/rules
設定ファイルの文字列を置換
# sed -i 's/include \$RULE\_PATH/#include \$RULE\_PATH/' /etc/snort/snort.conf
ユーザ設定ファイルのインストール
# wget https://www.snort.org/rules/snortrules-snapshot-2983.tar.gz?oinkcode=<oinkcode> -O ~/registered.tar.gz
<oinkcode>はSnort.orgにログインしてユーザー情報の欄から得られるもの。
DLしたものを展開
# tar -xvf ~/registered.tar.gz -C /etc/snort
設定ファイルを変更
# vi /etc/snort/snort.conf
/etc/snort/snort.conf
# Setup the network addresses you are protecting
ipvar HOME_NET <server_public_ip>/24
# Path to your rules files (this can be a relative path)
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
# Set the absolute path appropriately
var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules
# unified2
# Recommended for most installs
output unified2: filename snort.log, limit 128
include $RULE_PATH/local.rules
include $RULE_PATH/community.rules
<server_public_ip>にはsnortが存在しているネットワークを記入。後ろのサブネットマスクの書き換えも忘れずに
設定ファイル適応
# sudo snort -T -c /etc/snort/snort.conf
ルールファイルを作成
# vi /etc/snort/rules/local.rules
/etc/snort/rules/local.rules
alert icmp any any -> $HOME_NET any (msg:"ICMP get"; sid:10000001; rev:001;)
動作確認
# snort -u snort -g snort -c /etc/snort/snort.conf -i enp0s3 -A console
enp0s3の部分は自分子PCの環境に合わせる。
他のPCからSnortのPCに対してping
コマンドを実行してログが残ればヨシ!
動かす
serviceファイルの作成
# vi /lib/systemd/system/snort.service
snort.service
[Unit]
Description=Snort NIDS Daemon
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/snort -u snort -g snort -c /etc/snort/snort.conf -i enp0s3 -A full -b -D # 入力内容は環境に合わせる
[Install]
WantedBy=multi-user.target
# sudo systemctl daemon-reload
snortを起動
# sudo systemctl start snort
動いてるか確認
# sudo systemctl status snort
終わり。
後はルールをいじって遊びましょう。