Snort - 輕型的IDS工具 |
|
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
技術文章: Snort - 輕型的IDS工具 http://www.linuxhall.org/modules.php?name=News&file=article&sid=172 此文章由 pango 發表於3月27日 (星期六) 上午07:35 IDS (Intrusion Detection System),LinuxHall在數期前介紹另一個Kernel Level的IDS工具 - LIDS,Snort 與 LIDS都同屬是IDS的工具,但是,所負責的工作卻不盡相同。IDS所做的是紀錄有關任何攻擊及如Port Scan等,並即時作出報告,以使管理員能作出相對應的防備工作。 以下是Snort 與 LIDS 的長短處: 表一: 安裝 設定 易用 網絡保安 系統保安 網絡偵測 工具支援 LIDS 難 難 難 一般 很強 弱 沒有 Snort 很易 易 很易 沒有 沒有 很強 強 注: 排名次序分別為 ( 很易, 易, 一般, 難, 很難) 及 (很強, 強, 一般, 弱, 沒有) 由表一中得到的比較,LIDS與Snort是負責兩個不同方向的工作,Snort主要是用作偵測的,如果兩者一併使用,所得到的效果會是很好,由於以前已經介紹過LIDS,故今次向大家介紹Snort,一個很強的偵測系統。 如何取得及安裝 在本文撰寫時,Snort的最新版本為1.7,您可以到以下網址下載Snort 1.7。 http://www.snort.org/Files/snort-1.7.tar.gz http://www.snort.org/Files/Current/snortrules.tar.gz 或者先簡單的講解Snort的偵測方法,Snort執行後,會不斷的聽取來自網絡的各個IP包件,然後依照一些"Rules"與這些包件比較,一旦發現如果某些包件的內容與包件的內容相同,則會被分類,或者如果該包件是攻擊類,則會立即報告出來,所以,要使您的Snort可以偵測最新及最準的攻擊等,您必須要使用最新的Ruleset,所以您需要另外的下載新Ruleset。 Snort 是需要libpcap程式庫,如果您沒有安裝,您亦可以從Snort網站或是Linux CD中找到。此外,您亦可以使用如OpenSSL或是MySQL作為Snort執行的支援。安裝方法: # tar zxf snort-1.7.tar.gz # cd snort-1.7 # ./configure --enable-flexresp --with-mysql=/usr/local --with-openssl=/usr/local/openssl # make; make install 設定及啟動 我們可以把Snort運作在chroot的環境中,設定也是很簡單,首先,我們可以選定一個有足夠位置方置Snort的Log訊息的地方,如果您會定期檢查及清除Log檔案,您可以把Snort的chroot環境放在/home/snort中,然後所需的是一個用者,執行以下的指令新增Snort這個用者: # groupadd snort # useradd -g "snort" -d "/home/snort" -s "/nonexists" -c "Snort User" snort # mkdir /home/snort # chown snort.snort /home/snort 然後,把snortrules.tar.gz這個檔案解歷在/home/snort中,解壓了snortrules的包件後,在/home/snort內會有兩種的檔案,以"rules"為檔案伸廷的就是Snort使用的Ruleset,這些Ruleset就是供Snort用作偵測任何網絡反應的基礎。而另一個檔案即是"snort.conf",這是Snort的設定檔,我們不用去重新設計Snort的Ruleset檔,只需要設定snort.conf便可以。 在 snort.conf 中,我們只需要修改數個地方便可以執行 Snort,以下是可能需要修改的地方: - var HOME_NET 這是您的網絡或是主機的 IP,例如您只是得一台伺服器,您可以只輸入伺服器的 IP 地址,如果您的機囂有兩個以上的 IP,您可以使用這個方法: var HOME_NET [123.45.67.89,123.45.67.90] 或是 var HOME_NET 123.45.67.0/24 -var SMTP [IP.Address] 設定您的 SMTP 伺服器位置,如果與 HOME_NET 中的不同,您只需把 $HOME_NET 移除,並加其您指定 SMTP 機器的IP便可以。 - var HTTP_SERVERS 那一台為 HTTP 伺服器,與 SMTP 中的設定相同,如成為 Web Server 的不是 HOME_NET 機器,可以指定給其他的 IP。 - var DNS_SERVERS 設定您會使用 DNS 的IP地址,並且您需要 Uncomment 以下一行: preprocessor portscan-ignorehosts: $DNS_SERVERS 這可以防止因為 DNS 的 Lookup 而紀錄無謂的 PortScan 資料。 最後是有關紀錄部份的資料,剛才我們在編譯Snort時加進了"MySQL"的支援,為了使用 MySQL 紀錄資料,先要在 MySQL中建立 Snort 會使用的 Databases、用者名稱及密碼,執行以下指令: # echo "CREATE DATABASE snort;" | mysql -u root -p # grant INSERT,SELECT on snort.* to snort@localhost 然後在 Snort 的源始碼內找尋 "contrib/create_mysql",再封行以下指令建立 Tables # mysql -u root -p < create_mysql 完成後,別忘記在 snort.conf 中也要開動 MySQL 資料庫的支援,簡單地 Uncomment 以下數行: ruletype redalert { type alert output alert_syslog: LOG_AUTH LOG_ALERT output database: log, mysql, user=snort dbname=snort host=localhost } output database: log, mysql, user=snort dbname=snort host=localhost 最後的 - 執行 先是 cd 進入 /home/snort 內,然後打入這個指令: /home/snort # snort -u snort -t /home/snort -c /home/snort/snort.conf & -u 功能是使 snort 由 "snort" 這個用者執行,進入 chroot 的用者環境 -t 設定 Snort chroot 的目錄,提高一定的安全性 -c 指定使用的指定檔案 & 只是在背景中執行吧 :-) 結語 Snort 的設定與安裝都是很簡單,儘管 Snort 所做的不外是紀錄及提供偵測,可是這個工作卻不可以忽視,很多公司都有設定防火牆,而防火牆所做的是幫您防止多數的攻擊,加上使用 Snort 的強大IDS功能,網絡管理員可以即隨時知道一切 Cracker、Lamer 對公司網絡的攻擊,而同時可以改變防火牆的Rules,阻止外間而來的攻擊,這是單一防火牆不能為的。 作者:Shell Hung台灣災難都是事後算帳 無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 絲絲有2種 .net有很多種 一種治眼睛是MS 另一種治腦筋是Borland |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |