歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

IPtables日志探秘

  防火牆的主要功能除了其本身能進行有效控制網絡訪問之外,還有一個很重要的功能就是能清晰地記錄網絡上的訪問,並自動生成日志進行保存。雖然日志格式會因防火牆廠商的不同而形態各異,但被記錄下的主要信息大體上卻是一致的。無論是後面我們談到的PIX、ASA或是CheckPoint放火牆其產生的日志內容均類似。這就表明,任何連接或者請求,例如TCP、UDP、ICMP連接記錄、連接的流量信息、連接建立時間等,防火牆日志都會將其逐一體現。所以歸納起來,防火牆日志大致包含消息發送源IP地址、消息目的IP、消息流向、消息的內容,以及應用幾方面。

  防火牆每天要產生大量的日志文件,防火牆管理員針對這未經任何處理和分析的龐大的日志進行管理是很困難的。因此,日志的統計和分析現在已經成為防火牆功能中必不可少的一項,管理員不但可以按照不同的需求來查找日志、審計日志,還可以分析網絡帶寬的利用率、各種網絡協議和端口的使用情況等。防火牆日志還會產生安全警告及一些對網絡安全管理很有幫助的信息。這極大的方便了管理員對防火牆的安全管控。

  本文以Linux下的Iptables為例講解防火牆日志,下面看一段Iptables日志

  Jun 19 17:20:04 web kernel: NEW DRAP IN=eth0 OUT=MAC=00:10:4b:cd:7b:b4:00:e0:le:b9:04:al:08:00 SRC=192.168.150.1 DST=192.168.150.152 LEN=20 TOS=0X00 PREC=0x00 TTL=249 ID=10492 DF PROTO=UDP SPT=53 DPT=32926 LEN=231

  對於此日志解釋見表1。

IPtables日志探秘
▲表1 IptablesLog字段解釋

  二、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。

IPtables日志探秘

  /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 23 10: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.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=57148 SEQ=256

  上面這種方法比較麻煩,下面用ulog工具可使用netlink直接將日志廣播到用戶態,這樣以來效率更高,首先安裝ulog包,命令如下:

  #apt-get install ulogd

  查看Iptables日志,如圖1所示。

IPtables日志探秘
▲圖1 用ulog查看Iptables日志

  四、圖形化分析工具

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

  1)OSSIM

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

IPtables日志探秘
▲圖2 OSSIM日志收集

  2) Firewall Analyzer

  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日志,快速分析並定制報表。

IPtables日志探秘
▲圖5 設定讀取數據源

IPtables日志探秘
▲圖6設定輸出報表

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

   作者簡介:李晨光,系統架構師,ChinaUnix專家博主,Linux講師,著有《Linux企業應用案例精解》、《Linux企業應用案例精解 第二版》、《UNIX/Linux網絡日志分析與流量監控》等著作。

Copyright © Linux教程網 All Rights Reserved