Snort是一種目前所知最便宜的IDS(入侵偵測系統)解決方案。由於為開放原始碼系統且不斷的持續發展,因此亦受到職業界相當廣泛的使用及關注;
雖然效能不如Cisco、3com的硬體式IDS,但後者動札數十萬元的解決方案亦使大部分中小型網路環境不勝任於此種高貴的安全控管系統,因此在中小型、甚至是傭有多台電腦的個人環境下均為最佳之IDS,若搭配外掛則可以動態控制Linux Iptables防火牆以達到簡易ICS(入侵防禦系統)之目的。
![]()
![]()
本文由夢夢狐(mach_cannon)製作,援用開放創用姓名標示─相同方式分享 2.5 授權。
http://creativecommons.org/licenses/by-sa/2.5/tw/deed.zh_TW
在遵從此授權下任何人均可在不通知原作者情況下自由發布、轉貼、及發展此文章。
Snort:Linux CentOS version
1.安裝前預備動作
Linux版本的Snort安裝本身雖較Windows版簡易些,不過由於需要對Linux本身有些了解
因此難度亦不亞於安裝Windows版本之Snort平台
由於php5的大幅度更改使ACID無法於php5環境中正常運作且Fedora code 4/5更換php版本步驟過於繁瑣
因此直接改採用仍在使用php4之CentOS作為本次的教學文。
(光是確定是php的問題,以及嘗試更換Fedora code的php版本就花了很多時間了.......)
無論是Linux版本還是等一下會說到的Windows版本,請注意盡量以新安裝的系統作為平台
其上不要有任何其他程式以浪費伺服器之效能。
由於IDS系統需要將任何接收到的封包給解開、過濾並重新傳送,因此實用上在高流量環境效能要求相當大
實際利用時多半甚是會將HTTP伺服器和MySQL資料庫分散到另一台伺服器代勞,以避免流量過大時掉封包的情形。
首先在安裝系統時,請先確認以下套件已安裝:
HTTP伺服器:
php
php-mysql
PHP資料庫:
mysql-server
mysqlclient10
![00.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/00.jpg)
![01.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/01.jpg)
然後也請至桌面的應用程式=>系統設定=>伺服器設定=>服務
去檢查httpd和mysqld是否有設為開機時啟動。
![03.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/03.jpg)
在Linux下Apache網頁伺服器的根目錄是在/var/www/html/ 資料夾
在其中建立一個空白檔案,命名為index.php
並寫入以下內容:
<?php phpinfo(); ?>
將文件存檔,開啟網路瀏覽器,在網址列鍵入http://localhost/
Apache和php都正常的話,就會出現一張php自我檢測網頁
同時上面也會顯示php的版本。
![04.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/04.jpg)
可以建立一個捷徑到/var/www/html/ 在使用者目錄,對往後的工作會方便一些
指令是ln -s /var/www/html/
2.phpmyadmin
首先請至http://www.phpmyadmin.net/ 取得phpmyadmin這套MySQL管理程式
因為安裝方便性的緣故,因此請使用2.7pl2版本
或著也可以使用最新的版本,使用內建的安裝程式來設定安裝檔
![05.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/05.jpg)
在下載完成後整個解壓縮,置入Apache的網頁目錄中
輸入http://localhost/[phpmyadmin的資料夾名]/ 即可。
為求安全性,請將該資料夾名稱改成只有自己知道的名稱。
如果Apache、php、MySQL全部正常,那麼phpmyadmin就可以正常啟動
![06.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/06.jpg)
之後,首先可以看到首頁下方的紅色警告,root沒有密碼是會使整個系統相當危險的
因此需要更改root的密碼和一些安全性設定
進入到權限頁面,更改root的密碼;同時這個自訂的MySQL密碼請牢記,過程中會再使用到
![07.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/07.jpg)
![08.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/08.jpg)
然後正常的話就會有錯誤訊息出現
![09.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/09.jpg)
回到phpmyadmin的資料夾下,找到config.inc.php檔案
如果沒有這個檔案,就改為修改config.default.php
找尋$cfg['Servers'][$i]['password'] = ''; 改為$cfg['Servers'][$i]['password'] = '[MySQL密碼]';
更改完成後就會回復正常,且有密碼的保護了
接下來請將所有其他的未使用帳號以及資料庫test給刪除......。
3.進入www.snort.org取得安裝檔
進入下載頁時,可以看到上方的選項
選擇Binaries => Linux => 所要安裝的snort版本rpm套件
並將snort安裝完成。請下載RHEL版本的snort和snort-mysql,下載完成後滑鼠左鍵雙點即可安裝。
如果snort-mysql安裝錯誤那麼就可能下載到了fedora code 4的版本,請移除後重新安裝
(移除指令是 yum remove [rpm套件名稱] )
然後在shell直接鍵入snort指令確認
如果出現snort小豬豬的圖樣和錯誤訊息就代表snort本身(不含設定檔)是安裝成功了......>w<
4.編輯snort.conf
snort.conf位置在 /etc/snort內,等一下下載的規則檔內也有個snort.conf可使用(需自行複製)
找尋# output database: log, mysql, user=root password=test dbname=db host=localhost
改為output database: alert, mysql, user=snort password=[mySQL密碼] dbname=snort_log host=localhost sensor_name=[本機電腦名稱]
(均為同一行)
5.回到snort.org,下載規則檔案
![09.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/win/09.jpg)
![10.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/win/10.jpg)
![11.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/win/11.jpg)
請下載免費且免註冊的Sourcefire VRT Certified Rules版本規則檔,版本雖舊但已足夠
(最新版需付費購買)
下載後解壓縮,將2個資料夾直接複製到/etc/snort資料夾之下覆蓋原資料夾即可
6.編輯MySQL
回到剛剛的phpmyadmin(http://localhost/phpMyAdmin/)
首先使用權限功能增加使用者
![12.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/win/12.jpg)
選取Add a new user
User name設為snort
Host則是選取旁邊的下拉式選單中的local(只准許本地連結)
密碼和當初設定的MySQL密碼相同
權限請照下圖的方式選取
![14.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/14.jpg)
同樣的方法請再新增帳號名acid,除User name外全部相同
完成後會是這樣:
![15.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/15.jpg)
回到首頁,有個增加新資料庫的方塊
分別打入snort_log和snort_archive,以增加2個新的資料庫
瀏覽器中的phpmyadmin畫面請先不要關掉,之後回到網路上的www.snort.org,下載snort同一版本的原始碼編譯版本
![16.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/16.jpg)
去找解壓縮資料夾下的\schemas中create_mysql檔案,將檔案開啟
把裡面的內容全都一字不漏複製起來
回到瀏覽器,進入到snort_log選單(直接選取剛剛的下拉式方塊中的資料庫名即可)
選取上方選單的sql選項
![17.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/17.jpg)
內容全部貼到那個大方塊裡面,然後選取下方的「go」
![18.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/18.jpg)
然後執行snort
snort -c /etc/snort/snort.conf
如果出現錯誤訊息請回頭再檢查,正常的話會使snort卡在這個地方(開始正常執行)
不過基本上和windows版相較簡單許多,一般都不會有問題
如果要停止執行的話,請直接按ctrl-c強迫停止,snort停止後會列出報表顯示執行的狀況
如果以後想開機即執行的話,也請至桌面的應用程式=>系統設定=>伺服器設定=>服務
去檢查snortd是否有設為開機時啟動。
7.安裝ACID
http://acidlab.sourceforge.net/
![19.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/19.jpg)
此處是使用0.9.6b23(不過ACID已經停止發展了所以版本不會再更新)
解壓縮後將整個目錄置入網頁資料夾/var/www/html下
ACID執行需要ADODB、PHPlot及JPGraph三項函式庫
ADODB:http://adodb.sourceforge.net/
PHPlot:http://sourceforge.net/projects/phplot/
JPGraph:http://www.aditus.nu/jpgraph/
建議全部一起下載並解壓縮後再繼續動作
ADODB及PHPlot和ACID一樣置入Appserv套件的網頁目錄中,JPGraph解壓後複製所有的*.inc檔案及*.php檔案置入PHPlot的資料夾內。
回頭到ACID的設定,找到ACID目錄中的acid_conf.php,並開始修改(一樣需使用notepad2)
找尋$DBlib_path = ""; 改為$DBlib_path = "var/www/html/adodb";
將以下設定
$alert_dbname = "snort_log";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "root";
$alert_password = "mypassword";
全部改為
$alert_dbname = "snort_log";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "acid";
$alert_password = "[mySQL密碼]";
副資料庫亦同,將以下全部設定
$archive_dbname = "snort_archive";
$archive_host = "localhost";
$archive_port = "";
$archive_user = "root";
$archive_password = "mypassword";
全數改為
$archive_dbname = "snort_archive";
$archive_host = "localhost";
$archive_port = "";
$archive_user = "acid";
$archive_password = "[mySQL密碼]";
找尋ChartLib_path = ""; 改為ChartLib_path = "/var/www/html/phplot";
之後開啟http://localhost/acid/查看是否成功,如果成功的話會呈現如此頁面
如果失敗的話檢查一下......完全無法檢查出原因時,則改用root帳號
![20.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/20.jpg)
按下setup page,然後在下一頁按下create ACID AG
![21.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/21.jpg)
![22.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/22.jpg)
......至此一切全部完成!
最後,在Linux版本中補上一張抓到攻擊封包的畫面
![23.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/23.jpg)
![24.jpg](http://img.photobucket.com/albums/v375/mach92410024/snort/centos/24.jpg)
最後編輯: