close
實 驗 說 明
入侵偵測系統依偵測型式可分為網路型入侵偵測系統(Network-based Intrusion Detection System,以下簡稱為 NIDS)及主機型入侵偵測系統(Host-based Intrusion Detection System,在此我們不多加討論主機型入侵偵測系統)。
NIDS網路型入侵偵測系統通常部署在網域閘道上 (gateway),通過竊聽 (sniffer) 的方式,
即時監測網路上的封包並比對攻擊模式,當發現有疑似入侵行為時能即時提出警告的
防禦系統。
實 驗 環 境
CentOS 6 x1 : 安裝套件如下 #以下套件版本截至本日最新ver.
前 置 作 業
編譯前必要安裝套件
> yum install gcc gcc-c++ kernel-devel patch make vim ssh libxml2 libxml2-devel
次安裝網頁LAMP架構與Base使用到相關PHP套件(本例使用nginx+php-fpm另外裝)
*若是採用LAMP架構請參考以下安裝*

本Lab規劃建置相關目錄與說明
daq 安裝
> cd /usr/local
> tar zxvf daq-0.5.tar.gz
> cd daq-0.5
> ./configure && make && make install
---------
mkdir -p /etc/snort/ #手動建立存放snort相關組態檔,與目錄
mkdir -p /var/log/snort/ #手動建立存放snort相關log存放檔目錄
groupadd snort #新增群組snort
useradd -g snort snort #建立snort 使用者,並設置主要群組為snort
chown - R snort:snort /var/log/snort #改變權限存取者
touch /var/log/snort/alert #建立log儲存alert訊息檔案
chmod 600 /var/log/snort/alert #修改alert 權限600
mkdir /var/log/barnyard2 # 預先建立好barnyard2 log目錄
----開始安裝snort 2.9.0 主程式---
> cd /usr/local
> tar zxvf snort-2.9.0.5.tar.gz
> cd snort-2.9.0.5
> ./configure --prefix=/usr/local/snort --with-mysql --enable-ipv6 --enable-gre --enable-mpls --enable-targetbased --enable-decoder-preprocessor-rules --enable-ppm --enable-perfprofiling --enable-zlib --enable-active-response --enable-normalizer --enablereload --enable-react --enable-flexresp3
> make && make install #安裝路徑指定為/usr/local/snort 與啟用mysql 資料庫儲存功能
---安裝snort rules---
> cd /usr/local
> tar zxvf snortrules-snapshot-2905.tar.gz -C /etc/snort #將snort rules 解壓縮至/etc/snort
> cd /etc/snort
> cp etc/* /etc/snort #將etc下所有檔案拷背自上層/etc/snort/目錄下
> mkdir /usr/local/lib/snort_dynamicrules
> cp /etc/snort/so_rules/precompiled/RHEL-6-0/i386/*.so /usr/local/lib/snort_dynamicrules
#PS: RULE OS 版本請對照選擇與自己OS相通版本檔案進行複製
> cat /etc/snort/so_rules/*.rules >> /etc/snort/rules/so-rules.rules
-----MySQL 配置Snort+Base儲存設計----
> mysql -u root -pxxx #登入mysql
> create database snort; #建置 snort DB
> grant all on snort.* to snort@localhost identified by ''xxxxxx'; #配置snort user供base 程式存取
> flush privileges;
> exit
>cd /usr/local/snort-2.9.0.5/schemas
> mysql -p < create_mysql snort #匯入資料庫表格至Snort 資料庫
接著我們使用phpMyAdmin 剛登入檢視表格,應該如下圖所示
http://192.168.0.151/phpMyAdmin # phpMyAdmin 3.4.3.2 界面真煥然一新呢

-----初始化Snort組態檔案------
vi /etc/snort.conf
修改參數部份(A) #請讀者手動修正Snort對應參數路徑

修改參數部份(B) #請讀者手動修正Snort Rule 所對應參數路徑
var RULE_PATH /etc/snort/rules
修改參數部份(C) #請讀者手動修正unifiled2 ,修改如下

修改參數部份(D) #配置Snort資料輸出儲存於MySQL DB ,修改格式如下(Uncommet)
output database: log, mysql, dbname=snort user=snort password=XXXXX host=localhost

--啟動snort 服務,若遇Bug請尋線檢查Error設定--
> /usr/local/snort/bin/snort -c /etc/snort/snort.conf # -D 背景執行
#無錯誤顯示,Check 到此步驟即可
----配置LNMP環境(Nginx+Base+Adodb+MySQL)----
nginx wwwroot: /var/www/html #nginx+php-fpm 組態已在前篇blog 配置好,不熟者請往前查閱
adodb 位於 /var/www/html/adodb #將adodb512.zip 解壓縮為/var/www/html/adodb 即可
base 位於 /var/www/html/base #將base-1.4.5.tar.gz 解壓縮為/var/www/html/base 即可
THEN Near 開啟Broswer 初始化安裝base架構
http://192.168.0.151/base/
#請依照指示指定base 存取DB(snort) 與 授權連線DB User(snort) Step by Step 即可完成安裝
最尾巴步驟將新增Base Admin , 本人配置Near為Admin . Then 再次登入網頁應如下
PS> 嗯...Base 已成功建立起來了, 稍後我們將測試Snort 運作,與Snort Data是否順利寫入DB?

-------Barnyard安裝-------
> cd /usr/local
> tar zxvf barnyard2-1.9.tar.gz
入侵偵測系統依偵測型式可分為網路型入侵偵測系統(Network-based Intrusion Detection System,以下簡稱為 NIDS)及主機型入侵偵測系統(Host-based Intrusion Detection System,在此我們不多加討論主機型入侵偵測系統)。
NIDS網路型入侵偵測系統通常部署在網域閘道上 (gateway),通過竊聽 (sniffer) 的方式,
即時監測網路上的封包並比對攻擊模式,當發現有疑似入侵行為時能即時提出警告的
防禦系統。
實 驗 環 境
CentOS 6 x1 : 安裝套件如下 #以下套件版本截至本日最新ver.
snort-2.9.0.5.tar.gz
snortrules-snapshot-2905.tar.gz
guardian-1.7.tar.gz
base-1.4.5.tar.gz
daq-0.5.tar.gz
libdnet-1.12.tgz
barnyard2-1.9.tar.gz
adodb512.zip
------Web Site 相關運行架構-----
Nginx+PHP-FPM (PHP 5.3.6 ,Nginx 8.55)
MySQL 5.5.15
PS.Near本人依照Snort原文官方手冊一步步Setup起來,請您參考該手冊與本文做對照
因官方文件寫的很詳細,本人僅將操作步驟點出得注意事項,最後並裝上Guardian套件與
base 網頁分析瀏覽界面使Snort具備簡易IPS入侵偵測防禦系統(宜佈署至閘道式或透通式F/W上)
[ BASE 安全分析引擎 ]

snortrules-snapshot-2905.tar.gz
guardian-1.7.tar.gz
base-1.4.5.tar.gz
daq-0.5.tar.gz
libdnet-1.12.tgz
barnyard2-1.9.tar.gz
adodb512.zip
------Web Site 相關運行架構-----
Nginx+PHP-FPM (PHP 5.3.6 ,Nginx 8.55)
MySQL 5.5.15
PS.Near本人依照Snort原文官方手冊一步步Setup起來,請您參考該手冊與本文做對照
因官方文件寫的很詳細,本人僅將操作步驟點出得注意事項,最後並裝上Guardian套件與
base 網頁分析瀏覽界面使Snort具備簡易IPS入侵偵測防禦系統(宜佈署至閘道式或透通式F/W上)
[ BASE 安全分析引擎 ]

編譯前必要安裝套件
> yum install gcc gcc-c++ kernel-devel patch make vim ssh libxml2 libxml2-devel
次安裝網頁LAMP架構與Base使用到相關PHP套件(本例使用nginx+php-fpm另外裝)
*若是採用LAMP架構請參考以下安裝*
>yum install pcre pcre-devel php php-common php-gd php-cli php-mysql flex bison php-pear-Numbers-Roman php-pear-Numbers-Words php-pear-Image-Color php-pear-Image-Canvas php-pear-Image-Graph libpcap libpcap-devel mysql mysql-devel mysql-bench mysql-server libdnet
PS: 本人慣用幾個Reposity(remi,rpmforge,dag,epel,義守大學)

本Lab規劃建置相關目錄與說明
daq 安裝
> cd /usr/local
> tar zxvf daq-0.5.tar.gz
> cd daq-0.5
> ./configure && make && make install
---------
mkdir -p /etc/snort/ #手動建立存放snort相關組態檔,與目錄
mkdir -p /var/log/snort/ #手動建立存放snort相關log存放檔目錄
groupadd snort #新增群組snort
useradd -g snort snort #建立snort 使用者,並設置主要群組為snort
chown - R snort:snort /var/log/snort #改變權限存取者
touch /var/log/snort/alert #建立log儲存alert訊息檔案
chmod 600 /var/log/snort/alert #修改alert 權限600
mkdir /var/log/barnyard2 # 預先建立好barnyard2 log目錄
----開始安裝snort 2.9.0 主程式---
> cd /usr/local
> tar zxvf snort-2.9.0.5.tar.gz
> cd snort-2.9.0.5
> ./configure --prefix=/usr/local/snort --with-mysql --enable-ipv6 --enable-gre --enable-mpls --enable-targetbased --enable-decoder-preprocessor-rules --enable-ppm --enable-perfprofiling --enable-zlib --enable-active-response --enable-normalizer --enablereload --enable-react --enable-flexresp3
> make && make install #安裝路徑指定為/usr/local/snort 與啟用mysql 資料庫儲存功能
---安裝snort rules---
> cd /usr/local
> tar zxvf snortrules-snapshot-2905.tar.gz -C /etc/snort #將snort rules 解壓縮至/etc/snort
> cd /etc/snort
> cp etc/* /etc/snort #將etc下所有檔案拷背自上層/etc/snort/目錄下
> mkdir /usr/local/lib/snort_dynamicrules
> cp /etc/snort/so_rules/precompiled/RHEL-6-0/i386/*.so /usr/local/lib/snort_dynamicrules
#PS: RULE OS 版本請對照選擇與自己OS相通版本檔案進行複製
> cat /etc/snort/so_rules/*.rules >> /etc/snort/rules/so-rules.rules
-----MySQL 配置Snort+Base儲存設計----
> mysql -u root -pxxx #登入mysql
> create database snort; #建置 snort DB
> grant all on snort.* to snort@localhost identified by ''xxxxxx'; #配置snort user供base 程式存取
> flush privileges;
> exit
>cd /usr/local/snort-2.9.0.5/schemas
> mysql -p < create_mysql snort #匯入資料庫表格至Snort 資料庫
接著我們使用phpMyAdmin 剛登入檢視表格,應該如下圖所示
http://192.168.0.151/phpMyAdmin # phpMyAdmin 3.4.3.2 界面真煥然一新呢

-----初始化Snort組態檔案------
vi /etc/snort.conf
修改參數部份(A) #請讀者手動修正Snort對應參數路徑
dynamicpreprocessor directory /usr/local/snort/lib/snort_dynamicpreprocessor/
dynamicengine /usr/local/snort/lib/snort_dynamicengine/libsf_engine.so

修改參數部份(B) #請讀者手動修正Snort Rule 所對應參數路徑
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules

修改參數部份(C) #請讀者手動修正unifiled2 ,修改如下
output unified2: filename snort.log, limit 128

修改參數部份(D) #配置Snort資料輸出儲存於MySQL DB ,修改格式如下(Uncommet)
output database: log, mysql, dbname=snort user=snort password=XXXXX host=localhost

--啟動snort 服務,若遇Bug請尋線檢查Error設定--
> /usr/local/snort/bin/snort -c /etc/snort/snort.conf # -D 背景執行
#無錯誤顯示,Check 到此步驟即可

nginx wwwroot: /var/www/html #nginx+php-fpm 組態已在前篇blog 配置好,不熟者請往前查閱
adodb 位於 /var/www/html/adodb #將adodb512.zip 解壓縮為/var/www/html/adodb 即可
base 位於 /var/www/html/base #將base-1.4.5.tar.gz 解壓縮為/var/www/html/base 即可
THEN Near 開啟Broswer 初始化安裝base架構
http://192.168.0.151/base/
#請依照指示指定base 存取DB(snort) 與 授權連線DB User(snort) Step by Step 即可完成安裝
最尾巴步驟將新增Base Admin , 本人配置Near為Admin . Then 再次登入網頁應如下
PS> 嗯...Base 已成功建立起來了, 稍後我們將測試Snort 運作,與Snort Data是否順利寫入DB?

-------Barnyard安裝-------
> cd /usr/local
> tar zxvf barnyard2-1.9.tar.gz
> cd barnyard2-1.9
> ./configure --with-mysql &&make && make install
> cp etc/barnyard2.conf /etc/snort
THEN Near編輯Barnyard組態檔
vi /etc/snort/barnyard2.conf #修改參數如下.儲存後離開
config hostname localhost
config interface eth0
THEN Near 啟動Barnyard 如下
snort -c /etc/snort/snort.conf -i eth0 #首先啟動snort 服務,-i 為listen 界面
cp /dev/null /var/log/snort/barnyard.waldo #建立barnyard.waldo 檔案
啟動Barnyard 服務
var/log/snort -f snort.log -w /var/log/snort/barnyard.waldo
檢視一下這兩個程序(Snort&Barnyard)都已ON起來

---測試Snort 運作(使用base檢視)--
檢視Base 網頁 http://192.168.0.151/base/index.php
# 確定snort 是可以寫入mysql 資料庫 data資料是一直更新...

#我們可從進一步 view 紀錄分析與攻擊報告

---Guardian 安裝與組態---
Guardian 將監視SNORT 之Alert 訊息,並呼叫IPTABLES 以BLOCK 該IP惡意行為之套件,
目前官方最新版本1.7
>tar zxvf guardian-1.7.tar.gz
>cd guardian-1.7
> touch /etc/snort/guardian.ignore
> touch /etc/snort/guardina.target
> touch /var/log/snort/guardian.log
>cp guardian.pl /usr/local/bin/
>cp scripts/iptables_block.sh /usr/local/bin/guardian_block.sh
>cp scripts/iptables_unblock.sh /usr/local/bin/guardian_unblock.sh
>cp guardian.conf /etc/snort
組態guardian 組態檔案如下
vi /etc/snort/guardian.conf
THEN Near編輯Barnyard組態檔
vi /etc/snort/barnyard2.conf #修改參數如下.儲存後離開
config hostname localhost
config interface eth0
THEN Near 啟動Barnyard 如下
snort -c /etc/snort/snort.conf -i eth0 #首先啟動snort 服務,-i 為listen 界面
cp /dev/null /var/log/snort/barnyard.waldo #建立barnyard.waldo 檔案
啟動Barnyard 服務
/usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /
var/log/snort -f snort.log -w /var/log/snort/barnyard.waldo
檢視一下這兩個程序(Snort&Barnyard)都已ON起來

---測試Snort 運作(使用base檢視)--
# 確定snort 是可以寫入mysql 資料庫 data資料是一直更新...

#我們可從進一步 view 紀錄分析與攻擊報告

---Guardian 安裝與組態---
Guardian 將監視SNORT 之Alert 訊息,並呼叫IPTABLES 以BLOCK 該IP惡意行為之套件,
目前官方最新版本1.7
>cd guardian-1.7
> touch /etc/snort/guardian.ignore
> touch /etc/snort/guardina.target
> touch /var/log/snort/guardian.log
>cp guardian.pl /usr/local/bin/
>cp scripts/iptables_block.sh /usr/local/bin/guardian_block.sh
>cp scripts/iptables_unblock.sh /usr/local/bin/guardian_unblock.sh
>cp guardian.conf /etc/snort
組態guardian 組態檔案如下
vi /etc/snort/guardian.conf
Interface eth0
LogFile /var/log/snort/guardian.log
AlertFile /var/log/snort/alert
IgnoreFile /etc/snort/guardian.ignore
TimeLimit 86400 #約一週釋放該被封鎖IP
[啟動guardian程式]
TimeLimit 86400 #約一週釋放該被封鎖IP
[啟動guardian程式]
/usr/bin/perl /usr/local/bin/guardian.pl -c /etc/snort/guardian.conf
#guardian 啟用成功如下,將先檢查,guardian.ignore(白名單) guardian.target IP

#guardian 啟用成功如下,將先檢查,guardian.ignore(白名單) guardian.target IP

[測試入侵封鎖]
/usr/sbin/snort -de -l /var/log/snort -c /etc/snort/snort.conf -A full #修改警訊輸出
THEN 我們使用一台ubuntu (.182)對snort(.151)對nmap 攻擊 Port-Scan
MAC Address: 00:0C:29:89:0C:D6 (VMware)
THEN 我們再回頭切換回Snort 主機 查看IPTABLE 明細
> iptables -L #Guardian 已成功呼叫iptables且主動寫入一條RULES阻檔NMAP攻擊主機

/usr/sbin/snort -de -l /var/log/snort -c /etc/snort/snort.conf -A full #修改警訊輸出
THEN 我們使用一台ubuntu (.182)對snort(.151)對nmap 攻擊 Port-Scan
All 1000 scanned ports on 192.168.0.151 are filtered #.182 此IP已經被Guardian Block
MAC Address: 00:0C:29:89:0C:D6 (VMware)

THEN 我們再回頭切換回Snort 主機 查看IPTABLE 明細
> iptables -L #Guardian 已成功呼叫iptables且主動寫入一條RULES阻檔NMAP攻擊主機

總結:
Near是參照官方原文手冊進行佈建與測試,Snort 很適合佈署至"閘道"與"透通式防火牆上" THANKS
官方手冊的連結: http://www.snort.org/assets/159/Snort_2.9.05_FC14.pdf
Snort+Guardian 為本人極想導入企業資安簡易IPS想法之一,日前架設過程曾遇到不少瓶頸,終於突破
並且測試成功了Oh Yeah
Near是參照官方原文手冊進行佈建與測試,Snort 很適合佈署至"閘道"與"透通式防火牆上" THANKS
官方手冊的連結: http://www.snort.org/assets/159/Snort_2.9.05_FC14.pdf
Snort+Guardian 為本人極想導入企業資安簡易IPS想法之一,日前架設過程曾遇到不少瓶頸,終於突破
並且測試成功了Oh Yeah
全站熱搜