# rpm -qa |grep pcap libpcap-0.8.3-10.RHEL4 # # yum install pcre-devel # rpm -qa |grep pcre pcre-4.5-3.2.RHEL4 pcre-devel-4.5-3.2.RHEL4 # # # groupadd snort # useradd -g snort -d /dev/null -s /sbin/nologin snort # # cd /usr/local/src/ # wget http://www.snort.org/dl/current/snort-2.4.5.tar.gz # tar xvzf snort-2.4.5.tar.gz # cd snort-2.4.5 # # ./configure --prefix=/usr/local/snort # make # make install
# mkdir /etc/snort # cd /etc/snort/ # wget http://www.snort.org/pub-bin/oinkmaster.cgi/<oinkcode here>/snortrules-snapshot-2.4.tar.gz # tar xvzf snortrules-snapshot-2.4.tar.gz # vi /etc/snort/snort.conf
/etc/snort/snort.conf
#############################
# Set the network variables
#############################
var HOME_NET xxx.xxx.xxx.xxx/24 ※適宜変更
var EXTERNAL_NET !$HOME_NET
var DNS_SERVERS $HOME_NET
var SMTP_SERVERS $HOME_NET
var HTTP_SERVERS $HOME_NET
var SQL_SERVERS $HOME_NET
var TELNET_SERVERS $HOME_NET
var SNMP_SERVERS $HOME_NET
var HTTP_PORTS 80
var SHELLCODE_PORTS !80
var ORACLE_PORTS 1521
var AIM_SERVERS [64.12.24.0/23,64.12.28.0/23,64.12.161.0/24,64.12.163.0/24,64.12.200.0/24,
205.188.3.0/24,205.188.5.0/24,205.188.7.0/24,205.188.9.0/24,205.188.153.0/24,205.188.179.0/24,205.188.248.0/24]
var RULE_PATH /etc/snort/rules
###############################
# Configure the snort decoder
###############################
config disable_decode_alerts
config disable_tcpopt_experimental_alerts
config disable_tcpopt_obsolete_alerts
config disable_tcpopt_ttcp_alerts
config disable_tcpopt_alerts
config disable_ipopt_alerts
config flowbits_size: 256
###########################
# Configure preprocessors
###########################
preprocessor flow: stats_interval 0 hash 2
preprocessor frag3_global: max_frags 65536
preprocessor frag3_engine: policy first detect_anomalies
preprocessor stream4: disable_evasion_alerts
preprocessor stream4_reassemble
preprocessor http_inspect: global iis_unicode_map $RULE_PATH/unicode.map 1252
preprocessor http_inspect_server: server default profile all ports { 80 8080 8180 } oversize_dir_length 500
preprocessor rpc_decode: 111 32771
preprocessor telnet_decode
# sfPortscan
preprocessor sfportscan: proto { all } \
memcap { 10000000 } \
sense_level { low }
# portscan
#preprocessor portscan: $HOME_NET 100 5 portscan.log
#preprocessor portscan-ignorehosts: 172.16.1.0/24
#preprocessor bo
#preprocessor arpspoof
#preprocessor arpspoof_detect_host: 192.168.40.1 f0:0f:00:f0:0f:00
#preprocessor perfmonitor: time 300 file /var/snort/snort.stats pktcnt 10000
#preprocessor xlink2state: ports { 25 691 }
######################
# Log setting
######################
output alert_fast: alert
#output alert_full: alert
#output log_tcpdump: tcpdump.log
#output alert_syslog: LOG_LOCAL2 LOG_ALERT
#output database: alert, mysql, user=snort password=snort dbname=snort host=localhost sensor_name=sensor1 detail=full
#output alert_unified: filename snort.alert, limit 128
#output log_unified: filename snort.log, limit 128
#output alert_prelude: profile=snort
######################
# Customize rule set
######################
include $RULE_PATH/classification.config
include $RULE_PATH/reference.config
include $RULE_PATH/attack-responses.rules
include $RULE_PATH/backdoor.rules
include $RULE_PATH/bad-traffic.rules
include $RULE_PATH/chat.rules
include $RULE_PATH/ddos.rules
include $RULE_PATH/deleted.rules
include $RULE_PATH/dns.rules
include $RULE_PATH/dos.rules
include $RULE_PATH/experimental.rules
include $RULE_PATH/exploit.rules
include $RULE_PATH/finger.rules
include $RULE_PATH/ftp.rules
include $RULE_PATH/icmp-info.rules
include $RULE_PATH/icmp.rules
include $RULE_PATH/imap.rules
include $RULE_PATH/info.rules
include $RULE_PATH/local.rules
include $RULE_PATH/misc.rules
include $RULE_PATH/multimedia.rules
include $RULE_PATH/mysql.rules
include $RULE_PATH/netbios.rules
include $RULE_PATH/nntp.rules
include $RULE_PATH/oracle.rules
include $RULE_PATH/other-ids.rules
include $RULE_PATH/p2p.rules
include $RULE_PATH/policy.rules
include $RULE_PATH/pop2.rules
include $RULE_PATH/pop3.rules
include $RULE_PATH/porn.rules
include $RULE_PATH/rpc.rules
include $RULE_PATH/rservices.rules
include $RULE_PATH/scan.rules
include $RULE_PATH/shellcode.rules
include $RULE_PATH/smtp.rules
include $RULE_PATH/snmp.rules
include $RULE_PATH/spyware-put.rules
include $RULE_PATH/sql.rules
include $RULE_PATH/telnet.rules
include $RULE_PATH/tftp.rules
include $RULE_PATH/virus.rules
include $RULE_PATH/web-attacks.rules
include $RULE_PATH/web-cgi.rules
include $RULE_PATH/web-client.rules
include $RULE_PATH/web-coldfusion.rules
include $RULE_PATH/web-frontpage.rules
include $RULE_PATH/web-iis.rules
include $RULE_PATH/web-misc.rules
include $RULE_PATH/web-php.rules
include $RULE_PATH/x11.rules
#include threshold.conf
# mkdir /var/log/snort # chown -R snort:snort /etc/snort/ # chown -R snort:snort /var/log/snort/
# vi /etc/init.d/snort
/etc/init.d/snort
#!/bin/sh
#
# chkconfig: 2345 95 95
# description: snort
#
# processname: /usr/local/snort/bin/snort
# config: /etc/snort/snort.conf
# pidfile: /var/run/snort_eth0.pid
#
. /etc/rc.d/init.d/functions
SERVICE="snort"
SERVER="/usr/local/snort/bin/snort"
ARGS="-u snort -g snort -deD -k none -c /etc/snort/snort.conf -i eth0 -l /var/log/snort -m 022"
case "$1" in
start)
echo -n "Starting $SERVICE"
daemon $SERVER $ARGS
echo
touch /var/lock/subsys/$SERVICE
;;
stop)
echo -n "Stopping $SERVICE"
killproc $SERVICE
echo
rm -f /var/lock/subsys/$SERVICE
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $SERVICE {start|stop|restart}"
exit 1
esac
exit 0
# chmod +x /etc/init.d/snort # chkconfig --add snort # chkconfig --list |grep snort snort 0:off 1:off 2:on 3:on 4:on 5:on 6:off #
# /etc/init.d/snort start Starting snort [ OK ] #
| option | 説明 |
|---|---|
| -u | snortを実行するユーザを指定 |
| -g | snortを実行するグループを指定 |
| -i | パケットキャプチャするインターフェースを指定 |
| -v | コンソールにパケットを表示 |
| -d | アプリケーションレイヤーのデータを取り込む |
| -e | レイヤー2のパケットヘッダを取り込む |
| -D | デーモンモードでsnortを起動する |
| -b | tcpdumpフォーマットでパケットを記録する |
| -k | チェックサムモードを使用するかどうか。使用しなければ、動作は高速になる。Snortの設置状況で多いのは、ルーターやファイアウォールの後ろなので、チェックサムを行う必要がない。指定は、all、noip、notcp、noudp、noicmp、noneです。noneがもっとも高速。 |
| -A | full/console/none/unsock/cmgのいずれかを付属し、アラートの出力の詳細を選択する。unsockはまだ実験モードでUNIXソケットを使用して他のソケットへアラートを送出する。cmgで起動すると、コンソール上にfullで指定した場合と同じアラートが表示される。 |
| -c | 設定ファイルであるsnort.confのパス名を指定 |
| -l | ログディレクトリを指定する |
| -m | ログファイルのマスク |