Snortでネットワーク監視

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

ログデータをSQLに格納出来るので、
今回はMariaDB5.5系を使ってあそんでみます。

2.9.3がリリースされました。
このバージョンからSQLを利用したロギングができなくなりました。
どうしてもやりたい場合はunified2形式で吐き出して
Barnyard2がそれを捕捉してDBにインサートする方式でやるらしいです
やっと動くようになったので、そろそろまとめます?

HP: http://www.snort.org/

daqインストール

yum -y install libpcap-devel libdnet-devel
cd /usr/local/src
wget http://www.snort.org/downloads/1806 -O daq-1.1.1.tar.gz
tar zxvf daq-1.1.1.tar.gz
cd daq-1.1.1
./configure
make
make install

snortインストール

http://www.snort.org/downloads/1814 -O snort-2.9.3.tar.gz
tar zxvf snort-2.9.3.tar.gz
cd snort-2.9.3
./configure \
--prefix=/usr/local/snort \
--enable-shared=yes \
--enable-64bit-gcc \
--enable-control-socket \
--enable-linux-smp-stats \
--enable-inline-init-failopen \
--enable-sourcefire \
--enable-shared-rep \
--enable-large-pcap \
--with-pic \
--enable-mpls \
--enable-targetbased \
--enable-ipv6 \
--enable-ppm \
--enable-perfprofiling \
--enable-zlib \
--enable-active-response \
--enable-normalizer \
--enable-reload \
--enable-react \
--enable-flexresp3
 
make
make install
cd etc
cp *.config *.map *.conf /usr/local/snort/etc
cd ../
sed -i 's,/usr/sbin/snort,/usr/local/snort/bin/snort,g;' rpm/snortd
install -m0755 rpm/snortd /etc/rc.d/init.d/snortd
sed -i 's,/etc/snort/snort.conf,/usr/local/snort/etc/snort.conf,g;' rpm/snort.sysconfig
install -m0644 rpm/snort.sysconfig /etc/sysconfig/snort

snort.conf設定

かなり苦戦しましたよ

修正箇所
ipvar HOME_NET any
↓ 自分のNWに修正
ipvar HOME_NET [192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]
 
ipvar EXTERNAL_NET any
↓ 自分のNW以外に修正
ipvar EXTERNAL_NET !$HOME_NET
 
portvar HTTP_PORTS [80,81,~略~
↓ 80だけにしてみた
portvar HTTP_PORTS 80
 
preprocessor stream5_tcp: policy windows, detect_anomalies, require_3whs 180, \
↓ windowsからlinuxにした
preprocessor stream5_tcp: policy linux, \
 
preprocessor http_inspect: global iis_unicode_map unicode.map 1252 compress_depth 65535 decompress_depth 65535
preprocessor http_inspect_server: server default \
↓ unicode.map 1252だとなんかだめらしいので932にするのとserver defaultをapacheにしてみる
preprocessor http_inspect: global iis_unicode_map unicode.map 932 compress_depth 65535 decompress_depth 65535
preprocessor http_inspect_server: server default profile apache ports { 80 }
 
output unified2: filename snort.u2, limit 128

大きなところはここら辺であとはこまごまとrulesを読み込ませるものは読み込ませておく

後は必要に応じて/etc/sysconfig/snortの中身を修正

修正箇所
INTERFACE=p1p1
#ALERTMODE=fast
#DUMP_APP=1
#BINARY_LOG=1

barnyard2インストール

#mysql-libsとソースで入れたmysql(MariaDB)があると/usr/lib(64)/mysqlを見にいっちゃって起動しなくなるので問題なければ消しておく
yum remove mysql-libs
#または
rpm -e --nodeps mysql-libs
 
cd /usr/local/src/
git clone https://github.com/firnsy/barnyard2.git
cd barnyard2
./autogen.sh
./configure \
--enable-64bit-gcc \
--enable-gre \
--enable-mpls \
--enable-prelude \
--with-mysql=/usr/local/mysql \
--with-mysql-libraries=/usr/local/mysql/lib \
--with-mysql-includes=/usr/local/mysql/include/mysql
 
make
make install
 
cp etc/barnyard2.conf /usr/local/snort/etc/barnyard2
sed -i -e 's,/usr/sbin/snort,/usr/local/snort/bin/snort,g;' \
-e 's,/etc/snort/snort.conf,/usr/local/snort/etc/snort.conf,g;' \
rpm/barnyard2
install -m0755 rpm/barnyard2 /etc/rc.d/init.d/barnyrad2
 
#rpm/barnyard2.configの修正
LOG_FILEをsnort.confで設定したsnort.u2に変える
INTERFACESを監視するNICに変える
CONFを/usr/local/snort/etc/barnyard2.confに変える
 
install -m0644 rpm/barnyard2.config /etc/sysconfig/barnyrad2

barnyard2設定

こっちでsqlをやるので間違えないようにしましょう?

修正箇所
config reference_file:      /usr/local/snort/etc/reference.config
config classification_file: /usr/local/snort/etc/classification.config
config gen_file:            /usr/local/snort/etc/gen-msg.map
config sid_file:            /usr/local/snort/etc/sid-msg.map
config waldo_file: /var/log/snort/barnyard2.waldo
output database: log, mysql, user=snort password=snort dbname=snort_log host=localhost

次にSnortのサイトへ行ってルールを拾ってきます。
最新のルールはユーザ登録をしないとダウンロード出来ません。
さらに1日1回しかダウンロードできません。
8/2現在2.9.3用の無償ルールが無いので2.9.2.3用のものを流用

tar zxfv snortrules-snapshot-2923.tar.gz
/bin/cp etc/* /usr/local/snort/etc
/bin/cp -r rules /usr/local/snort/etc
/bin/cp -r preproc_rules/ rules/ so_rules/ /usr/local/snort/etc

oinkmasterっての使うといいらしい

データベース連携(共通)

↑で書いてるのと若干かぶり気味なところがあります?

echo "CREATE DATABASE snort_log;" | mysql -u root -p
mysql -u root -p
mysql> grant INSERT,SELECT on snort_log.* to snort@localhost;
mysql> grant INSERT,SELECT,UPDATE on snort_log.sensor to snort@localhost;

データベース連携(2.9.3用)

cd /usr/local/src/barnyard2/schemas
mysql -u root -p snort_log < create_mysql
/usr/local/snort/etc/barnyard2.confを以下のように修正
output database: log, mysql, user=snort password=snort dbname=snort_log host=localhost

データベース連携(2.9.2.x用)

cd /usr/local/src/snort-2.9.2.3/schemas
mysql -u root -p snort_log < create_mysql
/usr/local/snort/etc/snort.confを以下のように修正
output database: log, mysql, user=snort password=snort dbname=snort_log host=localhost socket=/tmp/mysql.sock

~~編集中~~

といいつつSuricataも試してみますかね

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.