サイバーセキュリティや人工知能(機械学習等)を中心に、最新技術を研究しています。
オープン・ソースのネットワーク型 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
sudo apt-get update && sudo apt-get dist-upgrade -ySnort3 の必須要件をインストールする(これらのパッケージの詳細は、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 cpputestsnort のビルド時に最新のドキュメントをビルドしたいなら、以下の(純粋にオプションの)パッケージをインストールする。これらのパッケージは、800 MB 近いサイズがある:
sudo apt-get install -y asciidoc dblatex source-highlightSnort を github のリポジトリからインストールするので、いくつかのツールが必要である:
sudo apt-get install -y libtool git autoconfSnort 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 installSnort3 は、早いパターン・マッチングに 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 installHyperscan は 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 installHyperscan の動作を試したいなら、ビルド・ディレクトリで実行する:
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 ldconfiggithub から 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 installSnort の実行をテストする:
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
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 にコピーが取られる)。
/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
/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 filesbin フォルダには次のファイルが含まれる:
記述に際しては、細心の注意をしたつもりですが、間違いやご指摘がありましたら、こちらからお知らせいただけると幸いです。