iptables日誌探祕web
防火牆的主要功能除了其自己能進行有效控制網絡訪問以外,還有一個很重要的功能就是能清晰地記錄網絡上的訪問,並自動生成日誌進行保存。雖然日誌格式會因防火牆廠商的不一樣而形態萬千,但被記錄下的主要信息大致上倒是一致的。不管是後面咱們談到的PIX、ASA或是CheckPoint放火牆其產生的日誌內容均相似。這就代表,任何鏈接或者請求,例如TCP、UDP、ICMP鏈接記錄、鏈接的流量信息、鏈接創建時間等,防火牆日誌都會將其逐一體現。因此概括起來,防火牆日誌大體包含消息發送源IP地址、消息目的IP、消息流向、消息的內容,以及應用幾方面。安全
防火牆天天要產生大量的日誌文件,防火牆管理員針對這未經任何處理和分析的龐大的日誌進行管理是很困難的。所以,日誌的統計和分析如今已經成爲防火牆功能中必不可少的一項,管理員不但能夠按照不一樣的需求來查找日誌、審計日誌,還能夠分析網絡帶寬的利用率、各類網絡協議和端口的使用狀況等。防火牆日誌還會產生安全警告及一些對網絡安全管理頗有幫助的信息。這極大的方便了管理員對防火牆的安全管控。服務器
本文以Linux下的iptables爲例講解防火牆日誌,下面看一段iptables日誌網絡
Jun 19 17:20:04 webkernel: NEW DRAP IN=eth0 OUT=MAC=00:10:4b:cd:7b:b4:00:e0:le:b9:04:al:08:00SRC=192.168.150.1 DST=192.168.150.152 LEN=20 TOS=0X00 PREC=0x00 TTL=249ID=10492 DF PROTO=UDP SPT=53 DPT=32926 LEN=231工具
對於此日誌解釋見表1。大數據
表1 iptablesLog字段解釋spa
序號3d |
字段名稱代理 |
含義指針 |
1 |
Jun 19 17:20:24 |
日期時間,由syslog生成 |
2 |
Web |
主機名稱 |
3 |
Kernel |
進程名由syslogd生成kernel爲內核產生的日誌說明netfilter在內核中運行 |
4 |
NEW_DRAP |
記錄前綴,由用戶指定—log-prefix」NEW_DRAP」 |
5 |
IN=eth0 |
數據包進入的接口,若爲空表示本機產生,接口還有eth0、br0等 |
6 |
OUT= |
數據包離開的接口,若爲空表示本機接收 |
7 |
MAC=00:10:4b:cd:7b:b4:00:e0:le:b9:04:al |
00:10:4b:cd:7b:b4 爲目標MAC地址 00:e0:le:b9:04:al 爲源MAC地址 |
8 |
08:00 |
08:00 爲上層協議代碼,即表示IP協議 |
9 |
SRC=192.168.150.1 |
192.168.150.1爲源IP地址 |
10 |
DST=192.168.150.152 |
192.168.150.152w爲目標IP地址 |
11 |
LEN=20 |
IP封包+承載數據的總長度(MTU) |
12 |
TOS=0x00 |
IP包頭內的服務類型字段,能反應服務質量包括延遲、可靠性和擁塞等 |
13 |
PREC=0x00 |
服務類型的優先級字段 |
14 |
TTL=249 |
IP數據包的生存時間 |
15 |
ID=10492 |
IP數據包標示 |
16 |
DF |
DF表示不分段,此字段還可能爲MF/FRAG |
17 |
PROTO=UDP |
傳輸層協議類型,它表明上層協議是什麼可分爲TCP、UDP、ICMP等 |
18 |
SPT=53 |
表示源端口號 |
19 |
DPT=32926 |
表示目的端口號 |
20 |
LEN=231 |
傳輸層協議頭長度 |
21 |
SEQ= 內容略 |
TCP序列號 |
22 |
ACK=內容略 |
TCP應答號 |
23 |
WINDOWS=內容略 |
IP包頭內的窗口大小 |
24 |
RES |
TCP-Flags中ECN bits的值 |
25 |
CWR/ECE/URG/ACK/PSH/RST/SYN/FIN |
TCP標誌位 |
26 |
URGP= |
緊急指針起點 |
27 |
OPT( 內容略 ) |
IP或TCP選項,括號內爲十六進制 |
28 |
INCOMPLETE[65535 bytes] |
不完整的數據包 |
29 |
TYPE=CODE=ID=SEQ=PARAMETER= |
當協議爲ICMP時出現 |
30 |
SPI=0xF1234567 |
當前協議爲AHESP時出現 |
31 |
SYN |
TCP-Flags中的SYN標誌,此外還有FIN/ACK/RST/URG/PSH幾種 |
32 |
[ ] |
中括號出如今兩個地方,在ICMP協議中做爲協議頭的遞歸使用;在數據包長度出現非法時用於指出數據實際長度 |
2、LOG日誌格式的思考:
從表1的描述可看出,iptables日誌記錄的信息不少並且顯得很凌亂,在分析時面臨如下幾個問題:
(1)MAC的表示過於簡單,把目標MAC、源MAC及長度類型所有混在一塊兒,不利於閱讀。
(2)在表中的序號十二、13中TOS和PREC的值都爲「0x00」標誌位表示方式混亂。
(3)在日誌中沒有記錄數據包內容,特別是對一些被拒絕的數據包,若是有記錄數據包內容將有助於查找攻擊方式、方法。
(4)沒有記錄規則號,對於被記錄的數據包,當須要查看它由於知足什麼條件被記錄時,將變得比較困難。
(5)LEN、DPT標誌同時出如今IP頭、TCP頭中在分析處理日誌時容易出現混亂。
3、日誌分析
在Linux下單獨記錄Iptables的方法是編輯/etc/syslog.conf文件,在其中加入一行
kern.warning /var/log/iptables.log
而後重啓syslog服務:
#/etc/init.d/syslog restart
爲了方便地對日誌進行分析,可加上適當的記錄日誌前綴,即在IPtables中使用LOG選項,經過LOG 選項打開匹配數據包的內核記錄功能。LOG 選項的子選項 --log-prefix 用來給記錄信息添加一個消息前綴,這個前綴可設達 29個字符。添加前綴的目的只是爲了更好的辨別記錄信息,好比更容易用 grep 這種工具過濾出匹配的記錄信息。下面舉個例子。在Linux 服務器中輸入下面的命令:
接下來查看iptables.log日誌文件中加HACKERS前綴的日誌,固然你也能夠換成其餘內容。
參數「-j LOG」用於設定日誌級別,利用 syslog 把特殊級別的信息放入指定日誌文件。初始存放在/var/log/messages裏面,因爲存放messages中,對於分析日誌產生不便。這裏簡單介紹一個iptables日誌的管理、循環和自動報告生成的實例。
幾乎全部的Linux發行版都默認安裝了iptables,由dmesg或syslogd的facility結合內核管理。iptables的日誌的初始值是[warn(=4)],若須要修改這個初始值就須要編輯syslog.conf。
/etc/logrotate.conf的初始設置是每週進行日誌循環。因此每週的日誌將被存在 /var/log/iptables.log中,之前的日誌將被順次存儲在iptableslog.1~ iptables-log.50 中。
另外一種方法就是經過iptables直接獲取日誌,操做以下:
# iptables -A INPUT -s 127.0.0.1 -p icmp -j LOG--log-prefix "iptables icmp-localhost "
\\*保存從eth0 進入的packet記錄;
# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
\\*廢除從eth0進入的packet記錄;
通過上面兩條命令操做以後/var/log/iptables-log.1的內容將以下所示:
Sep 2310:16:14 hostname kernel: iptables icmp-localhost IN=lo OUT=MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=57148SEQ=256
上面這種方法比較麻煩,下面用ulog工具可以使用netlink直接將日誌廣播到用戶態,這樣以來效率更高,首先安裝ulog包,命令以下:
#apt-get install ulogd
查看Iptables日誌,如圖1所示。
圖1 用ulog查看Iptables日誌
4、圖形化分析工具
瞭解日誌構成和結構、含義是基礎,但大數據下的「大安全時代」必須使用工具軟件協助你完成任務,下面筆者推薦幾款圖形化分析工具。
1)OSSIM
在OSSIM USM 版本能夠對各類日誌進行歸一化處理並以圖表的方式展示出來,如圖2所示。
圖2 OSSIM日誌收集
2) FirewallAnalyzer
Firewall Analyzer是一套基於Web,無需安裝代理的防火牆日誌分析系統,該系統可支持網絡中的多款防火牆設備,並實現監視、日誌蒐集和分析、並以報表的形式將其呈現出來。利用Firewall Analyzer,網絡安全管理員,能夠快速的獲取網絡頻寬佔用,以及安全時間等重要信息,從而更加有效地對網絡實施管理。通常來講,能夠獲取到的安全事件信息包括:入侵檢測、病毒攻擊、拒絕服務攻擊等異常的網絡行爲。Firewall Analyzer能分析Cisco PIX、ASA,CheckPoint等多種防火牆日誌。如圖3所示,爲Firewall Analyzer流量分析界面。
圖3 Firewall Analyzer 日誌分析主界面
3)Sawmill
Sawmill適用於Unix/Linux和Windows等多種平臺,支持900 種日誌格式,集中式且跨平臺的日誌報表管理系統,能集中搜集日誌,併產生中文報表(包含體簡體及繁體中文),簡約的操做界面讓使用者能直覺地透過簡單的點擊操做,可以輕鬆分析Netfilter日誌,快速分析並定製報表,如圖四、5所示。
圖4 設定讀取數據源
圖5設定輸出報表
4.Splunk
Splunk是一款強大的日誌分析工具,使用 Splunk 可收集、索引和利用全部應用程序、服務器和設備(物理、虛擬和雲中)生成的快速移動型計算機數據 ,用它分析iptables日誌,如圖6所示,是否是和OSSIM的圖形化輸出有些類似?
有關日誌分析的更多內容你們能夠參考《UNIX/Linux網絡日誌分析與流量監控》一書。