天天看點

snort IPS 模式編譯安裝(腳本)snort IPS 模式編譯安裝(腳本)

snort IPS 模式編譯安裝(腳本)

目錄

snort IPS 模式編譯安裝(腳本)

編譯安裝

配置

啟動

測試

編譯安裝

作業系統:CentOS7.5.1804

使用者:root

腳本如下。

yum -y install gcc flex bison zlib zlib-devel libpcap libpcap-devel pcre pcre-devel libdnet libdnet-devel tcpdump epel-release openssl-devel glibc-headers gcc-c++ libmnl-devel libnfnetlink-devel libnetfilter_queue-devel
yum -y install nghttp2 luajit-devel
cd /root
wget http://prdownloads.sourceforge.net/libdnet/libdnet-1.11.tar.gz
wget https://www.snort.org/downloads/snort/snort-2.9.16.1.tar.gz
wget https://www.snort.org/downloads/snort/daq-2.0.7.tar.gz
tar -xzvf libdnet-1.11.tar.gz
tar -zxvf snort-2.9.16.1.tar.gz
tar -zxvf daq-2.0.7.tar.gz
cd libdnet-1.11
./configure "CFLAGS=-fPIC -g -O2"
make && make install
cd /root/daq-2.0.7
./configure
autoreconf -f -i
make && make install
cd /root/snort-2.9.16.1/
./configure --enable-sourcefire&&make&&make install
           

配置

至此安裝完畢。需要對snort進行配置。snort的配置目錄結構如下:

/etc/Snort

 ├── barnyard2.conf      barnyard2日志分析工具配置檔案

 ├── Snort.conf          Snort配置檔案(關鍵)

 ├── threshold.conf      事件過濾配置檔案

 ├── classification.config 規則分類配置檔案(classtype)

 ├── reference.config      外部參考配置檔案(reference)

 ├── gen-msg.map      generate id 和 msg 對應關系map

 ├── sid-msg.map      Snort id 和 msg對應關系map

 ├── unicode.map      預處理器http_inspect編碼翻譯檔案

 ├── preproc_rules       預處理器及解碼器規則集

 │ ├── decoder.rules 

 │ ├── preprocessor.rules

 │ └── sensitive-data.rules

 ├── rules               Snort規則集(關鍵)

 │  ├── WEB-iis.rules

 │  ├── WEB-php.rules

├── so_rules            Share Object規則集

 │  ├── browser-ie.rules

 │  ├── browser-other.rules 
...
           

啟動

啟動snort(change interface and location of snort.conf to match your environment).:

sudo snort -Q --daq nfq --daq-var device=br0 --daq-var queue=1 -c /etc/snort/snort.conf -l /var/log/snort -D
           

由于IPS模式下snort會和netfilter關聯進行阻斷,是以需要建立snort使用的隊列。例如:

sudo /usr/sbin/iptables -t nat -I PREROUTING -j NFQUEUE --queue-num 1
sudo /usr/sbin/iptables -I FORWARD -j NFQUEUE --queue-num 1
sudo /usr/sbin/iptables -I INPUT -j NFQUEUE --queue-num 1
           

上述代碼段使得snort對prerouting的nat表,forward,input的資料包都會進行過濾。

測試

在local.rules檔案裡面添加2條規則:

drop icmp any any -> $HOME_NET any (msg:"Drop ping";sid:8886288)
alert icmp any any -> $HOME_NET any (msg:"Drop ping";sid:8886289)
           

第一條丢棄所有ping包,第二條收到ping包後告警。

測試結果:ping包被丢棄并且在/var/log/snort/alert檔案裡可以看到告警。

繼續閱讀