二次線路入門,
可以讓Snort捕獲數據包之后去分析,對測試和調試snort很有幫助
可以一次或者多次指定以下命令,--pcap-reset
and --pcap-show
用一次和多次的效果是一樣的
讀取單個的pcap
snort -r foo.pcap
snort --pcap-single=foo.pcap
從文件中讀取pcaps
cat foo.txt
foo1.pcap
foo2.pcap
/home/foo/pcapssnort --pcap-file=foo.txt
這將讀取目錄/home/foo/pcaps
下的所有文件foo1.pcap foo2.pcap
,請注意,Snort不會嘗試確定該目錄下的文件是否真的是pcap文件。
從命令行列表里讀取pcaps
snort --pcap-list="foo1.pcap foo2.pcap f003.pcap"
在目錄下讀取pcaps
snort --pcap-dir="/home/foo/pcaps"
使用過濾器
cat foo.txt
foo1.pcap
foo2.pcap
/home/foo/pcapssnort --pcap-filter="*.pcap" --pcap-file=foo.txt
snort --pcap-filter="*.pcap" --pcap-dir=/home/foo/pcaps
以上的pcap文件必須要以.pcap
結尾
snort --pcap-filter="*.pcap" --pcap-file=foo.txt \
> --pcap-filter="*.cap" --pcap-dir=/home/foo/pcaps
以上,第一個** *.pcap**只對文件foo.txt
中的pcaps有效,第二個過濾器*.cap
會覆蓋第一個,應用在目錄/home/foo/pcaps
上,里面所有的.cap
文件都會被處理。
snort --pcap-filter="*.pcap" --pcap-file=foo.txt \
> --pcap-no-filter --pcap-dir=/home/foo/pcaps
這個梨子中,第一個filter將會應用在foo.txt上,而在目錄/home/foo/pcaps
下的文件將不會使用任何過濾器,所有在這個目錄下的文件都會包含進去
$ snort --pcap-filter="*.pcap" --pcap-file=foo.txt \
> --pcap-no-filter --pcap-dir=/home/foo/pcaps \
> --pcap-filter="*.cap" --pcap-dir=/home/foo/pcaps2
上面梨子中,第一個過濾器將會用在foo.txt上,目錄/home/foo/pcaps
下將不會使用任何過濾器,目錄/foo/pcaps2
將找到*.cap
的所有文件。
Reseting state 復位狀態
snort --pcap-dir=/home/foo/pcaps --pcap-reset
在讀取每個pcap之后,Snort將被重置為配置后狀態,這意味著將刷新所有緩沖區,重置統計信息,等等
打印pcap
snort --pcap-dir=/home/foo/pcaps --pcap-show
介紹基本的時間統計信息。它包括總秒數和數據包以及數據包處理速率。速率是基于整秒、分等,并且只在非零時顯示。梨子:
顯示基本的從DAQ獲取和注入的數據包,如果你在讀取pcap,那總數就是pcap的和,除非你使用了-pcap-reset
Packet I/O Totals:
Received: 3716022
Analyzed: 3716022 (100.000%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 0 ( 0.000%)
Injected: 0
breakdown部分總結了所有協議的通信,如果開啟了frag3
和stream5
這樣的預處理程序,那么這個流量會有內部的“偽包”,總流量可能會大于I/O部分分析包的數量。
例子:
Breakdown by protocol (includes rebuilt packets):
Eth: 3722347 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 1782394 ( 47.884%)
Frag: 3839 ( 0.103%)
ICMP: 38860 ( 1.044%)
UDP: 137162 ( 3.685%)
TCP: 1619621 ( 43.511%)
IP6: 1781159 ( 47.850%)
IP6 Ext: 1787327 ( 48.016%)
IP6 Opts: 6168 ( 0.166%)
Frag6: 3839 ( 0.103%)
ICMP6: 1650 ( 0.044%)
UDP6: 140446 ( 3.773%)
TCP6: 1619633 ( 43.511%)
Teredo: 18 ( 0.000%)
ICMP-IP: 0 ( 0.000%)
EAPOL: 0 ( 0.000%)
IP4/IP4: 0 ( 0.000%)
IP4/IP6: 0 ( 0.000%)
IP6/IP4: 0 ( 0.000%)
IP6/IP6: 0 ( 0.000%)
GRE: 202 ( 0.005%)
GRE Eth: 0 ( 0.000%)
GRE VLAN: 0 ( 0.000%)
GRE IP4: 0 ( 0.000%)
GRE IP6: 0 ( 0.000%)
GRE IP6 Ext: 0 ( 0.000%)
GRE PPTP: 202 ( 0.005%)
GRE ARP: 0 ( 0.000%)
GRE IPX: 0 ( 0.000%)
GRE Loop: 0 ( 0.000%)
MPLS: 0 ( 0.000%)
ARP: 104840 ( 2.817%)
IPX: 60 ( 0.002%)
Eth Loop: 0 ( 0.000%)
Eth Disc: 0 ( 0.000%)
IP4 Disc: 0 ( 0.000%)
IP6 Disc: 0 ( 0.000%)
TCP Disc: 0 ( 0.000%)
UDP Disc: 1385 ( 0.037%)
ICMP Disc: 0 ( 0.000%)
All Discard: 1385 ( 0.037%)
Other: 57876 ( 1.555%)
Bad Chk Sum: 32135 ( 0.863%)
Bad TTL: 0 ( 0.000%)
S5 G 1: 1494 ( 0.040%)
S5 G 2: 1654 ( 0.044%)
Total: 3722347
在使用**mallinfo(3)**的系統上,將看到額外的統計信息。有關詳細信息,請查看mallinfo的手冊頁
Example:
Memory usage summary:
Total non-mmapped bytes (arena): 415481856
Bytes in mapped regions (hblkhd): 409612288
Total allocated space (uordblks): 92130384
Total free space (fordblks): 323351472
Topmost releasable block (keepcost): 3200
操作(Actions)和判決(Verdict)計數顯示了Snort對所分析的包所做的操作。此信息僅在IDS模式下輸出(當使用-c <conf>
選項運行snort時)。
Limits是由于現實世界對處理時間和可用內存的限制而產生的。這些指示沒有發生的潛在行動:
Snort會在每個數據包上做判決:
Example:
Action Stats:
Alerts: 0 ( 0.000%)
Logged: 0 ( 0.000%)
Passed: 0 ( 0.000%)
Limits:
Match: 0
Queue: 0
Log: 0
Event: 0
Alert: 0
Verdicts:
Allow: 3716022 (100.000%)
Block: 0 ( 0.000%)
Replace: 0 ( 0.000%)
Whitelist: 0 ( 0.000%)
Blacklist: 0 ( 0.000%)
Ignore: 0 ( 0.000%)
Snort可以支持很多tunnelling協議解碼,比如:GRE,GRE上的PPTP,MPLS,…這些默認都是開啟的
如果想關掉,
./configure --disable-gre
./configure --disable--mpls
Snort不會解碼多個封裝。 諸如:
Eth IPv4 GRE IPv4 GRE IPv4 TCP Payload
or Eth IPv4 IPv6 IPv4 TCP Payload
這種不會被處理,并將返回一個告警
當前,僅記錄數據包的封裝部分,
Eth IP1 GRE IP2 TCP Payload
記錄成,
Eth IP2 TCP Payload
和
Eth IP1 IP2 TCP Payload
記錄成,
Eth IP2 TCP Payload
(??不大懂)
Note:目前,在需要字對齊的架構(例如SPARC)上不支持利用GRE和PPP的PPTP解碼。
如果要將Snort作為后臺程序運行,則可以將-D
選項添加到前面幾節中描述的任何組合。 請注意,如果您希望能夠通過將SIGHUP
信號發送到后臺程序來重啟Snort,則在啟動時必須指定Snort二進制文件的完整路徑,例如:
/usr/local/bin/snort -d -h 192.168.1.0/24 \
-l /var/log/snortlogs -c /usr/local/etc/snort.conf -s -D
(出于安全考慮,不支持相對路徑)
Snort PID 文件
當Snort作為后臺程序運行時,該后臺程序在日志目錄中創建一個PID文件。 在Snort 2.6中,-pid-path
命令行選項使Snort將PID文件寫入指定的目錄中。
此外,即使未在后臺程序模式下運行,--create-pidfile
選項也可用于強制創建PID文件。
PID文件將被鎖定,以便其他snort進程無法啟動。 使用--nolock-pidfile
選項將不鎖定 PID文件。
如果您不希望在PID文件中包含接口名稱,請使用--no-interface-pidfile
選項。
如果需要將共享庫規則存根轉儲到目錄中,則必須使用–dump-dynamic-rules
命令行選項。 這些規則存根文件與共享對象規則一起使用。 (路徑可以是相對的或絕對的)。
/usr/local/bin/snort -c /usr/local/etc/snort.conf \
--dump-dynamic-rules=/tmp
也可以使用配置選項dump-dynamic-rules-path
在snort.conf
中配置此路徑,如下所示:
config dump-dynamic-rules-path: /tmp/sorules
命令行配置的路徑優先于使用dump-dynamic-rules-path
配置的路徑。
/usr/local/bin/snort -c /usr/local/etc/snort.conf \
--dump-dynamic-rules
snort.conf:
config dump-dynamic-rules-path: /tmp/sorules
在上述情況下,轉儲路徑設置為
/tmp/sorules
如果需要將數據包日志發布到公共郵件列表,則可能需要使用-O
選項。 此選項在數據包打印輸出中混淆了您的IP地址。 如果您不希望郵件列表中的人知道所涉及的IP地址,這將非常方便。 您也可以將-O
選項與-h
選項組合使用,僅模糊家庭網絡上主機的IP地址。 如果您不在乎誰看到攻擊主機的地址,這將很有用。 例如,您可以使用以下命令從日志文件中讀取數據包并將其轉儲到屏幕,僅混淆來自192.168.1.0/24
C類網絡的地址:
./snort -d -v -r snort.log -O -h 192.168.1.0/24
在Snort v2.4中,添加了-G
命令行選項,該選項指定事件日志的實例標識符。 在不同的CPU上或在同一CPU但接口不同的情況下運行多個snort實例時,可以使用此選項。 每個Snort實例將使用指定的值來生成唯一的事件ID。 用戶可以指定十進制值**(-G 1)或十六進制值,后跟0x(-G 0x11)**。 長選項--logid
也支持此功能。
Snort可以在三種不同的模式下運行,即tap(passive),內聯和內聯測試。 Snort策略也可以在這三種模式下配置。
模式的解釋
-Q
將Snort配置為以內聯模式運行,配置snort config選項policy_mode
如下:snort -Q
config policy_mode:inline
–treat-drop-as-alert
)。 配置為Passive模式:config policy_mode:tap
snort --enable-inline-test
config policy_mode:inline_test
(注意:–enable-inline-test
不能和-Q
連著用)
Table:不同模式下規則選項的行為
具有規則動作的不同模式的行為
可以將Snort配置為提供Unix套接字,該套接字可用于向正在運行的進程發出命令。 您必須使用--enable-control-socket
選項構建snort。 控制套接字功能僅在Linux上受支持。
可以使用命令行參數--cs-dir <path>
和snort config選項cs_dir
將Snort配置為使用控制套接字,如下所示:
snort --cs-dir <path>
config cs_dir:<path>
<path>
指定用來創建套接字的目錄,
使用--enable-control-socket
選項配置時,將在同一bin目錄中創建并安裝命令snort控件,并將其與snort一起安裝。
在某些系統上,snort使用的信號可能會被其他功能使用。 為避免沖突,對于非Windows系統,用戶可以通過./configure
選項更改默認信號值。
- SIGNAL_SNORT_RELOAD
- SIGNAL_SNORT_DUMP_STATS
- SIGNAL_SNORT_ROTATE_STATS
- SIGNAL_SNORT_READ_ATTR_TBL
語法:
./configure SIGNAL_SNORT_RELOAD=<value/name> SIGNAL_SNORT_DUMP_STATS=<value/name>\
SIGNAL_SNORT_READ_ATTR_TBL=<value/name> SIGNAL_SNORT_ROTATE_STATS=<value/name>
您可以將這些信號設置為系統中用戶定義的值或已知的信號名稱。 以下示例將輪換狀態信號更改為31并將重載屬性表更改為信號SIGUSR2:
./configure SIGNAL_SNORT_ROTATE_STATS=31 SIGNAL_SNORT_READ_ATTR_TBL=SIGUSR2
如果多次分配同一信號,則在snort初始化期間將記錄一條警告。 如果無法安裝信號處理程序,則會記錄一條警告,并且必須予以修復,否則該功能將丟失。
Snort中使用的信號:
第2章包含有關配置文件中可用的許多配置選項的大量信息。 Snort手冊頁和snort -? 或snort --help包含可幫助您使Snort在幾種不同模式下運行的信息。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态