侵入者検知システムの導入-snort-

03/06/17

シマンテックのインターネットセキュリティーにも侵入者検知システムが付加されました。Linuxの世界にも同じようなシステムがあり、これは、アヤシイ輩が親友してきたら知らせてくれる。というのではなく、アヤシイ輩が進入しアヤシイ行動を起こしたら検知、もしくは進入するような動作を仕掛けてきたら検知。という感じだと思います。つまり、あるパターンのアタックが来たら、もしくは、Linuxを使っているユーザーがある行動をしたら検知。ということに言い換えられると思います。これらを検知するシステムのことをIDS(Intrusion Detection System「不正侵入検知システム」)といいます。

このIDSの代表的なものが、「Snort」で、今回はこれを有効的に活用させてみようと思います。

まず、「Snort」をインストールする前にパケットをキャプチャするための「libpcap」をインストールしておく必要があります。

Webminの「システム」>「ソフトウェアパッケージ」>「インストール済みのパッケージ」に「libpcap」を入力してボタンを押してください。コンソール上で調べるには、

# rpm -q libpcap
libpcap-0.6.5-13

どうやらVineではデフォルトでインストールされているようですね。
では、「Snort」の方はどうでしょう。

同じようにインストールされていました!「Snort」も「libpcap」も「ATP」でインストールできるようです。(最新バージョンではないようですけど・・・)

次にルールセットなどのコピーと設定ファイルの編集、ログディレクトリの作成などを行っときます。

 まず、「/etc/snort」以下に、設定ファイルclassification.configsnort.conf)とルールセット拡張子*.rulesファイル)があると思います。(自分でインストールした場合は、snortを展開したディレクトリにこれらのファイルがあるので、「/etc/snort」を作成し、そこへコピーしてください。)その中の、「snort.conf」の編集を行います。設定内容は各自の環境により違うため、環境にあわせて記述する必要があります。
var HOME_NET」(監視対象のネットワーク)
var EXTERNAL_NET」(外部ネットワーク)
var SMTP」(SMTPサーバ)
var HTTP_SERVERS」(ウェブサーバ)
var SQL_SERVERS」(SQLサーバ)
var DNS_SERVERS」(DNSサーバ)
の各項目が主に記述する項目でしょうか。
また、各ファイルは以下のような設定ファイルです。

local.rules ユーザが独自に追加したルール等を記述するためのファイル
web-cgi.rules CGIに対する攻撃等を検知
ddos.rules DDoSのクライアント〜サーバ間のコントロール通信を検知
dos.rules DoSを検出するためのルール設定
exploit.rules バッファーオーバーフローなどの攻撃を検知する
scan.rules 一部のステルスポートスキャンやスキャナツールを検知
dns.rules DNSに対するプロービングや攻撃などを検知
backdoor.rules バックドアツールを検出
smtp.rules smtpサービスに対する攻撃などを検知
rservices.rules r系のサービスに対するアクセスや攻撃などを検知
web-frontpage.rules Frontpageを悪用した行為を検知
rpc.rules rpcデーモンに対するプロービングや攻撃などを検知
finger.rules fingerデーモンに対するプロービングや攻撃を検知
telnet.rules telnetデーモンに対するアクセスや攻撃などを検知
web-coldfusion.rules マイクロメディアのサーバColdFusionへの攻撃等を検知
ftp.rules FTPデーモンに対するプロービングや攻撃などを検知
netbios.rules netBIOS関係のアクセスや攻撃などを検知
web-iis.rules IISサーバに対する攻撃を検知する
web-misc.rules その他のHTTPに対する攻撃などを検知
icmp.rules ICMPに対するプロービング等を検知
misc.rules tracerouteやrootkitなど(クラック用アプリ)に関する通信を検知

まず、
HOME_NET(監視対象のネットワーク)

var HOME_NET any

これは「any」のままだとログがすごく多くなるので、例えば192.168.1.0ネットワークを監視したい場合は(/24は255.255.255.0のマスクです)

var HOME_NET 192.168.1.0/24

192.168.1.4だけを監視する場合は

var HOME_NET 192.168.1.4/32

なお、複数例えば「192.168.1.4」と「192.168.1.10」を監視する場合は、

var HOME_NET [192.168.1.4,192.168.1.10]

というように「[」と「]」で囲み、「,」で区切ります。

EXTERNAL_NET(外部ネットワーク)

var EXTERNAL_NET any

ここは「 any」のままでかまいませんが、「HOME_NET」を除外した「!$HOME_NET」にします。

var EXTERNAL_NET !$HOME_NET

「 SMTP」〜「DNS_SERVERS

これらは必要に応じて設定します。例えば、

var SMTP 192.168.1.4/32

もしくは、

var SMTP $HOME_NET

尚、 コメントを表す「#」も使えるので、必要のない行は、コメントアウトしておくといいかもしれません。(注:必要のないものもコメントアウトすると変数を参照できなくてエラーになります。)

RULE_PATH

各種ルールファイルがある場所へのパスらしいです。相対パスで記述するらしいですので、

var RULE_PATH ./

でいいようです。

ココまで出来たら、ログの設定に移ります。Vineではすでに「/var/log/snort」というディレクトリがあるので、デフォルトでそちらに保存されます。一応属性を書き込み可能か調べておいてください。
(Vineでは、所有者「snort」になっていると思います。)
尚、自分でインストールした場合は、「snort」というユーザーを作成し、ログ用のディレクトリ「/var/log/snort」を作成し、所有者を「snort」にしておいてください。

以上で「snort」の設定は終わりました。次に起動ですが起動には、以下のようなオプションがあります。

-A アラートの出力をfull/fast/consoleかnoneのいずれかで指定。fullが詳細な情報を記録
-b tcpdumpフォーマットでログを記録
-D バックグランドでの実行(デーモンモードで起動
-d アプリケーションレイヤーのデータもログに記録
-c<ルールセット> ルールセットの指定
-h<ホームネットワーク> ホームネットワークの指定
-i<ネットワークインターフェイス> ネットワークインターフェイスの指定
-l<ログディレクトリへのパス> ログディレクトリの指定
-u<ユーザー名> Snortを起動するユーザの指定
-g<グループ名> Snortを起動するグループの指定

今回の起動のさせ方ですけど、ログを見るためのアプリ「RazorBack」というのがあり、「X-Window」を利用しているなら使えるそうなので、インストールしてみました。

まず、Webminの「システム」>「ソフトウェアパッケージ」>「新規のパッケージをインストール」の中の「FTP またはhttp URL から」をチェックし、テキスト欄に
http://www.intersectalliance.com/projects/RazorBack
/razorback-1.0.3-1.i386.rpm

と入力して「インストール」ボタンをクリックします。

無事インストールされたら(出来ない場合は、アドレスをチェックしてください)、「インストール済みのパッケージ」のテキスト欄に「razorback」と入力して「パッケージの検索」ボタンをクリックします。

表示されたページの「ファイルのリスト」をクリックし、
razorback」へのパスを調べます。
/usr/bin/razorback」か、「/usr/sbin/razorback」かと思います。
これをメモしておきます。

では、ココまで来たら、「snort」を起動させます。 「razorback」を使用するので、以下のオプションで起動させます。

# /usr/sbin/snort -D -A fast -c /etc/snort/snort.conf -u snort -g snort

ログがある程度記録されたら、ターミナルを立ち上げて、

#razorback

と、打ち込むとGUIのログ表示が立ち上がります。

<Pre Next>

■目次

■最近観た映画2


■最近観た映画3

 


■ここがサブタイトル