2013年10月29日 星期二

[研究] Snort 2.9.5.5 + Barnyard +BASE 安裝 (CentOS 6.4 x64)

[研究] Snort 2.9.5.5 + Barnyard +BASE 安裝 (CentOS 6.4 x64)

2013-10-29, 2013-12-17 修訂

********************************************************************************

這四篇是相關的

[研究] snort-2.9.5.5.tar.gz (CentOS 6.4 x64) 快速安裝程式
http://shaurong.blogspot.tw/2013/10/snort-2955targz-centos-64-x64.html

[研究] snort-2.9.5.5.tar.gz (CentOS 6.4 x64) 快速安裝程式(二)
http://shaurong.blogspot.tw/2013/10/snort-2955targz-centos-64-x64_28.html

[研究] Snort 2.9.5.5 + Barnyard 安裝 (CentOS 6.4 x64)
http://shaurong.blogspot.tw/2013/10/snort-2955-barnyard-centos-64-x64.html

[研究] Snort 2.9.5.5 + Barnyard +BASE 安裝 (CentOS 6.4 x64)
http://shaurong.blogspot.tw/2013/10/snort-2955-barnyard-base-centos-64-x64.html

********************************************************************************

請先照這篇完成安裝

[研究] Snort 2.9.5.5 + Barnyard 安裝 (CentOS 6.4 x64)
http://shaurong.blogspot.tw/2013/10/snort-2955-barnyard-centos-64-x64.html

ADOdb 官方網站
http://adodb.sourceforge.net/
(最後更新為 2012-09-04)

BASE 官方網站 (Basic Analysis and Security Engine)
http://base.secureideas.net/

開始安裝

請先手動下載把 base-1.4.5.tar.gz 和 adodb518a.tgz 放到 /usr/local/src 目錄

[root@localhost ~]#   su root

[root@localhost ~]#   cd  /usr/local/src
[root@localhost src]# wget  http://nchc.dl.sourceforge.net/project/adodb/adodb-php5-only/adodb-518-for-php5/adodb518a.tgz
[root@localhost src]# wget  http://nchc.dl.sourceforge.net/project/secureideas/BASE/base-1.4.5/base-1.4.5.tar.gz


# 安裝 BASE 需要的 php-gd、php-pear、php-pear-Image-Graph

[root@localhost src]# rpm  -Uvh  http://ftp.uninett.no/linux/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@localhost src]# yum -y install php-gd php-pear  php-pear-Image-Graph

PS:如果找不到 http://ftp.uninett.no/linux/epel/6/x86_64/epel-release-6-8.noarch.rpm
請到 http://ftp.uninett.no/linux/epel/6/x86_64 目錄找看看是否有新版本,例如
epel-release-6-9.noarch.rpm
 epel-release-6-10.noarch.rpm
 ....

# 安裝 BASE

[root@localhost src]# tar zxvf base-1.4.5.tar.gz -C /var/www/html
[root@localhost src]# mv /var/www/html/base-1.4.5 /var/www/html/base
[root@localhost src]# chmod a+w /var/www/html/base

# 安裝 ADODB

[root@localhost src]# tar zxvf adodb518a.tgz -C /var/www/html
[root@localhost src]# chmod a+w /var/www/html/adodb5

# 修改 php.ini

[root@localhost src]# vi  /etc/php.ini
找到 ;date.timezone =
底下增加一行
date.timezone = "Asia/Taipei"

找到 error_reporting = E_ALL & ~E_DEPRECATED
改為
error_reporting = E_ALL & ~E_NOTICE

找到
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
底下增加一行
include_path => .:/usr/share/pear:/usr/share/php

# 修改 /etc/php.ini,必須重新啟動 httpd 才能生效

[root@localhost src]# service httpd restart

(下圖) 開啟瀏覽器連上  http://xxx.xxx.xxx.xxx/base 網址 (IP 為 base 安裝哪台)






(下圖) 安裝成功了

# 移除剛剛暫時開放的權限

[root@localhost src]# chmod a-w /var/www/html/base
[root@localhost src]# chmod a-w /var/www/html/adodb5

BASE 安裝完成了 !!!

*****************************************************************************

測試

(下圖) 到另一台電腦用 nikto.pl 攻擊一下,等幾秒後,手動按下 F5 更新畫面,發現 Alerts 從 155 變成 248 了 (這個數字變化大家測試可能不同)


(完)

46 則留言:

  1. 本篇小弟實做完畢,資料庫的schema也有順利建立,BASE的安裝五個步驟小弟也完成了

    只是BASE還是跟之前一樣都沒有任何動作,真的感到很挫折

    小弟參照你的BASE截圖倒是發現一個不同點,在sensor/total 那個欄位

    我的sensor/total 顯示 0/1 這樣還是snort安裝不成功嗎?

    苦笑....

    回覆刪除
    回覆
    1. (1) ps aux | grep snort 檢查目前 snort 和 barnyand2 是否運行中
      (2) nikto.pl 攻擊後,phpMyAdmin 畫面,檢查 snortdb 的資料筆數是否有增加

      刪除
  2. 今天早上嘗試第3次跑所有流程,依舊可以安裝完畢,但是snort還是不會偵測

    想到您那麼辛苦都把答案寫出來了,我還是失敗,真是汗顏

    回覆刪除
    回覆
    1. 您有逐項確認過是否可以正常運做,然後才安裝下一下個?
      (1) 單獨安裝 Snort 是否正常運作?
      (2) 安裝 mysql + barnyard2 後是否正常運作
      (3) 安裝 ADODB 和 BASE 後是否正常運作 ?

      刪除
    2. 基本上都有確認過每個過程才會進行下一步,我也不知道問題到底出在哪裡

      下午有空會再跑這3個流程,實在不相信您都這麼費心寫過程我還裝不起來

      刪除
    3. 請問您所有操作都是 root 身分嗎?

      刪除
  3. 你好,台湾的盆友。我想实现实时发送alert 日志中的内容到指定的邮箱,需要什么操作?

    回覆刪除
  4. 今天再度重做SNORT
    在安裝設定BASE的第四個步驟出現這四項錯誤
    Warning: include_once(Mail.php) [function.include-once]: failed to open stream: No such file or directory in /var/www/html/base/includes/base_action.inc.php on line 29
    Warning: include_once() [function.include]: Failed opening 'Mail.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/base/includes/base_action.inc.php on line 29
    Warning: include_once(Mail/mime.php) [function.include-once]: failed to open stream: No such file or directory in /var/www/html/base/includes/base_action.inc.php on line 30

    Warning: include_once() [function.include]: Failed opening 'Mail/mime.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/base/includes/base_action.inc.php on line 30

    天阿,只差兩步了說

    回覆刪除
    回覆
    1. (1) ps aux | grep snort 檢查目前 snort 和 barnyand2 是否運行中
      (2) nikto.pl 攻擊後,phpMyAdmin 畫面,檢查 snortdb 的資料筆數是否有增加

      這兩個測試確定有起來
      BASE的設定沒有跑最後
      還需要找怎麼解上述部分

      刪除
    2. 找到解答了

      http://wfeng520.blog.hexun.com.tw/74377921_d.html

      不過明天要到公司才能知道能不能OK

      刪除
    3. [研究] php-pear-Mail 安裝(CentOS 6.4 x64)
      http://shaurong.blogspot.tw/2013/11/php-pear-mail-centos-64-x64.html

      刪除
    4. 那是 Warning,不是 Error,所以 BASEb 仍能運作,只是 mail 相關功能不能運作

      刪除
    5. 小弟重新測試,安裝 BASE 過程沒有出現 Mail 相關警告,
      而且上面 BASE 安裝的步驟圖片中,沒有出現填寫 Email 的地方

      檢查

      [root@localhost html]# yum list | grep php-pear-Mail
      php-pear-Mail.noarch 1.2.0-1.el6 epel
      php-pear-Mail-Mime.noarch 1.8.4-1.el6 epel
      php-pear-Mail-mimeDecode.noarch 1.5.5-1.el6 epel
      [root@localhost html]#

      電腦中並沒有安裝 php-pear-Mail (最後的 epel 前面沒有 @ 符號)

      請問您是有多設定甚麼地方嗎?

      刪除
    6. 如果你要用寄信功能,這篇也參考一下

      [研究 ] Mail Server 架設 (CentOS 6.4 x64)
      http://shaurong.blogspot.tw/2013/11/mail-server-centos-64-x64.html

      刪除
  5. 現在變成這個錯誤訊息

    上網查了一下 感覺是說要解php.ini的時區設定

    Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/base/base_main.php on line 138

    Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/base/base_main.php on line 139

    Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/base/base_main.php on line 140

    Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/base/base_main.php on line 147

    Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/base/base_main.php on line 148

    可是我的時區設置是這個date.timezone = "Asia/Taipei"

    SNORT程式正常運作,只是有這個錯誤訊息

    回覆刪除
    回覆
    1. BASE 很久沒改版了,用了目前認為是不安全的函數不足為奇

      另外你每次修改 /etc/php.ini 後,記得一定要執行 service httpd restart
      httpd 才會重新載入 php 設定

      刪除
  6. 請問有解決方式嗎?目前爬了幾篇文還是無法解決

    另外您的部落格時區為何和台灣時間不一様

    發文時會有點困惑

    另外你每次修改 /etc/php.ini 後,記得一定要執行 service httpd restart
    httpd 才會重新載入 php 設定 <----這個有做

    回覆刪除
    回覆
    1. > 另外您的部落格時區為何和台灣時間不一様
      不懂您的意思 ?

      刪除
    2. > 另外您的部落格時區為何和台灣時間不一様

      剛剛我發現我的預設時區不是 GMT+8 台灣,是 GMT-8 太平洋時間,我修改成 GMT+8 台北了

      刪除
  7. 已經解決時區的問題了

    是我在vi php.ini 時,沒打好字串導致php.ini 失效,這是低級錯誤,抱歉

    我的Snort 已經建置完畢,目前還需要慢慢研究針對哪些主機做監控、規則如何設定之類

    非常感謝您的教學文章,也十分感謝您的迅速回應及編寫文章的辛勞

    回覆刪除
  8. > 目前還需要慢慢研究針對哪些主機做監控、規則如何設定之類

    修改設定檔 /etc/snort/snort.conf
    var HOME_NET 192.168.1.0/24 (內部網路IP)
    var EXTERNAL_NET !$HOME_NET (表示所有Home_Net 以外的IP)

    SNORT\textregistered Users Manual 2.9.5.5
    http://manual.snort.org/

    回覆刪除
  9. 若您的工作不是專門做入侵分析和寫 snort rule,
    建議直接花錢買 Snort 官方提供的 rules
    不然就抓免費的的 rules (比付費的約晚山一個月釋出)

    例如你不會想為了省錢,自己去找病毒,寫病毒碼讓防毒軟體更新吧

    回覆刪除
    回覆
    1. 您好
      能不能實現如果偵測到攻擊馬上跳出提醒視窗
      以及接收到攻擊的當下馬上寄一封通知信給管理者
      請他進行後續的處理事宜??
      謝謝大大

      刪除
    2. > 如果偵測到攻擊馬上跳出提醒視窗
      Snort 基本上不是 X-Windows 或 MS-Windows 的圖形介面程式,
      所以只靠snort套件本身,猜測可能不行,
      可能需要其他套件,但是否存在,不確定

      > 以及接收到攻擊的當下馬上寄一封通知信給管理者
      我需要時間實測測試和驗證,但最近事情很多

      刪除
  10. 我有孤狗到樓上那位所想要的功能,是別人所寫好的SH,我沒驗證過,想說先請浮雲兄看看他人寫的快速檔有沒有哪裡有問題

    #!/usr/bin/perl

    use strict;

    my $snort_log = '/var/log/snort.log'; # location of snort.log generated
    by syslog
    my $snort_log_old = '/var/log/snort/old/snort'; # path to dir where to store
    old logs
    my $notify_log = '/var/log/snort/notify.log'; # path to log where to log
    notifications
    my $email = 'youremail@blah.com'; # guess what this is ;-)

    open(SNORT_LOG, "$snort_log");

    if (! ) {
    exit();
    }

    else {
    system("mail $email -s \"Snort alert\" < $snort_log");

    open(NOTIFY, ">>$notify_log");
    my $localtime = localtime();
    print NOTIFY "$localtime - Alert sent to $email\n";
    close NOTIFY;

    my $time = time();
    system("mv $snort_log $snort_log_old.$time");
    system("kill -SIGHUP \`cat /var/run/syslogd.pid\`");
    exit();
    }

    回覆刪除
    回覆
    1. 1.我不會 perl
      2.這是 2002 年的文章,不保證合用,可以試看看,但我不會 perl
      3. 它還有一些前置動作:

      Here is a quick and really dirty script I run, you have
      to setup snort to log via syslog and setup syslog to log
      snort alerts to a seperate file .. Only good if you have
      a small site really, and like I said, it's dirty:

      刪除
  11. snort 裝機完畢後似乎又失效
    下指令
    #service snortd status
    snort (pid 2135) is running...

    # snort -V
    ,,_ -*> Snort! <*-
    o" )~ Version 2.9.5.5 GRE (Build 205)
    '''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team
    Copyright (C) 1998-2013 Sourcefire, Inc., et al.
    Using libpcap version 1.0.0
    Using PCRE version: 7.8 2008-09-05
    Using ZLIB version: 1.2.3

    #ps axu| grep snort
    root 2135 0.1 9.4 657616 181600 ? Ssl 20:23 0:15 /usr/local/bin/snort -D -i eth0 -c /etc/snort/snort.conf
    root 2605 0.0 0.0 103248 828 pts/0 S+ 22:44 0:00 grep snort

    所有服務都有開 但是BASE就不會有任何資料新增 ,Mysql 看過也正常
    請問有甚麼方式可以再檢查看看Snort正常與否

    回覆刪除
    回覆
    1. 1.另外找一台主機,用 nikto 去攻擊 snort 這台看看
      2.你的 HOME_NET 設定正確嗎?(我不知道你的網路環境架構)

      刪除
  12. 1. 已經找另一台攻擊,但是無效
    2. HOME_NET是預設值,沒更動過
    3. iptable關了,但Snort也是沒反應

    回覆刪除
  13. 這幾天我也找了一些資料,有關Snort是否可以主動發出警告信的功能,有這個套件

    Snort Alert Monitor

    http://www.oschina.net/p/SAM 這是大陸那邊的介紹
    http://www.linuxtoday.com/security/2011101000439OSSWNT 歪國人的介紹

    不過小弟實力不夠,還在研究怎麼安裝中

    回覆刪除
    回覆
    1. 想做、想研究的東西很多,但是時間有限

      刪除
  14. 浮雲遊子 您好 我想請問一下,我在centos6.4的火狐打上我的IP+/base ,只有出現資料夾跟檔案...卻沒跳出base的介面,然後我前面那篇文章要打IP+phpMyAdmin 可是我也沒跳出該有的介面...請問該如何解決呢?

    回覆刪除
    回覆
    1. 不好意思 我忘記把 selinux 關掉了 ,現在可以開啟 base的介面了,但是我用ping 去ping我那台有裝snort的主機,發覺有裝snort的主機base網頁重整以後完全沒反應,然後使用./nikto.pl -h (snort主機ip)
      出現下列訊息

      - Nikto v2.1.5
      ---------------------------------------------------------------------------
      + No web server found on 192.168.65.130:80
      ---------------------------------------------------------------------------
      + 0 host(s) tested

      請問我該如何解決呢?

      刪除
    2. > 發覺有裝snort的主機base網頁重整以後完全沒反應
      您有 reboot 過?
      檢查 Apache Web Server 是否還啟動?

      service httpd status
      ps aux | grep httpd

      > + 0 host(s) tested
      您有安裝和啟動 Apache Web Server
      yum -y install httpd php php-mysql mysql mysql-server
      service httpd restart
      service iptables stop

      刪除
  15. 開啟 BASE網頁,sensor數目是0的話表示SNORT沒有安裝成功

    先檢查看看,如果是0那麼就整個安裝流程再來過

    回覆刪除
  16. 您好 我執行以下指令
    snort -dev -l ./var/log/snort -c /etc/snort/snort.conf
    最後出現下列錯誤,我已經有去看error後面顯示的log名稱是否存在,確實有此log,也有此目錄,但不知為何她會出現No such file or directory.....
    ERROR:spo_unified2.c(317) Could not open ./var/log/snort/snort.log.1384876010: No such file or directory
    Fatal Error, Quitting..

    回覆刪除
    回覆
    1. ./var/log/snort

      /var/log/snort

      意義不同
      前者路徑從目前路徑算起
      後者從根目錄算起

      刪除
  17. 感謝您的熱心回應!
    另外想請問一下
    我的base好像什麼東西都抓不到
    請問我大約哪邊設定錯誤?
    Sensors/Total: 0 / 1
    Unique Alerts: 0
    Categories: 0
    Total Number of Alerts: 0

    Src IP addrs: 0
    Dest. IP addrs: 0
    Unique IP links 0

    Source Ports: 0
    TCP ( 0) UDP ( 0)
    Dest Ports: 0
    TCP ( 0) UDP ( 0)

    回覆刪除
    回覆
    1. Snort 和 Barnyard 有逐篇安裝測試成功嗎 ?

      [研究] snort-2.9.5.5.tar.gz (CentOS 6.4 x64) 快速安裝程式
      http://shaurong.blogspot.tw/2013/10/snort-2955targz-centos-64-x64.html

      [研究] snort-2.9.5.5.tar.gz (CentOS 6.4 x64) 快速安裝程式(二)
      http://shaurong.blogspot.tw/2013/10/snort-2955targz-centos-64-x64_28.html

      [研究] Snort 2.9.5.5 + Barnyard 安裝 (CentOS 6.4 x64)
      http://shaurong.blogspot.tw/2013/10/snort-2955-barnyard-centos-64-x64.html

      刪除
  18. 我有參照這篇去建置自動發送MAIL的功能

    但是到後面會建不起來,我卡在安裝Snorby

    [利用git來下載Snorby的認證表]這邊,沒辦法下載檔案

    看來要另外找解答

    回覆刪除
    回覆
    1. Snorby 在 CentOS 6.4 x64 我沒有安裝成功

      刪除
  19. 我有照著
    snort-2.9.5.5.tar.gz (CentOS 6.4 x64) 快速安裝程式(二)
    Snort 2.9.5.5 + Barnyard 安裝 (CentOS 6.4 x64)
    Snort 2.9.5.5 + Barnyard +BASE 安裝 (CentOS 6.4 x64)
    這三篇文章做

    回覆刪除
  20. 一路照教學作下來順暢無比
    不過最後在yum -y install php-pear-Image-Graph這部份就出問題了
    出現No package php-pear-Image-Graph available
    現在就差這部份要解決了 =_=

    回覆刪除
    回覆
    1. rpm -Uvh http://ftp.uninett.no/linux/epel/6/x86_64/epel-release-6-8.noarch.rpm

      刪除
  21. 改版了

    [研究] Snort 2.9.6.1 + Barnyard + BASE 安裝 (CentOS 6.5 x64) 快速安裝程式
    http://shaurong.blogspot.tw/2014/06/snort-2961-barnyard-base-centos-65-x64_20.html

    回覆刪除