linux 30% lab snort
DESCRIPTION
Linux 30% LAB SNORTTRANSCRIPT
資策會網工班 79 期 SUSE Linux LAB
Snort
入侵偵測系統 學 員:吳舒庭 指導老師:彭學勤 老師 楊宏文 老師
為何需要入侵偵測 入侵行為:
破壞或濫用系統
竊取機密的資料
盜用或癱瘓網路的服務
入侵偵測:
收集使用者和攻擊者的行為
分析這些行為的模式,建立比對的模組
根據模組找出入侵的行為
入侵偵測 IDS Snort 是一套免費的、跨平台的 NIDS,可用來偵測網路上的異常
封包。
檢查所有經過的封包,並利用特徵比對的方式判斷是否有可能的
入侵行為。
規則是使用開放的方式來發展的,所以可以自行加入偵測規則以
加強入侵行為的偵測。
SNORT 官方網站:http://www.snort.org/
snort 優點 偵測能力:能掃描 OSI Layer 7 的封包,補足防火牆的不足。
負載輕:Snort 的功能雖然強大,但是它的原始碼極為簡潔、短
小。
跨平台:目前它現有支援 Windows,Linux,Solaris,BSD,IRIX,HP-UX
等系統。
功能強大:具有流量分析及分析 IP 網路數據封包的能力。能夠迅
速地偵測網路攻擊。
遵循 GPL(公共通用許可):一般公司企業及個人、組織都可以自
由地使用它作為自己的 NIDS。
snort 原理 1. 封包蒐集:當有網路流量進入時,使用 PCAP 函式庫(Libpcap)獲
取封包。
2. 入侵行為偵測:當獲取封包後,判斷是否有異常 。
3. RULE 資料庫:如何判斷是否異常,須經由特徵碼資料庫
(RULE 資料庫)進行比對 。
特徵型:專家依據先前攻擊,撰寫特徵碼與封包進行比對
異常型:依據正常通訊模式,違反正常通訊模式時,判斷
有異常行為。
混合型:結合上述兩種模式,是目前趨勢。
4. 是否有異常資訊:當比對完成後,如無異常,送出正常資
訊,如有異常,送出警訊給管理者
LAB 實驗步驟 設置環境
在 http://susestudio.com/ 上下載 OPEN SUSE 11.2 版的圖形介面
下載格式為 vmware 檔,預先在 studio 安裝套件如下:
Libpcap1 Libpcap-devel Pcre Pcre-devel
Mysql Mysql-client Libmysqlclient16 Libmysqlclient-devel
Apache2 Apache2-mod-php5 Php5 Php5-mysql Php5-gd
Iputils
基本網路設定
設定網卡
#vim /etc/sysconfig/network/ifcfg-eth0
設定 default gateway 與 dns
並重起網路服務,測試網路是否能通
#vim /etc/sysconfig/network/routes
ddefault 192.168.238.2
#vim /etc/resolv.conf
dnameserver 168.95.1.1
安裝 Snort
#wget http://download.opensuse.org/repositories/server:/monitoring/openSUSE_11.2/i586/snort-2.8.6-1.1.i586.rpm
也可先一次將所有套件自行下載。
以下所有套件將放到 root 底下故不再特別說明。
#cd
#rpm -ivh snort-2.8.6-1.1.i586.rpm
安裝完先檢查相關組態檔與資訊是否正確無誤
#ll /etc/snort/
#ll /var/log/snort/
#id snort
設定 Snort 組態檔
#vim /etc/snort/snort.conf
25 var HOME_NET 192.168.238.0/24
並確認以下三行是否正確
28 var EXTERNAL_NET any
60 var RULE_PATH /etc/snort/rules
62 var PREPROC_RULE_PATH ../preproc_rules
將下載的 snort 規則解壓縮至/etc/snort/rules/
#mkdir /root/snort_rules
#cd /root/snort_rules
#tar -zxvf ../ snortrules-snapshot-2860.tar.gz 須先自行下載
#cp rules/* /etc/snort/rules/
測試 Snort 組態檔是否正確
#snort -T -c /etc/snort/snort.conf
輸入後最後須出現以下一行
Snort successfully loaded all rules and checked all rule chains!
#snort -vde 顯示 TCP/IP 表頭、資料與 Layer2 表頭
#snort -vd -l /var/log/snort/ 將收集到的資料紀錄起來
#ll /var/log/snort/ 檢查是否有記錄
#service snortd restart 啟動 snort 服務
#ll /var/log/snort/ 檢查是否有 eth0 的紀錄
★開啟規則★
#vim /etc/snort/snort.conf
測試 snort 功能
#watch tail -5 /var/log/snort/eth0/alert 即時監控入侵
到另外一台 XP 電腦下載
http://www.radmin.com/products/utilities/portscanner.php
輸入 snort 的 ip 後按下 Scan
回到即時監控畫面即可看到入侵的紀錄
將 Snort 的資訊存入 MySQL
#service snortd stop
#service mysql start
#/usr/bin/mysqladmin –u root password ‘123456’ 設定密碼
#chkconfig -level 135 mysql on 開機執行
#netstat -tlup | grep mysql 檢視執行狀態
#cd
#rpm –ivh snort-mysql-2.8.6-1.1.i586.rpm 安裝 snort 的 mysql 套件
#vim /etc/snort/snort.conf 開啟 database 的帳密與資料
建立 MySQL 相關帳號、密碼與資料庫
#mysql -u root -p
→123456
→create database snortdb;
→use snortdb;
→grant all on snortdb.* to snort@localhost;
→set password for snort@localhost=password(‘123’)
→flush privileges;
→exit
#mysql -u snort -p snortdb <
/usr/share/doc/packages/snort/schemas/create_mysql 同一行
→123
測試 snort 的 MySQL
#snort -T -c /etc/snort/snort.conf
輸入後最後須出現以下一行
Snort successfully loaded all rules and checked all rule chains!
#service snortd start
#service apache2 start
#chkconfig –level 135 apache2 on
安裝 BASE 網頁分析套件
#cd
#tar -zxvf base-1.4.4.tar.gz -C /srv/www/htdocs/
#mv /srv/www/htdocs/base-1.44/ /srv/www/htdocs/base
#chown wwwrun /srv/www/htdocs/base –R 給予 base 權限
#tar -zxvf adodb510.gz -C /srv/www/htdocs/
#vim /etc/php5/apache2/php.ini
#service apache2 restart
使用網頁瀏覽器開啟,輸入網址
建置完成後,用 xp 入侵會發現網頁會偵測不到任何的紀錄,
原因如下:
所以需要再輸入一行指令
#snort –c /etc/snort/snort.conf &
如此一來,兩邊都會有紀錄,而網頁也將會偵測到入侵紀錄
如下圖所示其他選項部分,還需要安裝其他繪圖套件才能使用,因找
不到適合的版本套件,所以留在下次再進行測試。
經驗分享一
從 studio 製作套件時遇到不少的問題,像製作時該用哪種格式下載,
或下載速度太慢,這些經過測試後發現如下:
1. 建議下載用 vmware ,iso 檔只有唯讀無法儲存。
2. 下載介面推薦使用 Linux 作業系統下載,相較於其他作業系統,
速度會提升好幾倍,可節省不少時間。
3. 在原始設定中,並沒有安裝 ping 的指令,所以必須先在雲端上安
裝 Iputils 套件,否則會不方便測試。
4. 在下載下來後,常會遇到某些套件沒選到,在文字介面想用 yast
安裝,卻又出現錯誤訊息,此時圖形介面就派上用場了。
Computer→More Application→Install Software
5. 在安裝 snort,須注意 open suse 11.2 不支援
snort-2.8.5.1-1.1.i586.rpm,所以下載 snort-2.8.6-1.1.i586.rpm,而新
版跟舊版有點不同,預設的規則都是未開的,必須到組態檔裡將
規則打開,否則是無法偵測到任何入侵動作。