Fortigate 的 log 很大一部分是在流量,如果運作在流量大的地方,log 量會非常可怕。

因此我們需要把一般的流量紀錄排除掉,只留下重要的紀錄,同時不影響其他類型的 log。

前置作業

首先,先確保 syslogd 已經設定好,並可以正常傳輸

config global
config log syslogd setting
    set status enable
    set server "192.168.10.254"
    set port 1514
end

Log Types

取得目前 syslogd 的設定

config global
get log syslogd filter

輸出如下

severity            : information
forward-traffic     : enable
local-traffic       : enable
multicast-traffic   : enable
sniffer-traffic     : enable
anomaly             : enable
voip                : enable
dns                 : enable
filter              : 
filter-type         : include

因為防火牆沒有做什麼設定,上面的值為防火牆出廠預設值。

我們需要過濾的 log 類型有兩種:

  1. 本機流量 (logid: 0001000013)
    • type: traffic
    • subtype: local
    • severity: notice
  2. NAT 流量 (logid: 0001000014)
    • type: traffic
    • subtype: forward
    • severity: notice

每一種 log 類型都有一個對應的 logid,根據官方資料,這兩種流量的 logid 分別為 00010000130001000014,針對 logid 去過濾,即可過濾掉不要的紀錄,只保留重要的,同時不影響其他類型的 log。

過濾指定類型的 log

進入 syslogd filter 設定

config log syslogd filter

filter-type 設為 exclude

set filter-type exclude

設定過濾條件

set filter "logid(0001000013,0001000014)"

最後輸入 end 退出設定,防火牆將自動套用並儲存設定,接著觀察收到的 logs,這時候 log server 應該乾淨許多。

  • 如果有更改預設的設定檔儲存方式,請記得手動儲存。
  • 除了 logid,還可以針對不同條件設定,輸入 set filter 後按下 ? 會顯示設定範例:

    fg-100e # set filter
    Please input the logid list or level (or both) as filters.
    [logid(...)] [traffic-level(...)] [event-level(...)] [virus-level(...)] [webfilter-level(...)] [ips-level(...)] [emailfilter-level(...)] [anomaly-level(...)] [voip-level(...)] [dlp-level(...)] [app-ctrl-level(...)] [waf-level(...)] [dns-level(...)]
    See the following 2 examples.
    example 1
    set filter "logid(40704,32042)"
    example 2
    set filter "event-level(information)"
    The available levels are as the following:
    emergency,alert,critical,error,warning,notice,information,debug

    更多的設定方式可以參考官方或其他文件。

完整設定如下

config log syslogd filter
    set status enable
    set server "192.168.10.254"
    set port 1514
end
config log syslogd filter
    set filter "logid(0001000013,0001000014)"
    set filter-type exclude
end

Reference

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料