Amazon AWS に Snort を導入

参考:http://inaba-serverdesign.jp/blog/20140131/snort_inline_ips.html

EC2のインスタンスSnortをインストールしてみる。 参考サイトの手順を現時点の最新版で実施してみた感じ。 yumで解決出来そうなところは面倒なのでyumを使ってる。

Snortインストール

依存ライブラリのインストール

まずは依存性のあるライブラリのインストール。既にインストール済みのパッケージもあるが、気にせずyumってみる。

$ sudo yum install gcc flex bison pcre pcre-devel libpcap libpcap-devel zlib zlib-devel

libdnet、DAQ、snortの順にインストールする。

libdnetのインストール

たぶん、これ。BSDライセンス。参考サイトはsourcefogeを指しているけど、更新が止まってるのかver.1.11のまま。code.googleのほうは1.12。

https://code.google.com/p/libdnet/

$ cd /usr/local/src
$ sudo wget https://libdnet.googlecode.com/files/libdnet-1.12.tgz
$ sudo tar zxvf libdnet-1.12.tgz
$ cd libdnet-1.12
$ sudo ./configure --with-pic
$ sudo make
$ sudo make install

これで以下のフォルダにインストールされていれば成功(っぽい)

$ ls -l /usr/local/lib/libdnet*
lrwxrwxrwx 1 root root     13 10月 25 14:07 /usr/local/lib/libdnet ->libdnet.1.0.1
lrwxrwxrwx 1 root root     13 10月 25 14:07 /usr/local/lib/libdnet.1 ->libdnet.1.0.1
-rwxr-xr-x 1 root root 179555 10月 25 14:07 /usr/local/lib/libdnet.1.0.1
-rw-r--r-- 1 root root 295686 10月 25 14:07 /usr/local/lib/libdnet.a
-rwxr-xr-x 1 root root    778 10月 25 14:07 /usr/local/lib/libdnet.la

DAQのインストール

daqの前の準備

DAQのインストールの前に必要なライブラリのインストール。

$ sudo yum install libnetfilter_queue
$ sudo yum install libnetfilter_queue-devel

DAQのインストール

$ sudo wget https://www.snort.org/downloads/snort/daq-2.0.4.tar.gz
$ sudo tar zxvf daq-2.0.4.tar.gz
$ cd daq-2.0.4
$ sudo ./configure

configure後に以下の表示になっているか要チェック。

Build AFPacket DAQ module.. : yes
Build Dump DAQ module...... : yes
Build IPFW DAQ module...... : yes
Build IPQ DAQ module....... : no
Build NFQ DAQ module....... : yes
Build PCAP DAQ module...... : yes
Build netmap DAQ module...... : no

続いてmakeとmake installする

$ sudo make
$ sudo make install

lib内にdaqのライブラリが出力されていればおk。

$ ls -l /usr/local/lib/daq/
合計 276
-rwxr-xr-x 1 root root   960 10月 25 14:39 daq_afpacket.la
-rwxr-xr-x 1 root root 58547 10月 25 14:39 daq_afpacket.so
-rwxr-xr-x 1 root root   916 10月 25 14:39 daq_dump.la
-rwxr-xr-x 1 root root 27620 10月 25 14:39 daq_dump.so
-rwxr-xr-x 1 root root   936 10月 25 14:39 daq_ipfw.la
-rwxr-xr-x 1 root root 33428 10月 25 14:39 daq_ipfw.so
-rwxr-xr-x 1 root root   967 10月 25 14:39 daq_nfq.la
-rwxr-xr-x 1 root root 97290 10月 25 14:39 daq_nfq.so
-rwxr-xr-x 1 root root   916 10月 25 14:39 daq_pcap.la
-rwxr-xr-x 1 root root 34657 10月 25 14:39 daq_pcap.so

Snortのインストール

ようやく本題のインストール。 Snortの公式サイトから最新版をダウンロードして、configure、makeする。

$ sudo wget https://www.snort.org/downloads/snort/snort-2.9.7.0.tar.gz
$ sudo tar zxvf snort-2.9.7.0.tar.gz
$ cd snort-2.9.7.0
$ sudo ./configure --enable-gre --enable-targetbased --enable-active-response --enable-normalizer --enable-reload --enable-react --enable-zlib
$ sudo make
$ sudo make install
$ sudo ldconfig -v /usr/local/lib

ls してみてインストールされていれば成功。この時点で、snortなどのコマンドが読み込めてる。

$ snort --version
   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.7.0 GRE (Build 149)
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/ contact#team
           Copyright (C) 2014 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.4.0
           Using PCRE version: 8.21 2011-12-12
           Using ZLIB version: 1.2.7

ルールファイルの設定・設置

ルールファイルのダウンロード

snortの公式ページでサインアップし、oinkcodeを取得する。 ルールファイルをダウンロード&展開する。

$ mkdir /etc/snort/
$ sudo tar zxvf /usr/local/src/snortrules-snapshot-2970.tar.gz
$ wget http://www.snort.org/reg-rules/snortrules-snapshot-2955.tar.gz/<oinkcode> -O snortrules-snapshot-2955.tar.gz

ルールファイルの設置。

 $  sudo tar zxvf snortrules-snapshot-2970.tar.gz
 $  sudo cp ./etc/* .
 $  sudo cp -p /usr/local/src/snort-2.9.7.0/etc/* .
 $  sudo rm -f /etc/snort/Makefile*
 $  sudo touch rules/white_list.rules rules/black_list.rules
 $  sudo mkdir /usr/local/lib/snort_dynamicrules
 $  sudo cp -p /etc/snort/so_rules/precompiled/RHEL-6-0/x86-64/2.9.7.0/* /usr/local/lib/snort_dynamicrules/

snort ユーザの作成と設定。

 $  sudo groupadd 511 snort
 $  sudo groupadd -g 511 snort
 $  sudo useradd snort -u 511 -d /var/log/snort -s /sbin/nologin -c 'Snort User' -g snort
 $  chown -R snort.snort /etc/snort
 $  sudo chown -R snort.snort /etc/snort
 $  sudo chown -R snort.snort /var/log/snort
 $  ls -lR /etc/snort

configファイルの設定

$ cp -p snort.conf snort.conf.default
$ sudo cp -p snort.conf snort.conf.default
$ sudo emacs /etc/snort/snort.conf
$ cd /usr/local/lib
$ chown -R snort.snort snort* pkgconfig
$ sudo chown -R snort.snort snort* pkgconfig
$ sudo chmod -R 700 snort* pkgconfig
$ cd /usr/local/bin/
$ sudo chown snort.snort daq-modules-config u2*
$ sudo chmod 700 daq-modules-config u2*

起動と確認

Snort のテスト実行

$ sudo /usr/local/bin/snort -T -i eth0 -u snort -g snort -c /etc/snort/snort.conf
           Preprocessor Object: SF_SIP  Version 1.1  <Build 1>

Snort successfully validated the configuration!
Snort exiting

↑「Snort successfully」 が表示されればまずはおk。

起動。

$ sudo /usr/local/bin/snort -A fast -b -d -D -i eth0 -u snort -g snort -c /etc/snort/snort.conf -l /var/log/snort

Spawning daemon child...
My daemon child 13971 lives...
Daemon parent exiting (0)

ps で確認してsnortのプロセスが存在すればおk。

<動作確認>

pingをうったら検知するようなルールを作成し動作確認をしてみる。

$ sudo emacs /etc/snort/rules/local.rules

追記する内容は以下。

alert icmp any any -> any any (msg:"ICMP Testing Rule"; sid:1000001; rev:1;)

snortをインストールしたサーバに直接IPアドレスを打つと検知する。 出力先は、/var/log/snort/alert

$ sudo tail -f /var/log/snort/snort.log

OWASP ZAPの攻撃は検知するのか

素の状態で、対称サーバにtomcatを立てて、OWASP ZAPの攻撃を仕掛けると何も検知せず。 ここら辺は、ルールの有効化とかいろいろ設定しないとダメかも。そのうちやる。

起動スクリプトの設置で楽をする

いちいちsnortのコマンドを叩くのも面倒なのでサービスとして動作するようにスクリプトを設定する。

$ cd /usr/local/src/
$ sudo wget http://s3.amazonaws.com/snort-org/www/assets/208/snort-centos-6x.sh
$ sudo cp snort-centos-6x.sh /etc/init.d/snort
$ sudo cp snort-centos-6x.sh /etc/sysconfig/snort

コピーしたスクリプトはinit.d用とsysconfig用の内容が同一ファイル内に書かれているので、 適切な位置でそれぞれ内容を編集する。(ファイル内に英語でコメントされてるのでわかるはず。)

パーミッションの設定を適切にするのと、sbinで実行出来るようにリンクを貼る。

$ sudo chown snort.snort /etc/init.d/snort /etc/sysconfig/snort
$ sudo chmod 700 /etc/init.d/snort /etc/sysconfig/snort
$ cd /usr/sbin
$ sudo ln -s /usr/local/bin/snort snort

サービスとして実行してみる。実行する前に起動している場合は、killで止めとく。

$ sudo /etc/init.d/snort start

各種ログは/var/messagesに出てるのでそちらで。

とりあえず、今回はここまで。

railsの統合環境を既存のeclipse環境に導入する手順

railsの統合環境を既存のeclipse環境に導入する手順

 

1. Aptana Studioをプラグインとしてインストール

Help->Install New Software... で、「http://download.aptana.com/studio3/plugin/install」をAddする。
Aptana Studio 3」を選択し、通常のプラグインのインストールと同様に指示に従ってインストール。

 

2. railsのインストール

railsがインストールされていないと動かないので、新規プロジェクトを作る前に、gem を使ってインストールしておく。gem がない場合は、先にインストールしておく。

 

   sudo gem install rails

 

3. プロジェクトの作成

プロジェクトの作成時に「Rails Project」を指定してプロジェクトを作成。
rails のディレクトリが出来上がれば成功。

 

4. サーバの実行

Eclipseのコンソールで以下を実行。

 

    rails server

 

http://localhost:3000 でブラウザアクセスするとページが見える。

停止するためには、「Ctrl+C」

 

secops


dev x ops で devopsのように、
sec x ops で secops という考え方があるらしい。

ちょっと興味があるので、参考になりそうなリンクを貼っておく。

時間あったらまとめようかな。

# リンク

http://www.slideshare.net/KrisBuytaert/devops-secops-opsec-devsec-ops

http://devops.com/category/blogs/secops/

https://securosis.com/blog/the-pragmatic-guide-to-network-security-management-secops

http://www.bmc.com/blogs/intelligent-compliance-down-under-the-secops-gap/

 

security now ひっそりと

ひっそりと情報セキュリティ系ニュースとつぶやき、キーワードを収集するサイト、「security now」を仮公開します。

 

情報セキュリティニュース

http://www.securitynow.jp/

 

まだまだやりたいことがありますけど、今のところ、こんなことができます。

  • 各種情報セキュリティ系ニュースサイトから情報を抽出して表示
  • 各種情報セキュリティ系ベンダーサイトから情報を抽出して表示
  • twitterから情報セキュリティに関連しそうなつぶやきを表示
  • twitterから関連するキーワードを抜き出してワードクラウド表示

 

もうちょっとやれることと価値が出てきたらきちんとしたドメインを抑えようかしら。