天天看點

iptables日志探秘

内部邀請碼:C8E245J (不寫邀請碼,沒有現金送)

國内私募機構九鼎控股打造,九鼎投資是在全國股份轉讓系統挂牌的公衆公司,股票代碼為430719,為“中國PE第一股”,市值超1000億元。 

------------------------------------------------------------------------------------------------------------------------------------------------------------------

原文位址: http://my.oschina.net/chenguang/blog/362054

防火牆的主要功能除了其本身能進行有效控制網絡通路之外,還有一個很重要的功能就是能清晰地記錄網絡上的通路,并自動生成日志進行儲存。雖然日志格式會因防火牆廠商的不同而形态各異,但被記錄下的主要資訊大體上卻是一緻的。無論是後面我們談到的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字段解釋

序号

字段名稱

含義

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協定中作為協定頭的遞歸使用;在資料包長度出現非法時用于指出資料實際長度

二、LOG日志格式的思考:

從表1的描述可看出,iptables日志記錄的資訊很多而且顯得很淩亂,在分析時面臨以下幾個問題:

(1)MAC的表示過于簡單,把目标MAC、源MAC及長度類型全部混在一起,不利于閱讀。

(2)在表中的序号12、13中TOS和PREC的值都為“0x00”标志位表示方式混亂。

(3)在日志中沒有記錄資料包内容,特别是對一些被拒絕的資料包,如果有記錄資料包内容将有助于查找攻擊方式、方法。

(4)沒有記錄規則号,對于被記錄的資料包,當需要檢視它因為滿足什麼條件被記錄時,将變得比較困難。

(5)LEN、DPT标志同時出現在IP頭、TCP頭中在分析處理日志時容易出現混亂。

三、日志分析

在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日志探秘

接下來檢視iptables.log日志檔案中加HACKERS字首的日志,當然你也可以換成其他内容。

iptables日志探秘

參數“-j LOG”用于設定日志級别,利用 syslo 把特殊級别的資訊放入指定日志檔案。初始存放在/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所示。

iptables日志探秘

圖1 用ulog檢視Iptables日志

四、圖形化分析工具

了解日志構成和結構、含義是基礎,但大資料下的“大安全時代”必須使用工具軟體協助你完成任務,下面筆者推薦幾款圖形化分析工具。

1)OSSIM

在OSSIM USM 版本可以對各種日志進行歸一化處理并以圖表的方式展現出來,如圖2所示。

iptables日志探秘

圖2 OSSIM日志收集

2) FirewallAnalyzer

Firewall Analyzer是一套基于Web,無需安裝代理的防火牆日志分析系統,該系統可支援網絡中的多款防火牆裝置,并實作監視、日志搜集和分析、并以報表的形式将其呈現出來。利用Firewall Analyzer,網絡安全管理者,可以快速的擷取網絡頻寬占用,以及安全時間等重要資訊,進而更加有效地對網絡實施管理。一般來說,可以擷取到的安全事件資訊包括:入侵檢測、病毒攻擊、拒絕服務攻擊等異常的網絡行為。Firewall Analyzer能分析Cisco PIX、ASA,CheckPoint等多種防火牆日志。如圖3所示,為Firewall Analyzer流量分析界面。

iptables日志探秘

圖3 Firewall Analyzer 日志分析主界面

3)Sawmill

Sawmill适用于Unix/Linux和Windows等多種平台,支援900 種日志格式,集中式且跨平台的日志報表管理系統,能集中搜集日志,并産生中文報表(包含體簡體及繁體中文),簡約的操作界面讓使用者能直覺地透過簡單的點選操作,能夠輕松分析Netfilter日志,快速分析并定制報表,如圖4、5所示。

iptables日志探秘

圖4 設定讀取資料源

iptables日志探秘

圖5設定輸出報表

有關日志分析的更多内容大家可以參考《UNIX/Linux網絡日志分析與流量監控》一書。

繼續閱讀