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.