網卡配置
編輯/ 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.點擊主頁面
留言
張貼留言