網卡配置
編輯/ etc
/ network / interfaces:
 
  
sudo vi
  /etc/network/interfaces 
 | 
 
為每個您要使用Snort偵聽的網絡接口添加以下兩行代碼,確保將eth0更改為與您的接口名稱相匹配(請參閱以下針對Ubuntu 16的註釋):
 
  
post-up
  ethtool -K eth0 gro off 
post-up ethtool
  -K eth0 lro off 
 | 
 
運行Ubuntu
16的人的重要提示:從Ubuntu 15.10開始,網絡接口不再遵循ethX標準(eth0,eth1,...)。相反,接口名稱被分配為可預測的網絡接口名稱。這意味著你需要使用ifconfig
-a來檢查你的接口的名字。就我而言,原來的eth0現在是ens160。如果您正在運行Ubuntu 15.10,在本指南的任何地方您可以看到eth0,則需要使用新的接口名稱進行替換。
/ etc /
network / interfaces文件應該如何查找單個接口的示例:
 
  
# This file
  describes the network interfaces available on your system 
# and how to
  activate them. For more information, see interfaces(5). 
source
  /etc/network/interfaces.d/* 
# The
  loopback network interface 
auto lo 
iface lo
  inet loopback 
# The primary
  network interface 
auto eth0 
iface eth0
  inet dhcp 
post-up
  ethtool -K eth0 gro off 
post-up
  ethtool -K eth0 lro off 
 | 
 
重新啟動網絡(用下面的接口替換eth0)並確認LRO和GRO被禁用:
 
  
sudo
  ifconfig eth0 down && sudo ifconfig eth0 up 
ethtool -k
  eth0 | grep receive-offload 
generic-receive-offload:
  off 
large-receive-offload:
  off 
 | 
 
安裝Snort先前設定
Snort有四個主要的先決條件:
可從Ubuntu存儲庫獲得的pcap(libpcap-dev)
PCRE(libpcre3-dev)可從Ubuntu存儲庫中獲得
Libdnet(libdumbnet-dev)可以從Ubuntu存儲庫中獲得
DAQ(http://www.snort.org/downloads/)從源代碼編譯
首先,我們要安裝構建軟件所需的所有工具。 build-essentials包的確如此
這對我們來說:
 
  
sudo apt-get
  install -y build-essential 
 | 
 
一旦安裝了我們的構建工具,我們就安裝了Ubuntu提供的所有Snort先決條件
repositories3:
 
  
sudo apt-get
  install -y libpcap-dev libpcre3-dev libdumbnet-dev 
 | 
 
Snort DAQ(數據採集庫)有一些需要安裝的先決條件:
 
  
sudo apt-get
  install -y bison flex 
 | 
 
在本指南中,我們將為各種軟件包下載一些tarbals。我們將創建一個
名為snort
src的文件夾將它們全部保存在一個地方:
在Ubuntu上安裝Snort的任何一個指南都會從主頁http://libdnet.sourceforge下載libdnet。
淨/。這是可能的,將工作正常。但是,libdumbnet-dev Ubuntu軟件包提供了相同的軟件(不從Ubuntu存檔中安裝libdnet軟件包,因為它是不相關的軟件包,並且不提供所需的libdent庫)。如果要從源代碼編譯libdent庫,並且運行的是64位版本的Ubuntu,請使用-fPIC標誌在'配置'階段。
 
  
mkdir〜/ snort_src 
cd〜/ snort_src 
 | 
 
從Snort網站下載並安裝最新版本的DAQ。下面的步驟使用wget來
下載DAQ版本2.0.6,這是編寫本指南時的最新版本。
 
  
cd
  ~/snort_src 
wget
  https://snort.org/downloads/snort/daq-2.0.6.tar.gz 
tar -xvzf
  daq-2.0.6.tar.gz 
cd daq-2.0.6 
./configure 
make 
sudo make
  install 
 | 
 
當你運行./configure時,你會看到下面的輸出,顯示哪些模塊正在被配置
並且在編譯DAQ時可用:
 
  
Build
  AFPacket DAQ module.. : yes 
Build Dump
  DAQ module...... : yes 
Build IPFW
  DAQ module...... : yes 
Build IPQ
  DAQ module....... : no 
Build NFQ
  DAQ module....... : no 
Build PCAP DAQ
  module...... : yes 
Build netmap
  DAQ module.... : no 
 | 
 
這告訴你哪些DAQ模塊已經被配置。對於大多數安裝,您只需要AFPacket
和PCAP。關於各種DAQ模塊的更多信息可以在這裡找到。 PCAP數據採集模塊
是默認模塊,用於從文件或接口獲取數據包到Snort中。使用AFPacket
在線模式(Snort作為IPS)。對於更高級的安裝,您可能需要NFQ或netmap
模塊。本指南不包括安裝或使用這些模塊,但如果您需要NFQ,請安裝
安裝DAQ之前的libnetfilter-queue-dev包。
安裝Snort
要在Ubuntu上安裝Snort,還需要安裝一個額外的必需先決條件
在文檔中沒有提到:zlibg是一個壓縮庫。
有四個可選庫提高了功能:liblzma-dev其中三個提供解壓縮
swf文件(adobe flash),openssl和libssl-dev都提供了SHA和MD5文件簽名:
 
  
sudo apt-get
  install -y zlib1g-dev liblzma-dev openssl libssl-dev 
 | 
 
finally we
need the development libraries for Nghttp2: a HTTP/2 C Library which implements
the HPAC header compression algorithm. In Ubuntu 16 the install is easy:
 
  
# Ubuntu 16
  only (not Ubuntu 14) 
sudo apt-get
  install -y libnghttp2-dev 
 | 
 
一旦安裝了所有先決條件,我們準備下載Snort源代碼包,然後編譯
安裝。
--enable-sourcefire選項提供了數據包性能監視(PPM)4 5
,這讓我們做到了對規則和預處理器進行性能監視,並以與Snort團隊相同的方式構建Snort作用:
 
  
cd
  ~/snort_src 
wget
  https://snort.org/downloads/snort/snort-2.9.11.tar.gz 
tar -xvzf
  snort-2.9.11.tar.gz 
cd
  snort-2.9.11 
./configure
  --enable-sourcefire 
make 
sudo make
  install 
 | 
 
注意:只要你沒有看到configure:錯誤:“致命!”當運行./configure時,你沒問題
接著說。如果出現錯誤,則應在繼續之前解決錯誤。你可以管
從./configure輸出到grep“... no”,得到所有沒有安裝的軟件的列表。你可以跑
./configure不止一次,首先要確保沒有總體問題,然後再看看是什麼
可選組件沒有安裝:./configure | grep“... no”(你也可以使用tee命令
將輸出保存到屏幕和文件)。
可選:如果您有興趣查看可用的其他編譯時選項,請運行./configure
 - 幫助獲取所有編譯時選項的列表。 Snort團隊已經嘗試確保默認
設置對於大多數基本的安裝都是很好的,所以你不需要改變任何東西,除非你是試圖做一些特別的事情。根據您的具體情況,您可能會考慮幾個選項
--enable-inline-init-failopen允許Snort以串聯模式運行,仍然可以傳遞流量接口,如果Snort守護進程失敗,--enable-large-pcap,使PCAP文件大於2GB。
在/ usr /
sbin中放置一個符號鏈接到Snort二進製文件:
 
  
sudo ln -s
  /usr/local/bin/snort /usr/sbin/snort 
 | 
 
通過以普通用戶身份運行二進製文件來測試Snort,並傳遞-V標誌(告訴Snort驗證自己以及傳遞給它的任何配置文件)。你應該看到類似於下面顯示的輸出(儘管確切版本號可能略有不同):
 
  
user@snortserver:~$
  snort -V 
,,_ -*>
  Snort! <*- 
o" )~
  Version 2.9.11 GRE (Build 56) 
'''' By
  Martin Roesch & The Snort Team: http://www.snort.org/contact#team 
 | 
 
配置Snort在NIDS模式下運行
由於我們不希望Snort以root身份運行,因此我們需要為此創建一個無特權的帳戶和組守護進程(snort:snort)下運行。我們也會創建一些需要的文件和目錄Snort,並設置這些文件的權限。 Snort將有以下目錄:配置和規則
/ etc / snort中的文件警報將被寫入/ var / log / snort編譯的規則(.so規則)將被存儲在/ usr / local / lib / snort
dynamicrules
 
  
# Create the
  snort user and group: 
sudo
  groupadd snort 
sudo useradd
  snort -r -s /sbin/nologin -c SNORT_IDS -g snort 
# Create the
  Snort directories: 
sudo mkdir
  /etc/snort 
sudo mkdir
  /etc/snort/rules 
sudo mkdir
  /etc/snort/rules/iplists 
sudo mkdir
  /etc/snort/preproc_rules 
sudo mkdir
  /usr/local/lib/snort_dynamicrules 
sudo mkdir
  /etc/snort/so_rules 
# Create
  some files that stores rules and ip lists 
sudo touch
  /etc/snort/rules/iplists/black_list.rules 
sudo touch
  /etc/snort/rules/iplists/white_list.rules 
sudo touch
  /etc/snort/rules/local.rules 
sudo touch
  /etc/snort/sid-msg.map 
# Create our
  logging directories: 
sudo mkdir
  /var/log/snort 
sudo mkdir
  /var/log/snort/archived_logs 
# Adjust
  permissions: 
sudo chmod
  -R 5775 /etc/snort 
sudo chmod
  -R 5775 /var/log/snort 
sudo chmod
  -R 5775 /var/log/snort/archived_logs 
sudo chmod
  -R 5775 /etc/snort/so_rules 
sudo chmod
  -R 5775 /usr/local/lib/snort_dynamicrules 
 | 
 
我們想要改變我們上面創建的文件的所有權,以確保Snort可以訪問它的文件
用途:
 
  
# Change Ownership
  on folders: 
sudo chown
  -R snort:snort /etc/snort 
sudo chown
  -R snort:snort /var/log/snort 
sudo chown
  -R snort:snort /usr/local/lib/snort_dynamicrules 
 | 
 
Snort需要一些配置文件,並將動態預處理器從Snort源碼壓縮包複製到
/ etc / snort文件夾。
配置文件是:
 
  
•
  classification.config 
• file magic.conf 
•
  reference.config 
• snort.conf 
• threshold.conf 
• attribute
  table.dtd 
• gen-msg.map 
• unicode.map 
 | 
 
複製配置文件和動態預處理器,運行以下命令:
 
  
cd
  ~/snort_src/snort-2.9.9.0/etc/ 
sudo cp
  *.conf* /etc/snort 
sudo cp
  *.map /etc/snort 
sudo cp
  *.dtd /etc/snort 
cd ~/snort_src/snort-2.9.9.0/src/dynamic-preprocessors/build/usr/local/lib/snort_dynamicpreprocessor/ 
sudo cp *
  /usr/local/lib/snort_dynamicpreprocessor/ 
 | 
 
我們現在有以下目錄佈局和文件位置:
 
  
Snort二進製文件:/ usr / local / bin /
  snort 
Snort配置文件:/etc/snort/snort.conf 
Snort日誌數據目錄:/ var / log / snort 
Snort規則目錄:/ etc / snort / rules 
               / etc / snort / so rules 
               / etc / snort / preproc rules 
              / usr / local / lib / snort
  dynamicrules 
Snort IP列表目錄:/ etc / snort / rules /
  iplists 
Snort動態預處理程序:/ usr / local / lib /
  snort dynamicpreprocessor / 
 | 
 
 
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 
 
編輯Snort的主配置文件/etc/snort/snort.conf。當我們運行Snort時
這個文件作為參數,它告訴Snort在NIDS模塊中運行。
我們需要註釋掉在Snort配置文件中引用的所有的規則文件,
同時,將使用PulledPork來管理我們的規則集
下面一行將註釋掉snort.conf中的所有規則集文件
 
  
sudo sed -i
  "s/include \ $RULE\_PATH/#include \ $RULE\_PATH/"
  /etc/snort/snort.conf 
 | 
 
手動更改snort.conf文件中的一些設置:
 
  
sudo vi
  /etc/snort/snort.conf 
 | 
 
更改以下行以符合您的環境:
第45行,HOME NET應該匹配你的內部(友好)網絡。在下面的例子中,我們的HOME NET是具有24位子網掩碼的10.0.0.0(255.255.255.0)6:
 
  
ipvar
  HOME_NET 10.0.0.0/24 
 | 
 
注意:您不應將EXTERNAL
NET設置為! $ HOME NET在一些指南中推薦,因為它可能導致Snort錯過警報。
注意:您的HOME
NET與您希望Snort收聽的界面的IP子網相匹配至關重要
上。請使用ifconfig
| grep“inet add”確保你有正確的地址和掩碼設置。經常這將是一個192.168.1.x或10.0.0.x的IP地址。
從第104行開始,在snort.conf中設置以下文件路徑:
 
  
var
  RULE_PATH / etc / snort / rules 
var
  SO_RULE_PATH / etc / snort / so_rules 
var PREPROC_RULE_PATH
  / etc / snort / preproc_rules 
var
  WHITE_LIST_PATH / etc / snort / rules / iplists 
var
  BLACK_LIST_PATH / etc / snort / rules / iplists 
 | 
 
為了使測試Snort容易,我們要啟用local.rules文件,在那裡我們可以添加規則Snort可以提醒。從546行取消註釋(去掉散列符號),看起來像這樣:
 
  
include $RULE_PATH/local.rules 
 | 
 
一旦配置文件準備好了,我們將會讓Snort驗證它是一個有效的文件,以及所有必要的文件它的引用是正確的。我們使用-T標誌來測試配置文件,-c標誌告訴Snort哪個配置文件使用,和-i指定Snort將監聽的接口(這是一個新的要求從啟用主動響應的Snort 2.9.8.x版本開始)。運行
 
Ubuntu 16的注意事項:接口名稱已更改,並且是系統特定的(不再列為ethN)。在
上面的命令,你需要用你的接口的名字(一個有效的接口)替換eth0,如圖所示與ifconfig命令(在我的情況下,它是ens160)。
通過這個命令的輸出來瀏覽Snort正在加載的內容是一個很好的主意。
這個時候很多東西都沒有意義,但是當你更多的使用Snort的時候,它會變得更加清晰。
編寫一個簡單的規則來測試Snort檢測
在這個階段,Snort沒有加載任何規則(我們在snort.conf中引用的規則文件是空的)。您可以驗證Snort沒有加載任何規則,如果您向上滾動上一個命令的輸出並查找:0讀取Snort規則。為了測試Snort的檢測能力,我們來創建一個簡單的規則導致Snort在Snort看到ICMP“Echo request”或“Echo reply”消息時產生警報,使用無處不在的ping工具很容易生成(這使得對規則的測試變得簡單)。將以下單行粘貼到空的本地規則文件中:/etc/snort/rules/local.rules:
 
  
alert icmp
  any any -> $HOME_NET any (msg:"ICMP test detected"; GID:1;
  sid:10000001; rev:001; classtype:icmpevent;) 
 | 
 
Barnyard2不讀取有關local.rules文件警報的元信息。沒有這些信息,
Barnyard2不會知道觸發警報的規則的任何細節,並會產生非致命錯誤
當用PulledPork添加新規則(在後面的步驟中完成)。確保稗2知道這一點
我們使用唯一標識符10000001創建的規則具有“檢測到ICMP測試”的消息,以及其他一些信息。我們將下面一行添加到
/etc/snort/sid-msg.map文件:
 
  
#v2 
1 ||
  10000001 || 001 || icmp-event || 0 || ICMP Test detected || url,tools.ietf.org/html/rfc792 
 | 
 
當你取消上面546行的註釋(include $RULE PATH/local.rules)時,你告訴Snort,local.rules文件應該由Snort加載。當Snort在啟動時加載該文件時,將看到規則您創建了該接口所看到的所有流量,並使用該規則。在這種情況下,當我們創建規則時,我們告訴了Snort它應該在看到一個ICMP ping時生成一個警報。
當你取消上面的546行(包括$ RULE PATH / local.rules)時,你告訴Snort
local.rules文件應該由Snort加載。 當Snort在啟動時加載該文件時,將看到規則您創建了該接口所看到的所有流量,並使用該規則。 在這種情況下,當我們創建規則時,我們告訴了Snort它應該在看到一個ICMP ping時生成一個警報
由於我們對Snort配置進行了更改,我們應該再次測試配置文件:
 
  
sudo snort -T -c
  /etc/snort/snort.conf -i eth0 
 | 
 
這次如果你向上滾動輸出,你會發現一條規則(我們在local.rules中創建的規則,並由snort.conf中的include指令加載)已被加載
注意:如果您正在運行Ubuntu 16,請記住您的接口名稱不是eth0。
 
  
$ sudo /usr/local/bin/snort -A
  console -q -u snort -g snort -c /etc/snort/snort.conf -i eth0 
 | 
 
這時候就可以從外面PING自己的IP,然後就會顯示遭受到攻擊
使用ctrl-c停止運行Snort。 請注意,Snort已將此信息的副本保存在/ var / log / snort中,與名字snort.log.nnnnnnnnn(數字可能不同)。 此時,Snort在NIDS模式下正常運行並生成警報。
Installing Barnyard2
首先安裝Barnyard2先決條件:
 
  
sudo apt-get install -y
  mysql-server libmysqlclient-dev mysql-client autoconf libtool 
 | 
 
安裝程序將提示您創建一個root mysql用戶密碼。 對於這個例子,我們將使用MySqlROOTpassword。 你應該選擇一些不同的,更安全的東西,並安全地存儲。 我們也將創建一個名為snort的MySQL用戶帳戶,並且該帳戶的密碼將會是MySqlSNORTpassword,請注意這兩個MySQL賬號和密碼的區別。
我們需要告訴snort它應該以二進制格式(對一個文件)輸出Barnyard2可以發出的警報處理。 為此,編輯/etc/snort/snort.conf文件,並在第521行(註釋行開始與散列符號)添加以下行:
 
  
output unified2: filename
  snort.u2, limit 128 
 | 
 
所以521和522行現在看起來像:
 
  
# output unified2: filename
  merged.log, l imit 128, nostamp, mpls event types, vlan event types } 
output unified2: filename
  snort.u2, limit 128 
 | 
 
現在下載並安裝Barnyard2 2.1.14:
 
  
cd ~/snort_src 
wget
  https://github.com/firnsy/barnyard2/archive/master.tar.gz -O barnyard2-Master.tar.gz 
tar zxvf barnyard2-Master.tar.gz 
cd barnyard2-master 
autoreconf -fvi -I ./ 
 | 
 
Barnyard2需要訪問dnet.h庫,我們之前使用Ubuntu libdumbnet軟件包進行安裝。但是,Barnyard2期望這個庫有不同的文件名。 創建從dnet.h到dubmnet.h的軟鏈接所以沒有問題:
 
  
sudo ln -s /usr/include/dumbnet.h
  /usr/include/dnet.h 
sudo ldconfig 
 | 
 
根據您的操作系統版本(x86或x86
64),您需要將安裝指向正確的MySQL庫。
運行以下兩行中的一行來配置構建過程,具體取決於您的架構(如果是的話)
不確定你運行的是哪個體系結構,使用uname -m命令(i686和i386一樣):
 
  
# Choose ONE of these two commands
  to run 
./configure --with-mysql
  --with-mysql-libraries=/usr/lib/x86_64-linux-gnu 
./configure --with-mysql
  --with-mysql-libraries=/usr/lib/i386-linux-gnu 
 | 
 
現在完成構建並將Barnyard2安裝到/ usr / local / bin / barnyard2:
測試Barnyard2以確保它安裝正確:
 
  
/usr/local/bin/barnyard2 -V 
 | 
 
一旦安裝了Barnyard2,下一步就是複制並創建一些Barnyard2需要的文件
跑:
 
  
sudo cp ~/snort_src/barnyard2-master/etc/barnyard2.conf
  /etc/snort/ 
# the /var/log/barnyard2 folder is
  never used or referenced 
# but barnyard2 will error without
  it existing 
sudo mkdir /var/log/barnyard2 
sudo chown snort.snort
  /var/log/barnyard2 
sudo touch /var/log/snort/barnyard2.waldo 
sudo chown snort.snort
  /var/log/snort/barnyard2.waldo 
 | 
 
由於Barnyard2會將警報保存到我們的MySQL數據庫中,因此我們需要創建該數據庫以及“snort”MySQL用戶訪問該數據庫。 運行以下命令創建數據庫和MySQL用戶。當提示輸入密碼時,使用MySqlROOTpassword。 你也將設置MySQL snort用戶密碼在第四個mysql命令(MySqlSNORTpassword)中,所以在那裡更改它。
 
  
$ mysql -u root -p 
mysql> create database snort; 
mysql> use snort; 
mysql> source
  ~/snort_src/barnyard2-master/schemas/create_mysql 
mysql> CREATE USER ' snort ' @
  ' localhost ' IDENTIFIED BY ' MySqlSNORTpassword ' ; 
mysql> grant create, insert,
  select, delete, update on snort.* to ' snort ' @ ' localhost ' ; 
mysql> exit 
 | 
 
我們需要告訴Barnyard2如何連接到MySQL數據庫。 編輯/etc/snort/barnyard2.conf,並在文件末尾添加這一行(將密碼更改為上面創建的密碼):
 
  
output database: log, mysql,
  user=snort password=MySqlSNORTpassword dbname=snort host=lo calhost se nsor
  name=sensor01 
 | 
 
由於密碼是以明文形式存儲在barnyard2.conf文件中,所以我們應該阻止其他用戶閱讀它:
 
  
sudo chmod o-r
  /etc/snort/barnyard2.conf 
 | 
 
在警報模式下運行Snort(我們運行的命令是Snort在我們運行時通常會運行的命令作為一個守護進程,除了我們沒有使用-D標誌使它作為一個守護進程運行)
 
  
sudo /usr/local/bin/snort -q -u
  snort -g snort -c /etc/snort/snort.conf -i eth0 
 | 
 
從另外一台計算機ping eth0接口,你不會在屏幕上看到任何輸出,因為Snort不是像之前一樣以-A控制台標誌開始。 一旦ping停止,鍵入ctrl-c停止Snort。 你應該在/ var / log / snort目錄中看到一個新文件,其名稱如下:snort.u2.nnnnnnnnnn(數字將會因當前時間而異。 snort.log.nnnnnnnnnn是輸出文件我們在第一次測試Snort的時候創建的。 你可以刪除該文件,如果你想要的話:
使用以下命令運行Barnyard2:
 
  
sudo barnyard2 -c
  /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w
  /var/log/snort/barnyard2.waldo \ 
-g snort -u snort 
 | 
 
一旦你按下Ctrl-c停止barnyard2,它將打印關於它處理的記錄的信息。
我們現在要檢查MySQL數據庫,看看Barnyard2是否寫了這些事件。 運行以下
命令來查詢MySQL數據庫,您將被提示輸入MySQL snort用戶密碼:
MySqlSNORTpassword(不是MySQL根密碼):
 
  
mysql -u snort -p -D snort -e
  "select count(*) from event" 
 | 
 
如果成功,您將獲得以下輸出,顯示從該數據庫寫入數據庫的8個事件
ICMP請求和回複數據包(當你從一個Windows系統ping時,默認情況下會發送4個ICMP消息。 如果從另一個系統中獲得的話,計數可能會不同)
Installing PulledPork
Install the PulledPork
pre-requisites:
 
  
sudo apt-get install -y
  libcrypt-ssleay-perl liblwp-useragent-determined-perl 
 | 
 
下載並安裝最新的PulledPork perl腳本和配置文件:
 
  
cd ~/snort_src 
wget
  https://github.com/shirkdog/pulledpork/archive/master.tar.gz -O
  pulledpork-master.tar.gz 
tar xzvf pulledpork-master.tar.gz 
cd pulledpork-master/ 
sudo cp pulledpork.pl
  /usr/local/bin 
sudo chmod +x
  /usr/local/bin/pulledpork.pl 
sudo cp etc/*.conf /etc/snort 
 | 
 
通過檢查版本,使用-V標誌檢查PulledPork:
 
  
/usr/local/bin/pulledpork.pl -V 
 | 
 
配置PulledPork下載規則集
使用以下命令編輯/etc/snort/pulledpork.conf配置PulledPork:
 
  
sudo vi /etc/snort/pulledpork.conf 
 | 
 
任何你看到的<oinkcode>輸入你從snort.org收到的oinkcode(如果你沒有得到oinkcode,你需要註釋掉第19行):<若沒註釋掉你會鬼打牆>
 
  
第19行:在適當的地方輸入你的oinkcode(如果沒有oinkcode,則註釋掉) 
第29行:對新出現的威脅規則集取消註釋(未經本指南測試) 
第74行:更改為:rule_path = / etc / snort / rules /
  snort.rules 
第89行:更改為:local_rules = / etc / snort / rules /
  local.rules 
92行:更改為:sid_msg = / etc / snort / sid-msg.map 
第96行:更改為:sid_msg_version = 2 
第119行:更改為:config_path = / etc / snort /
  snort.conf 
第133行:更改為:distro = Ubuntu-12-04 
第141行:更改為:black_list = / etc / snort / rules /
  iplists / black_list.rules 
第150行:更改為:IPRVersion = / etc / snort / rules /
  iplists 
 | 
 
運行以下命令:
 
  
sudo /usr/local/bin/pulledpork.pl
  -c /etc/snort/pulledpork.conf -l 
 | 
 
當PulledPork成功完成時,您應該在/ etc / snort / rules /中看到snort.rules。
Pulled Pork將所有規則組合成一個文件:/etc/snort/rules/snort.rules。 您需要確保添加以下行:include $ RULE PATH / snort.rules到snort.conf文件,或者當Snort啟動時,PulledPork規則永遠不會被讀入內存。
編輯/etc/snort/snort.conf,並添加到文件的末尾(或者在第548行,如果你想保留在合理的位置):
 
  
include $RULE_PATH/snort.rules 
 | 
 
由於我們已經修改了Snort配置文件(通過加載的規則文件),我們應該測試Snort配置文件。 這也將檢查PulledPork創建的新的snort.rules文件:
 
  
sudo snort -T -c
  /etc/snort/snort.conf -i eth0 
 | 
 
創建啟動腳本
要創建Snort
systemD服務,請使用編輯器創建一個服務文件:
 
  
sudo vi
  /lib/systemd/system/snort.service 
 | 
 
並輸入以下內容(如果在系統上不同,則更改來自ens160的接口名稱):
 
  
[Unit] 
Description=Snort NIDS Daemon 
After=syslog.target network.target 
[Service] 
Type=simple 
ExecStart=/usr/local/bin/snort -q
  -u snort -g snort -c /etc/snort/snort.conf -i ens160 
[Install] 
WantedBy=multi-user.target 
 | 
 
現在我們告訴systemD該服務應該在啟動時啟動:
 
  
sudo systemctl enable snort 
 | 
 
最後,我們要開始服務:
 
  
sudo systemctl start snort 
 | 
 
檢查服務正在運行:
接下來,創建Barnyard2
systemd服務。 我們將在這裡添加兩個標誌:-D作為守護進程運行,並且-a / var / log / snort / archived logs,這會將Barnyard2已經處理的日誌移動到/ var / log / snort / archived /文件夾。 使用編輯器創建一個服務文件:
 
  
sudo vi
  /lib/systemd/system/barnyard2.service 
 | 
 
與以下內容(exec內容行應該是一行,通過...歸檔日誌)
 
  
[Unit] 
Description=Barnyard2 Daemon 
After=syslog.target network.target 
[Service] 
Type=simple 
ExecStart=/usr/local/bin/barnyard2
  -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -q -w /var/log/ 
snort/barnyard2.waldo -g snort -u
  snort -D -a /var/log/snort/archived_logs 
[Install] 
WantedBy=multi-user.target 
 | 
 
現在我們告訴systemD該服務應該在啟動時啟動:
 
  
sudo systemctl enable barnyard2 
 | 
 
最後,我們要開始服務:
 
  
sudo systemctl start barnyard2 
 | 
 
檢查服務正在運行:
 
  
systemctl status barnyard2 
 | 
 
BASE - A Web GUI for Snort
UBUNTU 16:BASE需要PHP
5,這在Ubuntu 16的檔案中是不可用的(在這個版本中Ubuntu已經轉移到了PHP
7)。 我們使用PPA來安裝所需的PHP
5軟件包:
 
  
# Ubuntu 16 only: 
sudo add-apt-repository
  ppa:ondrej/php 
sudo apt-get update 
sudo apt-get install -y apache2 libapache2-mod-php5.6
  php5.6-mysql php5.6-cli php5.6 php5.6-common \ 
php5.6-gd php5.6-cli php-pear
  php5.6-xml 
 | 
 
next install Pear image Graph:
 
  
sudo pear install -f --alldeps
  Image_Graph 
 | 
 
下載並安裝ADODB:
 
  
cd ~/snort_src 
wget
  https://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-520-for-php5/adodb-5.20.8.tar.gz 
tar -xvzf adodb-5.20.8.tar.gz 
sudo mv adodb5 /var/adodb 
sudo chmod -R 755 /var/adodb 
 | 
 
下載B
ASE並複製到apache root
 
  
cd ~/snort_src 
wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz 
tar xzvf base-1.4.5.tar.gz 
sudo mv base-1.4.5
  /var/www/html/base/ 
 | 
 
創建BASE配置文件:
 
  
cd /var/www/html/base 
sudo cp base_conf.php.dist
  base_conf.php 
 | 
 
現在編輯配置文件:
 
  
sudo vi /var/www/html/base/base_conf.php 
 | 
 
使用以下設置(請注意,即使在第80行中有說明,第80行中的尾部斜杠也是必需的配置文件):
 
  
$BASE_urlpath = ' /base ' ; # line
  50 
$DBlib_path = ' /var/adodb/ ' ;
  #line 80 
$alert_dbname = ' snort ' ; # line
  102 
$alert_host = ' localhost ' ; 
$alert_port = '' ; 
$alert_user = ' snort ' ; 
$alert_password = '
  MySqlSNORTpassword ' ; # line 106 
 | 
 
而在conf.php文件中,你也可以將第457行註釋掉(我們不希望DejaVuSans
字體),並從行459取消註釋(刪除兩個反斜杠),啟用一個空白字體。 該部分
字體(從456行開始)應該是這樣的:
 
  
// $graph_font_name =
  "Verdana"; 
// $graph_font_name =
  "DejaVuSans"; 
// $graph_font_name = "Image_Graph_Font"; 
$graph_font_name = ""; 
 | 
 
在BASE文件夾設置權限,並且由於密碼在基本的conf.php文件中,我們應該防止其他用戶閱讀它
 
  
sudo chown -R www-data:www-data
  /var/www/html/base 
sudo chmod o-r
  /var/www/html/base/base_conf.php 
 | 
 
Restart Apache:
 
  
sudo service apache2 restart 
 | 
 
配置BASE的最後一步是通過http:
1.瀏覽到http://ServerIP/base/index.php並點擊設置頁面鏈接(將ServerIP替換為IP
你的Snort服務器)。
2.點擊頁面右上角的Create BASE AG按鈕
3.點擊主頁面
 
留言
張貼留言