wivern ロゴ

サイバーセキュリティ研究所

サイバーセキュリティを中心に、軍事、防犯、サーバーの管理と監視、その他、最新技術を研究しています。


[拙訳] Snort3.0.0a4build 223 を Ubuntu14 や 16 にインストールする方法

2017/01/07 版 by Noah Dietrich

Snort3

オープン・ソースのネットワーク型 IDS の Snort の公式サイト( https://www.snort.org/ )で公開されている「Snort 3 (Snort 3.0.0-a4 build 223) on Ubuntu 14 and 16( https://goo.gl/r2R3Qn )」を自分のために和訳したので公開します。
基本的に直訳なので、おかしなところは原文でご確認ください。

また、IDS、IPS、ファイアウォール、WAF それぞれの違いや役割は、以下の記事がわかりやすくておススメです。

「不正侵入検知・防御システム(IDS・IPS)とは?」
http://it-trend.jp/ids-ips/article/explain

「IDS・IPSはファイアウォール、WAFとどう違う?」
http://it-trend.jp/ids-ips/article/difference


目次
1.はじめに
2.始める
3.Snort の実行
4.インストール場所
5.ここからの行先

1.はじめに
このガイドは、Ubuntu 14 や 16 に Snort3 Alpha をインストールする段階的な説明である。
これらの指示は、(私のウェブサイトに古いガイドがあるが) Ubuntu 12 では動作しない。

Snort3 はアルファ版ソフトウェアであることに注意すること。バグがあり、新しいリリースではこのガイドがリリースされたときより異なる要件がある可能性がある。このガイドは、2016/12/22 にリリースされた Snort 3.0.0-a4 build 223 に寄せて書かれてテストされている。このガイドに従って今後リリースされる Snort がインストールできるかも知れないが、前提条件は変わるかも知れない。

Snort++ はアルファ版ソフトウェアなので、生産システムで使うべきではない。このソフトウェアは Snort チームによってフィードバックとユーザにテストを求めるためにリリースされた。

このガイドは、以下については述べない。
・Snort を NIPS や NIDS として設定する方法
・追加のサポート・ソフトウェア( barnyard2、PulledPork、GUI )
・データをキャプチャするためのネットワーク・インターフェースのセットアップ方法
・Snort センサの設計の検討
・特定のプリプロセッサの説明
・OpenAppID
しかし、これらの項目について私が描いた他の記事や、完全な NIDS や NIPS システムとして Snort 2 を設定する方法を読むことができる:SublimeRobots.com

このガイドのフィードバックは歓迎する:Noah@SublimeRobots.com。

Snort 配布リストでも助けを求めることができる:
Snort Users
Snort Developers
Snort OpenAppID


2.始める
最初に、システムが最新であることと、最新のパッケージ・リストがあることを確かにする:
sudo apt-get update && sudo apt-get dist-upgrade -y
Snort3 の必須要件をインストールする(これらのパッケージの詳細は、Snort3 Manual の必須要件セクションで見つけることができる:
sudo apt-get install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev libpcre3-dev zlib1g-dev pkg-config libhwloc-dev cmake
次に、オプション(しかし推奨されるソフトウェア)をインストールする):
sudo apt-get install -y liblzma-dev openssl libssl-dev cpputest
snort のビルド時に最新のドキュメントをビルドしたいなら、以下の(純粋にオプションの)パッケージをインストールする。これらのパッケージは、800 MB 近いサイズがある:
sudo apt-get install -y asciidoc dblatex source-highlight
Snort を github のリポジトリからインストールするので、いくつかのツールが必要である:
sudo apt-get install -y libtool git autoconf
Snort DAQ (Data AcQuisition(収集) ライブラリ)には、インストールが必要な事前要件がいくつかある:
sudo apt-get install -y bison flex
たくさんのソースの TAR 書庫や他のソース・ファイルをダウンロードするので、ひとつのフォルダに格納したい:
mkdir ~/snort_src
cd ~/snort_src
特定のレガシーな C 言語ライブラリ呼出しでのランタイム制限チェックのために、safec をダウンロードしてインストールする(これはオプションだが推奨される):
cd ~/snort_src
wget http://downloads.sourceforge.net/project/safeclib/libsafec-10052013.tar.gz
tar -xzvf libsafec-10052013.tar.gz
cd libsafec-10052013
./configure
make
sudo make install
Snort3 は、早いパターン・マッチングに Hyperscan を使う。Hyperscan は、Ragel と Boost ヘッダを必要とする。Ragel をダウンロードしてインストールする:
cd ~/snort_src
wget http://www.colm.net/files/ragel/ragel-6.9.tar.gz
tar -xzvf ragel-6.9.tar.gz
cd ragel-6.9
./configure
make
sudo make install
Hyperscan は Boost C++ ライブラリを必要とする。Hyperscan はバージョン 1.58 以上の Boostライブラリを必要とし、Ubuntu のリポジトリのバージョンは古すぎるので、Boost ヘッダ(libboost-all-dev) の Ubuntu のリポジトリのバージョンは使っていないことに注意する。Boost 1.63 ライブラリをダウンロードするが、インストールしない:
cd ~/snort_src
wget http://downloads.sourceforge.net/project/boost/boost/1.63.0/boost_1_63_0.tar.gz
tar -xvzf boost_1_63_0.tar.gz
Install Hyperscan 4.2.0 from source, referencing the location of the Boost headers source directory:
cd ~/snort_src
wget https://github.com/01org/hyperscan/archive/v4.2.0.tar.gz
tar -xvzf v4.2.0.tar.gz
mkdir ~/snort_src/hyperscan-4.2.0-build
cd hyperscan-4.2.0-build/

cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBOOST_ROOT=~/snort_src/boost_1_63_0/ ../hyperscan-4.2.0

make
sudo make install
Hyperscan の動作を試したいなら、ビルド・ディレクトリで実行する:
cd ~/snort_src/hyperscan-4.2.0-build/
./bin/unit-hyperscan
次に、Snort のウェブ・サイトから Data AcQuisition ライブラリをダウンロードしてインストールする。Snort 3 は、Snort 2.9.x.x シリーズとは異なる DAQ を使うことに注意する:
cd ~/snort_src
wget https://www.snort.org/downloads/snortplus/daq-2.2.1.tar.gz
tar -xvzf daq-2.2.1.tar.gz
cd daq-2.2.1
./configure
make
sudo make install
共有ライブラリを更新する:
sudo ldconfig
github から snort のマスタをインストールする
cd ~/snort_src
wget https://github.com/snortadmin/snort3/archive/master.tar.gz
tar -xvzf master.tar.gz
cd snort3-master/
autoreconf -isvf

./configure --prefix=/opt/snort
make
sudo make install
Snort の実行をテストする:
noah@snort3:~$ /opt/snort/bin/snort -V

   ,,_     -*> Snort++ <*-
  o" )~    Version 3.0.0-a4 (Build 223) from 2.9.8-383
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2016 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 2.2.1
           Using libpcap version 1.5.3
           Using LuaJIT version 2.0.2
           Using PCRE version 8.31 2012-07-06
           Using ZLIB version 1.2.8
           Using LZMA version 5.1.0alpha
           Using OpenSSL 1.0.1f 6 Jan 2014
           Using Hyperscan version 4.2.0 2017-01-07
最後に /usr/sbin で snort にリンクを張るのは良い行いである:
sudo ln -s /opt/snort/bin/snort /usr/sbin/snort

3.Snort の実行
Snort 3 は、正しく実行するためにいくつかの環境変数を必要とする。これらの変数を一時的にカレント・セッションに格納して、ローカルの .bashrc ファイルに恒久的に保存する( LUA PATH は正しくロードしないので、一時的に /etc/profile に格納できないことに注意する。このシステム上で Snort を実行する必要のあるあらゆるユーザのために、これらの行を実行する必要がある):
export LUA_PATH=/opt/snort/include/snort/lua/\?.lua\;\;
export SNORT_LUA_PATH=/opt/snort/etc/snort

sh -c "echo 'export LUA_PATH=/opt/snort/include/snort/lua/\?.lua\;\;' >> ~/.bashrc"
sh -c "echo 'export SNORT_LUA_PATH=/opt/snort/etc/snort' >> ~/.bashrc"
sudo を使うときにこれらの環境変数を有効にするために、/etc/sudoers file にそれらを追加する:
sudo visudo
以下の行を最後に追加する:
Defaults env_keep += "LUA_PATH SNORT_LUA_PATH"
ctrl-x で exit して、y を押すように促されたら保存して、ファイルを /etc/sudoers.tmp に保存するためにエンターを押す(自動的に /etc/sudoers にコピーが取られる)。
では、デフォルトの設定とルールセットで Snort をテストしよう:
/opt/snort/bin/snort -c /opt/snort/etc/snort/snort.lua -R /opt/snort/etc/snort/sample.rules
次のように出力が終了するはずである:
Snort successfully validated the configuration.
o")~   Snort exiting

4.インストール場所
インストール場所の注意:
./configure {prefix=/opt/snort を実行した際に、snort に /opt/snort フォルダの下に全てのファイルをインストールするように指示した。もしこの設定オプションを省略すると、snort は同じフォルダ・セットにインストールされるが、今回だけは root フォルダにインストールされる。例えば、/opt/snort/bin would の下にインストールされたファイルは代わりに /bin にインストールされ、/opt/snort/etc にインストールされたファイルは /etc にインストールされる。これらの場所は、テスト・インストールよりも、通常インストールでより一般的である。

インストール場所として /opt/snort を使うときにインストールされるファイルは次のとおりである:
/opt/snort
 bin
    snort
    snort2lua
    u2boat
    u2spewfoo
 etc
    snort
        file_magic.lua
        sample.rules
        snort_defaults.lua
        snort.lua
        include
        snort
        actions
        codecs
        daqs
        decompress
        detection
        events
        file_api
        filters
        flow
        framework
        hash
        latency
        log
        lua
        main
        managers
        mime
        profiler
        protocols
        search_engines
        sfip
        sfrt
        stream
        time
        utils
 lib
    pkgconfig
       snort.pc
    snort
        daqs
 share
     doc
         snort

37 directories, 9 files
bin フォルダには次のファイルが含まれる:

snort: Snort バイナリ。snort2lua: Snort 2.9.7.x の設定ファイルを 3.x の設定ファイルに変換するツール。詳細はこちら。
u2boat: U2boat は unified2 ファイルを異なる形式に変換するためのツールである。
u2spewfoo: U2SpewFoo は unified2 の中身を標準出力にダンプする軽量なツールである。

さらに、次のフォルダが作られて使われる:

/opt/snort/bin: Snort とサポート・ソフトウェアのバイナリ。
/opt/snort/etc/snort: Snort の設定ファイル。
/opt/snort/include/snort: Snort の全てのインクルード・ファイル。
/opt/snort/lib/pkgconfig: Snort の pkgconfig ファイル( Snort のコンパイルの詳細)
/opt/snort/share/doc/snort: Snort のインストールされたバージョンのドキュメント

5.ここからの行先
Snort 3 の実行やコンパイル・オプションについての詳しい情報は、Snort 3 のマニュアルを参照すること。

Ubuntu で全機能の Snort を設定するために、私のサイトに利用可能なチュートリアルがあり、Barnyard2、PulledPork、BASE、NIPS(悪意のあるトラフィックをドロップ/ブロックする) としての Snort の設定、レイヤ7アプリケーション検出とための OpenAppID の設定、が含まれている。これらのチュートリアルその他は SublimeRobots.com で利用可能である。

フィードバック:あなたが出くわした問題やこのガイドを変更する提案のフィードバックを私に送ってください:Noah@SublimeRobots.com。フィードバックはこれらのガイドを更新する私の助けになり、これらの指示の実行を通して人々が出くわす一般的な問題や質問を確認する私の助けになる。


記述に際しては、細心の注意をしたつもりですが、間違いやご指摘がありましたら、こちらからお知らせいただけると幸いです。


→「不正アクセス IP アドレスリスト」
←「不正アクセス IP アドレスリスト」


« 戻る


↓ Now Reading...



↑ Now Reading...