Issuu on Google+

資策會網工班 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 Mysql

Libpcap-devel

Mysql-client

Apache2

Pcre

Pcre-devel

Libmysqlclient16

Apache2-mod-php5

Php5

Iputils

基本網路設定 設定網卡 #vim /etc/sysconfig/network/ifcfg-eth0

Libmysqlclient-devel

Php5-mysql

Php5-gd


設定 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 #vim /etc/snort/snort.conf

安裝 snort 的 mysql 套件 開啟 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 #tar -zxvf adodb510.gz -C /srv/www/htdocs/ #vim /etc/php5/apache2/php.ini

給予 base 權限


#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,而新


版跟舊版有點不同,預設的規則都是未開的,必須到組態檔裡將 規則打開,否則是無法偵測到任何入侵動作。


Linux 30% LAB SNORT