Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> Linux系統中Snort輕型的IDS工具

Linux系統中Snort輕型的IDS工具

日期:2017/2/7 9:21:43      編輯:Linux教程

一、snort介紹

  Snort是被設計用來填補昂貴的、探測繁重的網絡侵入情況的系統留下的空缺。Snort是一個免費的、跨平台的軟件包,用作監視小型TCP/IP網的嗅探器、日志記錄、侵入探測器。它可以運行在linux/UNIX和Win32系統上,你只需要幾分鐘就可以安裝好並可以開始使用它。

  Snort的一些功能:

  - 實時通訊分析和信息包記錄

  - 包裝有效載荷檢查

  - 協議分析和內容查詢匹配

  - 探測緩沖溢出、秘密端口掃描、CGI攻擊、SMB探測、操作系統侵入嘗試

  - 對系統日志、指定文件、Unix socket或通過Samba的WinPopus 進行實時報警

  Snort有三種主要模式:信息包嗅探器、信息包記錄器或成熟的侵入探測系統。遵循開發/自由軟件最重要的慣例,Snort支持各種形式的插件、擴充和定制,包括數據庫或是XML記錄、小幀探測和統計的異常探測等。

  信息包有效載荷探測是Snort最有用的一個特點,這就意味著很多額外種類的敵對行為可以被探測到。

  二、所需軟件包的安裝以及安裝

  下在所需要的軟件包

  1.libcap

  http://www.mirrors.wiretapped.net/security/packet-capture/libpcap/libpcap-0.8.3.tar.gz

  2.snort

  http://www.snort.org/dl/snort-2.2.0.tar.gz

  3.snort trules

  http://www.snort.org/dl/rules/snortrules-snapshot-2_2.tar.gz

  4.openssl

  http://www.openssl.org/source/openssl-0.9.7d.tar.gz

  5.acid基於Web的入侵事件數據庫分析控制台

  http://acidlab.sourceforge.net

  6.gd

  http://www.boutell.com/gd/

  7.adodb為ACID提供便捷的數據庫接口;

  http://php.weblogs.com/ADODB

  8.phplot ACID所依賴的制圖庫;

  http://www.phplot.com/

  9.apache

  http://www.apache.org

  10.mysql

  http://wwww.mysql.com

  11.php(v>4.2)

  http://www.php.net

  開始安裝:

  1.安裝MySQL,

  #addgroup mysql

  #adduser mysql

  然後,以mysql身份登錄,執行下列命令:

  $gzip -d -c mysql-3.23.49.tar.gz | tar xvf -

  $cd mysql-3.23.49

  $./configure

  $make

  $make install

  2.安裝openssl

  #tar zxvf openssl*

  #cd openssl

  #./configure

  #make

  #make test

  #make install

  3.安裝libpcap

  #tar zxvf libpcap*

  #cd libpcap-0.8.3

  #./configure

  如果出現:

  configure: warning: cannot determine packet capture interface

  configure: warning: (see INSTALL for more info)

  說明需要編譯系統內核,使其對CONFIG_PACKET支持

  #make

  #make install

  4.安裝snort

  #tar zxvf snort*

  #cd snort-2.2.0

  #./configure --enable-flexresp --with-mysql=/usr/local/mysql --with-openssl=/usr/local/ssl

  支持mysql,持openssl 還有更多的一些選項,可以參見tarball文檔

  如果出現:

  ERROR! Libpcre header not found, go get it from

  請http://www.pcre.org下載lib庫安裝即可。

  如果出現:

  ERROR! Libnet header not found

  請http://www.packetfactory.net/projects/libnet/下載安裝即可。

  如果已經安裝,可以用--with-libnet-* 選項

  #make

  #make install

  5.安裝apache

  #./configure --prefix=/usr/local/apache --enable-so

  #make

  #make install

  6.安裝gd

  首先安裝為PHP提供既時生成PNG和JPG圖象功能的GD庫:

  #gzip -d -c gd-2.0.28.tar.gz | tar xvf -

  #cd gd-2.0.28

  #make

  #make install

  7.安裝php

  #gzip -d -c php-4.3.2.tar.gz | tar xvf -

  #cd php-4.3.2

  #./configure -with-mysql=/usr/local/mysql

  --with-apxs=/usr/local/apache/bin/apxs

  --with-gd=/usr/local

  #make

  #make install

  8.安裝ACID

  該部分的安裝工作具體包括三個軟件包:adodb452.tar.gz、phplot-5.0rc1.tar.gz和acid-0.9.6b23.tar.gz 。安裝過程十分簡單,只需分別將這三個軟件包解壓縮並展開在Apache服務器的文檔根目錄下即可,具體操作

  如下所示:(本服務器的文檔目錄為/www/ids)

  #cd /www/ids/

  #gzip -d -c adodb452.tar.gz | tar xvf -

  #gzip -d -c phplot-5.0rc1.tar.gz | tar xvf -

  #gzip -d -c acid-0.9.6b23.tar.gz | tar xvf -

  然後開始配置工作,轉到acid目錄下編輯ACID的配置文件:acid_conf.php給下列變量賦值:

  $Dblib_path="../adodb"

  $DBtype="mysql"

  $alert_dbname="snort"

  $alert_host="localhost"

  $alert_port="3306"

  $alert_user="root"

  $alert_password="123"

  $archive_dbname="snort"

  $archive_host="localhost"

  $archive_port="3306"

  $archive_user="root"

  $archive_password="123"

  $ChartLib_path="../phplot"

  $Chart_file_format="png"

  $portscan_file="/var/log/snort/portscan.log"

  好,到此,所需軟件安裝完成,下面進入snort的設定與啟動

  三、snort的設定與啟動

  我們可以把Snort運做在chroot的環境中,設定也是很簡單,首先,可以選定一個有足夠位置放置Snort的Log的地方,如果您會定期檢查及清除Log文檔,您可以把Snort的chroot環境放在/home/snort中,然後需要的是一個

  snort使用者,執行以下的指令新增Snort這個用者:

  # groupadd snort

  # useradd -g "snort" -d "/home/snort" -s "/nonexists" -c "Snort User" snort

  然後,把snortrules.tar.gz這個文件解壓在/home/snort中,解壓了snortrules包後,在/home/snort/內有rules文件出現,這就是Snort使用的Ruleset,這些Ruleset就是供Snort用作偵測任何網絡反映的基礎。在rules中有一個是"snort.conf",它是Snort的配置文件,需要按實際情況修改snort.conf。

  在 snort.conf 中,需要修改幾個地方便可以執行 Snort,以下是可能需要修改的地方:

  - var HOME_NET

  網絡或是主機的 IP,例如只有這一台服務器,就可以只輸入服務器的 IP 地址,如果機器有兩個以上的 IP,

  可以使用這個方法:

  var HOME_NET [192.168.1.1,192.168.1.2]

  或是

  var HOME_NET 192.168.1.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 以下:

  在454行:

  output database: log, mysql, user=snort password=123 dbname=snort host=localhost

  在493行:

  ruletype redalert

  {

  type alert

  output alert_syslog: LOG_AUTH LOG_ALERT

  output database: log, mysql, user=snort dbname=snort host=localhost

  }

  四,執行snort

  一切准備工作都做好了,那麼現在開始讓snort運行起來了哦:)

  但在這之前請:

  #mkdir /var/log/snort

  #chown snort.snort /var/log/snort

  現在開始 cd 進入 /home/snort 內,然後打入這個命令:

  /home/snort #snort -b -d -i eth0 -u snort -g snort -c /home/snort/rules/snort.conf -l /var/log/snort &

  -u 功能是使 snort 由 "snort" 這個使用者執行,進入 chroot 的用者環境

  -c 指定使用的指定目錄

  & 只是在背景中執行

  五、SNORT規則編寫簡介

  一條Snort規則可以分為前後兩個部分,規則頭和後面的選項部分。規則頭包含有匹配後的動作命令、協議類型、以及選擇流量的四元組(源目的IP及源目的端口)。規則的選項部分是由一個或幾個選項的符合,所有主要選項之間是與的關系。選項之間可能有一定的依賴關系,選項主要可以分為四類,第一類是數據包相關各種特征的描述選項,比如:conte

Copyright © Windows教程網 All Rights Reserved