20
資策會網工班 79 SUSE Linux LAB Snort 入侵偵測系統 員:吳舒庭 指導老師:彭學勤 老師 楊宏文 老師

Linux 30% LAB SNORT

  • Upload
    -

  • View
    215

  • Download
    0

Embed Size (px)

DESCRIPTION

Linux 30% LAB SNORT

Citation preview

Page 1: Linux 30% LAB SNORT

資策會網工班 79 期 SUSE Linux LAB

Snort

入侵偵測系統 學 員:吳舒庭 指導老師:彭學勤 老師 楊宏文 老師

Page 2: Linux 30% LAB SNORT

為何需要入侵偵測 入侵行為:

破壞或濫用系統

竊取機密的資料

盜用或癱瘓網路的服務

入侵偵測:

收集使用者和攻擊者的行為

分析這些行為的模式,建立比對的模組

根據模組找出入侵的行為

入侵偵測 IDS Snort 是一套免費的、跨平台的 NIDS,可用來偵測網路上的異常

封包。

檢查所有經過的封包,並利用特徵比對的方式判斷是否有可能的

入侵行為。

規則是使用開放的方式來發展的,所以可以自行加入偵測規則以

加強入侵行為的偵測。

SNORT 官方網站:http://www.snort.org/

Page 3: Linux 30% LAB SNORT

snort 優點 偵測能力:能掃描 OSI Layer 7 的封包,補足防火牆的不足。

負載輕:Snort 的功能雖然強大,但是它的原始碼極為簡潔、短

小。

跨平台:目前它現有支援 Windows,Linux,Solaris,BSD,IRIX,HP-UX

等系統。

功能強大:具有流量分析及分析 IP 網路數據封包的能力。能夠迅

速地偵測網路攻擊。

遵循 GPL(公共通用許可):一般公司企業及個人、組織都可以自

由地使用它作為自己的 NIDS。

snort 原理 1. 封包蒐集:當有網路流量進入時,使用 PCAP 函式庫(Libpcap)獲

取封包。

2. 入侵行為偵測:當獲取封包後,判斷是否有異常 。

3. RULE 資料庫:如何判斷是否異常,須經由特徵碼資料庫

(RULE 資料庫)進行比對 。

特徵型:專家依據先前攻擊,撰寫特徵碼與封包進行比對

異常型:依據正常通訊模式,違反正常通訊模式時,判斷

有異常行為。

Page 4: Linux 30% LAB SNORT

混合型:結合上述兩種模式,是目前趨勢。

4. 是否有異常資訊:當比對完成後,如無異常,送出正常資

訊,如有異常,送出警訊給管理者

Page 5: Linux 30% LAB SNORT

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

Page 6: Linux 30% LAB SNORT

設定 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

Page 7: Linux 30% LAB 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 須先自行下載

Page 8: Linux 30% LAB SNORT

#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

Page 9: Linux 30% LAB SNORT

測試 snort 功能

#watch tail -5 /var/log/snort/eth0/alert 即時監控入侵

到另外一台 XP 電腦下載

http://www.radmin.com/products/utilities/portscanner.php

輸入 snort 的 ip 後按下 Scan

回到即時監控畫面即可看到入侵的紀錄

Page 10: Linux 30% LAB SNORT

將 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 的帳密與資料

Page 11: Linux 30% LAB SNORT

建立 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

Page 12: Linux 30% LAB SNORT

安裝 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

Page 13: Linux 30% LAB SNORT

#service apache2 restart

使用網頁瀏覽器開啟,輸入網址

Page 14: Linux 30% LAB SNORT
Page 15: Linux 30% LAB SNORT

建置完成後,用 xp 入侵會發現網頁會偵測不到任何的紀錄,

原因如下:

Page 16: Linux 30% LAB SNORT

所以需要再輸入一行指令

#snort –c /etc/snort/snort.conf &

如此一來,兩邊都會有紀錄,而網頁也將會偵測到入侵紀錄

Page 17: Linux 30% LAB SNORT

如下圖所示其他選項部分,還需要安裝其他繪圖套件才能使用,因找

不到適合的版本套件,所以留在下次再進行測試。

經驗分享一

從 studio 製作套件時遇到不少的問題,像製作時該用哪種格式下載,

或下載速度太慢,這些經過測試後發現如下:

1. 建議下載用 vmware ,iso 檔只有唯讀無法儲存。

Page 18: Linux 30% LAB SNORT

2. 下載介面推薦使用 Linux 作業系統下載,相較於其他作業系統,

速度會提升好幾倍,可節省不少時間。

3. 在原始設定中,並沒有安裝 ping 的指令,所以必須先在雲端上安

裝 Iputils 套件,否則會不方便測試。

4. 在下載下來後,常會遇到某些套件沒選到,在文字介面想用 yast

安裝,卻又出現錯誤訊息,此時圖形介面就派上用場了。

Computer→More Application→Install Software

Page 19: Linux 30% LAB SNORT

5. 在安裝 snort,須注意 open suse 11.2 不支援

snort-2.8.5.1-1.1.i586.rpm,所以下載 snort-2.8.6-1.1.i586.rpm,而新

Page 20: Linux 30% LAB SNORT

版跟舊版有點不同,預設的規則都是未開的,必須到組態檔裡將

規則打開,否則是無法偵測到任何入侵動作。