侵入者検知システムの導入
■03/06/18
結局「Snort」が本当に役に立つのかわからないままでいます(※注)。とにかく欲しくないログばかり記録してくれます。「Snort」を起動中にもコードレッド等のアタックがあるはずなのに、全くそれに関しては無効のようです。pingにも反応しなければ、シマンテックのセキュリティーチェックにも反応しません。唯一Windowsとのパケットでのやりとり?が一定の時間ごとに記録されていくだけみたいです。
それでもインストールしたいならば、以下のように・・・
ここからソースを拾ってきます。ココではかりに「/root/DL」以下にDLしてきたとします。(以前のバージョンで作成されたlogが残っていると起動に失敗することがあるので、ログをディレクトリごと削除してください。)
次に、ターミナルを立ち上げて
$cd /root/DL
$ tar -zxvf snort-2.0.0.tar.gz
$ cd snort-2.0.0
$ ./configure
$ make
$ su
passwd:*********
# make inastall
これでインストールは完了ですが、専用のディレクトリを作成したり、作成されたいくつかのファイルを移動させてやります。
まず、「snort」というユーザーを作成します。
# groupadd snort
# useradd -g snort -d /dev/null -c "Snort
User" -s /bin/false snort
ファイルマネージャーを起動させ、「/etc/snort」(注:所有者はrootでもよいが、他人も読み込み可能とする)と「/var/log/snort」(注:所有者を「snort」にします。)を作成します。
先ほど作成された「/root/DL/snort-2.0.0」の中に、「etc」と「rules」というディレクトリがあると思います。「etc」の中の「classification.config」と「snort.conf」と「reference.config」を「/etc/snort」以下にコピーし、ディレクトリ「rules」も同じ場所にコピーします。
次に「snort.conf」を開きます。以下のようにします。
var HOME_NET 192.168.1.0/24
#192.168.1.7/32とすると「192.168.1.7」を監視するのですが、やたらめったらおかしなログばかり記録されました。「SMB」と「IIS」に関するエラーのようですが・・・(※注)
var EXTERNAL_NET !$HOME_NET
# List of DNS servers on your network
var DNS_SERVERS 192.168.1.7/32
# List of SMTP servers on your network
var SMTP_SERVERS 192.168.1.7/32
# List of web servers on your network
var HTTP_SERVERS 192.168.1.7/32
# List of sql servers on your network
var SQL_SERVERS 192.168.1.7/32
# List of telnet servers on your network
var TELNET_SERVERS 192.168.1.7/32
# Ports you run web servers on
var HTTP_PORTS 80
# Ports you want to look for SHELLCODE on.
var SHELLCODE_PORTS !80
# Ports you do oracle attacks on
var ORACLE_PORTS 1521
var AIM_SERVERS [64.12.24.0/24,64.12.25.0/(一行で)
24,64.12.26.14/24,64.12.28.0/
24,64.12.29.0/(一行で)
24,64.12.161.0/
24,64.12.163.0/24,205.188.5.0/(一行で)
24,205.188.9.0/24]
var RULE_PATH ./rules
preprocessor frag2
preprocessor stream4: detect_scans, disable_evasion_alerts
preprocessor stream4_reassemble
preprocessor http_decode: 80 unicode iis_alt_unicode double_encode
iis_flip_slash full_whitespace
preprocessor rpc_decode: 111 32771
preprocessor bo
preprocessor telnet_decode
#ポートスキャンの検知。これは3秒間に4つ以上のポートにアクセスした場合にportscan.logに記述する。
preprocessor portscan: $HOME_NET 4 3 portscan.log
#ポートスキャンを行っても検知しないネットワークアドレスを記述
#preprocessor portscan-ignorehosts: 0.0.0.0
#preprocessor arpspoof_detect_host: 192.168.40.1 f0:0f:00:f0:0f:00
# preprocessor conversation: allowed_ip_protocols all, timeout 60,
max_conversations 3000
#preprocessor portscan2: scanners_max 256, targets_max 1024, target_limit
5, port_limit 20, timeout 60
さらにシグニチャのインクルード設定をします。同じく「snort.con」に続けて書き込みます。
include classification.config
include reference.config
#本当は、「/etc/snort/rules」ではなくて「$RULE_PATH」なのだけれど、うまくいきませんでした。
include /etc/snort/rules/bad-traffic.rules
include /etc/snort/rules/exploit.rules
include /etc/snort/rules/scan.rules
include /etc/snort/rules/finger.rules
include /etc/snort/rules/ftp.rules
include /etc/snort/rules/telnet.rules
include /etc/snort/rules/rpc.rules
include /etc/snort/rules/rservices.rules
include /etc/snort/rules/dos.rules
include /etc/snort/rules/ddos.rules
include /etc/snort/rules/dns.rules
include /etc/snort/rules/tftp.rules
include /etc/snort/rules/web-cgi.rules
include /etc/snort/rules/web-coldfusion.rules
include /etc/snort/rules/web-iis.rules
include /etc/snort/rules/web-frontpage.rules
include /etc/snort/rules/web-misc.rules
include /etc/snort/rules/web-client.rules
include /etc/snort/rules/web-php.rules
include /etc/snort/rules/sql.rules
include /etc/snort/rules/x11.rules
include /etc/snort/rules/icmp.rules
include /etc/snort/rules/netbios.rules
include /etc/snort/rules/misc.rules
include /etc/snort/rules/attack-responses.rules
include /etc/snort/rules/oracle.rules
include /etc/snort/rules/mysql.rules
include /etc/snort/rules/snmp.rules
include /etc/snort/rules/smtp.rules
include /etc/snort/rules/imap.rules
include /etc/snort/rules/pop2.rules
include /etc/snort/rules/pop3.rules
include /etc/snort/rules/nntp.rules
include /etc/snort/rules/other-ids.rules
# include /etc/snort/rules/web-attacks.rules
# include /etc/snort/rules/backdoor.rules
# include /etc/snort/rules/shellcode.rules
# include /etc/snort/rules/policy.rules
# include /etc/snort/rules/porn.rules
# include /etc/snort/rules/info.rules
#pingで反応(けどしなかった・・・※以下の「実験するには」を参照)↓
include /etc/snort/rules/icmp-info.rules
# include /etc/snort/rules/virus.rules
# include /etc/snort/rules/chat.rules
# include /etc/snort/rules/multimedia.rules
# include /etc/snort/rules/p2p.rules
include /etc/snort/rules/experimental.rules
include /etc/snort/rules/local.rules
ココまで出来たら、起動させます。
# /usr/local/bin/snort -A fast -c /etc/snort/snort.conf
-u snort -g snort
エラーがでなければオッケーです。
「/var/log/snort」以下に「alert」と「portscan.log」というファイルが出来ていると思います。
「実験するには?」
「snort.conf」の「include
/etc/snort/rules/icmp-info.rules」を有効にさせ
「EXTERNAL_NET」を
var EXTERNAL_NET [!$HOME_NET,192.168.1.7]
#クライアントのPCのIPを加える。
で、snortを起動させます。192.168.1.7のマシンから「ping」を打ち込んでみます。
[**] [1:382:4] ICMP PING Windows [**]
[Classification: Misc activity] [Priority: 3]
06/18-23:24:54.905641 192.168.1.7 -> 192.168.1.10
ICMP TTL:128 TOS:0x0 ID:48357 IpLen:20 DgmLen:60
Type:8 Code:0 ID:512 Seq:6144 ECHO
[Xref => http://www.whitehats.com/info/IDS169]
こんな感じのログが残ると思います。
この続きは、こちらで。
<Pre Next>