Page 1

中壢資策會網路工程師 養成班第八十期 SUSE LINUX 30% LAB

IDS 入侵偵測系統 SNORT

指導教師:彭學勤 學 員:林煥堂 學 號:31000143


前言 大部分的企業網路安全防護主要都是仰賴防火牆來過濾網路的 封包及阻擋威脅。而防火牆必須要能時時更新對威脅封包及來源的資 料,才能達到防護的效果。而網管人員常因為麻煩或疏忽,或是本身 資訊能力不足,使得防火牆形同虛設,無法有效阻擋威脅。因此單單 只依賴防火牆來維護企業的網路安全是不夠的。 為了能夠更完善的做好網路安全防護,網管人員能夠越早得知入 侵威脅的警訊,是相當重要的。能夠及早發現並預防攻擊的發生,比 事後的亡羊補牢更能夠減少損害。所以網管人員,就得隨時的監測網 路使用的狀況。 一般來說,網管人員常透過網路的流量分析來得知目前網路的流 量大小,藉以判斷網路使用的現況與提供服務的伺服器效能是否出現 異常。但看似正常的流量,底下是否正有駭客在進行入侵或攻擊的動 作,網管人員並無法得知。 所以要使用入侵偵測系統(IDS),來協助瞭解網路上的封包傳 輸,藉由入侵偵測系統的協助,可以早一步偵測出「惡意」的封包, 向網管人員提出「警告」 ,讓網管人員在進一步的「入侵」或「危害」 發生之前,能夠有足夠的時間採取適當的措施來防範阻止。 為了提高企業網路的安全性,我們希望能透過防火牆與入侵偵測 系統結合,互相支援,互補不足,利用各自的優點,來降低網路入侵 威脅的風險,以提升企業的資訊安全。


網路拓樸圖

系統環境 VMware Workstation ver.7.0.1

Operating System:OpenSUSE 11.1


網路設定

所需套件 封包擷取套件:libpcap0、libpcap-devel、pcre、pcre-devel 記錄檔更新套件:logrotate (ver.3.7.7) Snort 套件:snort-2.8.6.1-1.1.i586 (ver.2.8.6.1) Mysql 套件(ver.5.0.67):mysql、mysql-client、libmysqlclient15、 libmysqlclient-devel Apache (ver.2.2.10)套件:apache2、apache2-mod_php5 PHP (ver.5.2.11)套件:php5、php5-mysql、php5-gd BASE 網頁分析套件 (ver.1.4.4):base-1.4.4.tar.gz OinkMaster 更新規則套件 (ver.2.0):oinkmaster-2.0.tar.gz 升級為 IPS 套件 Guardian (ver.1.7):guardian-1.7.tar.gz


安裝流程 封包擷取套件:libpcap0、libpcap-devel、pcre、pcre-devel

記錄檔更新套件:logrotate (ver.3.7.7)

安裝 Snort:

設定 Snort 組態檔:

(自己想監視的網段) (rules 的目錄)

安裝 Snort 規則:

測試 Snort 組態檔是否正確:

每秒顯示最新 5 個攻擊記錄


將 Snort 資訊存入 MySQL 安裝 MySQL 及相關套件:

設定 MySQL Server 密碼:

設定開機啟動 MySQL Server:

安裝 Snort 的 MySQL 套件:

設定 Snort 組態檔對 MySQL 的存取帳號、密碼與資料庫名稱:

建立 MySQL 帳號、密碼與資料庫:

匯入 Snort 的 MySQL 資料表與欄位:(密碼:uc102)


網頁化統計分析相關套件安裝流程 安裝 Apache 與 PHP 相關套件:

設定開機啟動 Apache:

測試 php 是否安裝正確無誤:

打開 IE Browser 網址鍵入 10.120.12.117/phpinfo.php 測試 php 是否安裝正確無誤

安裝 BASE 網頁分析套件:

給網頁 BASE 目錄名稱與檔案權限為 Apache(wwwrun):

將 BASE 需要的 adodb for PHP5 解壓縮至網頁根目錄:

降低 PHP 安全層級(如有錯誤會 Show 出訊息): (直接將 344 行的註解取消)


設定 BASE 網頁分析套件: 打開 IE Browser 網址鍵入 10.120.12.117/base/setup 即出現設定畫面


BASE 設定完成後,可以用 browser 開啟 10.120.12.117/base 查看狀態:

安裝 Snort 規則更新套件- OinkMaster 2.0:

至 Snort 官方網站取得 Oinkcode 後,將 oinkcode 鍵入至/etc/oinkmaster.conf 內 第 52 行<oinkcode>欄位中

規則更新指令:


升級為 IPS - Guardian (ver.1.7) Guardian 主要是結合 Snort,依據 Snort 所產生的警訊來自動更新防火牆的規則,以 達到自動防護的安全程式。透過 Guardian 可以即時更新防火牆規則,阻擋所有來自攻 擊主機 IP 位址的封包。支援的防火牆包括ipchains、iptables、ipfwadm、FreeBSD using IPFW、ipfilter、Checkpoint Firewall、PixFirewall 等。

Guardian 的主要兩個設定檔:

guardian.ignort 主要為設定經常存取本系統主機的IP,為網路管理者所信任的IP,可以避免在連線 時遭到 guardian 以防火牆封鎖封包。例如DNS主機、getways、郵件主機等,網路管理 者也可自行加入信賴的主機IP。

guardian.target 這個檔案主要紀錄了所要防護的主機IP,包含主機 IP。當 Snort 所偵測到的封包, 符合了 Snort 的規則條件,觸發了 Snort 的警告,而其目的 IP 為列表中的IP 時,則 guardian 就會呼叫防火牆,封鎖來源IP所發送的封包。 Guardian 可以依據網路管理者需求,設定封鎖 IP 的時間。當封鎖時間限制一到,即解 除該IP的封鎖。對於區域網路內部電腦發生異常狀況時,相當具有彈性。


Guardian 套件安裝流程 先下載 guardian-1.7 套件:

將 guardian-1.7 套件解壓縮至根目錄下:

複製 scripts 下的 iptables_block及unblock.sh 到/usr/local/bin/

複製 Guardian 組態檔 到 /etc/ 及 Guardian.pl 到 /usr/local/bin

編輯 Guardian 組態檔 將 AlertFile 的存放路徑改為/var/log/snort/alert

建立 Guardian 的 log 記錄檔

執行 Guardian

設定開機自動執行 Guardian

#最後增加此行 /usr/bin/perl /usr/local/bin/guardian.pl -c /etc/guardian.conf


補充 Q:如何得知攻擊來源 IP 位址等資訊? A:在 BASE 網頁上就可以得知來源 IP 的資訊。


心得 Linux-LAB,做起來並不像 MS-LAB 好做,因為從 GUI 換成 CLI 來做,不像 MS 那 麼方便,必須全都是用打指令的方式來進行,所以用Linux感覺變得較專業。 之所以選擇 IDS 這個主題,是因為對網路安全這塊領域較有興趣,而 IDS 是建立 在一般企業網路的前線,再結合 Guardian 這個套件,讓原本只是單純的入侵偵測系統, 變成具有主動阻擋異常行為 IP 的入侵防禦系統,可以透過它偵測到惡意入侵的封包, 進而封鎖該 IP 。 雖然這次的 LAB 沒有成功,但是讓我學會了如何去 survey 問題,也讓我知道團隊 合作是非常重要的,在此非常感謝 Guru 老師的教導,一直給我們 survey 問題的時間, 能夠讓我們好好思考問題點在哪裡。

SNORT  

SNORT+GUARDIAN=IPS

Read more
Read more
Similar to
Popular now
Just for you