新入社員のトヨトミです。
ネットワークに関してまだまだわからないことが多い中、新入社員として初めてログに触れてみて、
「これ何が書いてあるかよくわからないな」と思い、勉強も兼ねてログの内容について調べてまとめてみることにしました。
目次
そもそもログとは?
研修を受けるまでは言葉として知っていても実際に目にすることはなかなかないものでした。
そこで改めてログとはなにか、というところからまとめていきます。
ログとは、コンピューターの利用状況やデータの通信などの履歴や情報の記録を取ることやその記録のことを指します。
データの送受信の日時や操作の内容などが記録されます。
今回はこのログの中でもFortiGateのトラフィックログについて調べます。
トラフィックログについて
トラフィックログとは、FortiGateにてIPv4ポリシーなどの設定したルールにより許可、拒否した通信のログのことをいいます。
実際に研修で使ったFortiGateのログをGUI(webブラウザ接続)で確認するとこのようなものになります。
CLIで確認するとこのようなものになります。
GUIの方はまだわかりやすいですが、CLIの方は初心者には全くわかりません。
内容もわからないのですが、文字が多すぎてどこを読めばいいのかもわかりません。
この2つの表示方法によって出された内容が何なのかを順番に書いていきます。
一般
ログの詳細については、ログ&レポート⇒転送トラフィックとクリックし、
表示されたログの中で確認したいログを一つ選択して、
画面右上にある詳細をクリックすることで確認できます。
まずGUIで見て一般の中に入っている項目から説明します。
CLIだとこの部分になります。
・日(date)、時刻(time)
ログが記録された日付、時刻を示しています。
ログが記憶されるタイミングはデフォルトでセッション終了のタイミングです。
セッション開始時に記録することをご希望の場合は以下の記事をご参照ください。
https://www.secuavail.com/kb/nw-device/fortigate/traffic-log-generation-moment/
・接続時間(duration)
通信が開始されてから終了までの時間を表しています。
・セッションID(sessionid)
セッションに対して紐づけた識別用のIDのことです。
セッションは通信の開始から終わりのことを指します。
・バーチャルドメイン(vd)
1台のFortiGateの中に仮想的に複数のFortiGateを作る機能で、
このログでは「VDOM_0️3」というバーチャルドメインを使っています。
送信元
次に送信元についてです。GUIでみるとこの部分です。
CLIだとこの部分になります。
・IP(srcip)
通信の送信元のIPアドレスです。
今回は「10.23.13.1」となっています。
・国/地域(srccountry)
送信元の国を示しています。
今回は「Reserved」となっており、送信元がプライベートIPであることを意味しています。
・送信元インターフェース(srcintf)
送信元のインターフェースを表しており、
今回は「port8」から送信されていることになります。
インターフェースは機器やシステム間をつなぐ入出力部分を意味します。
宛先
宛先については先程の送信元と似ている内容となっています。
GUIだとこのような表示です。
CLIではこの部分になります。
・IP(dstip)
通信の宛先のIPアドレスです。
今回は「10.23.2.1」となっています。
・国/地域(dstcountry)
送信元の国を示しています。パラメータに関しては宛先と同じです。
・宛先インターフェース(detintf)
宛先のインターフェースを示しており、
今回は「VPNtest」というインターフェースが宛先となっています。
アプリケーションコントロール
次にアプリケーションコントロールについてです。
GUIだとこのような表示です。
CLIではこの部分になります。
・カテゴリ(appcat)
アプリケーションのカテゴリのことを示し、
今回は「unscanned」となっているので未スキャンであることを示します。
つまり、ポリシーにアプリケーションコントロールのプロファイルを割り当ててないことが考えられます。
=============================
アプリケーションコントロールについては、FortiOS 5.6から無償化されており、
ポリシーにアプリケーションコントロールプロファイルを適用することで使用可能です。
=============================
・プロトコル(proto)
通信を行う際の約束事のことで、今回の場合は1番を使っており、
これはICMP(Internet Control Message Protocol)を表しています。
・サービス(service)
ネットワークトラフィックの種類やサービスを表す部分で、今回は「PING」となっています。
ほかにも「SSH」、「HTTP」、「DNS」などが入っている場合もあります。
データ
次にデータです。
GUIだとこのような表示です。
CLIだとこの部分になります。
・受信バイト(rcvdbyte)
受信されたバイト数を示しており、今回は0バイト受信していることを示しています。
0バイト受信ということは、宛先からの応答がなかったと推測されます。
・受信パケット(rcvdpkt)
受信されたパケット数を示しており、今回は受信が0であることを示しています。
パケットとは通信をする際に分割されたデータのことをいいます。
・送信バイト(sentbyte)
送信されたバイト数を示しており、今回は420バイト送信していることを示します。
・送信パケット(sentpkt)
送信されたパケット数を示しており、今回は送信が5であることを示しています。
・VPN(vpn)
「Virtual Private Network」の略称で、共有回線を専有回線のように使うことができるものです。
研修の一環でIPsecVPNの設定を入れており、そこで作成された「VPNtest」というIPsecトンネルを使っていることが示されています。
・VPNタイプ(vpntype)
VPNのトンネルのタイプを示すもので、今回は「ipsec-dynamic」となっています。
IPsecとはVPNを構築する際に使われるプロトコルで、暗号化や改ざん検知を行っています。
今回のものは、動的(dynamic)で通信するデバイスのIPアドレスが固定されていない場合に使われます。
アクション、セキュリティ
次にアクションとセキュリティです。
GUIだとこのような表示です。
CLIだとこの部分になります。
・アクション(action)
トラフィックがセキュリティポリシーと合致しているかどうかを記録するもので、
今回は「accept」なので許可されたことを示します。
・ポリシー(policyid)
ファイアーウォールでのアクセス制限に関するルールのことで、今回だと、
研修にて作成したポリシーのIDが7番のものによって評価されたことを示しています。
GUI上ではよりわかりやすくIDだけでなく、設定したポリシーの名前も表示されています。
・ポリシーUUID(poluuid)
ログ上で記録されるFortiGateによって自動的に生成されるファイアウォールポリシーの識別子(UUID:universally unique identifier)です。
・ポリシータイプ(policytype)
トラフィックがセキュリティポリシーによって処理される方法を表しています。
GUIとCLIで表記が違いますが、実際には同じ意味となっています。
CLI上の「policy」をGUI上ではより具体的に示すため「IPv4」という表記になっています。
したがって、両方ともIPv4ベースのポリシーによって処理されたことを示します。
・レベル(level)
ログのメッセージの重要度を表しています。
今回の場合「notice」(FORTINETで確認するとnotificationとなっているが、
意味はほぼ同じです)となっており、通常のイベントに関する情報となっています。
0~6までレベルがあり、0に近いほど問題の重要度が上がっていきます。
GUIではこれらの名前やレベルではなく、ゲージなので視覚的にわかりやすいものとなっています。
それぞれのレベルに関しては以下のようになっています。
Level | 名前 | 説明 |
0 | Emergency | システムが使用不能または応答していません。 |
1 | Alert | 即時対応が必要。セキュリティログに使用されます。 |
2 | Critical | 機能に影響があります。 |
3 | Error | エラーが発生し、機能に影響が出る可能性があります。 |
4 | Warning | 機能に影響が出る可能性があります。 |
5 | Notification | 通常のイベントに関する情報です。 |
6 | Information | システム操作に関する一般情報。設定変更を記録するためのイベントログで使用される。 |
セルラー、その他
最後にセルラーとその他です。
GUIではこのようになります。
CLIではこの部分になります。
・セルラー/サービス
通信インターフェースの一種です。
携帯電話業者が提供する無線通信ネットワークであり、携帯電話やデータ通信用のモバイルネットワークです。
Fortinet公式のドキュメントが見つからなかったため憶測にはなりますが、
セルラーネットワークを介して通信をおこなっている場合に記載される可能性があります。
・ログID(logid)
FortiGateのデバイスが発行する、特定のログに対する一意の識別子であり、
同じメッセージのすべての並びに割り当てられる番号になります。
メッセージの原因に応じてログエントリを分類し、
同じ原因を持っているほかのログメッセージにも同じログIDを共有しています。
・タイプ(type)
ログの種類とログエントリを示しています。
今回は「traffic」となっており、通信に関する情報が含まれている。
・サブタイプ(subtype)
ログの種類に関してより詳細に示すもので、
今回の場合「forward」となっており転送トラフィックを示しています。
サブタイプは他に、「local」「multicast」「sniffer」があります。
・ログイベント元のタイムスタンプ(eventtime)
イベントが発生した時刻や時間情報をUNIX時間によって示しています。
このログではナノ秒単位で記録されています。
・タイムゾーン(tz)
地球上の異なる地域で標準的な時刻を定義するための基準で、UTCとのズレを示しています。
今回の場合、-7となっているのでだいたいアメリカの時間になっています。
・識別子(identifier)
特定のイベントやアクションを一意に識別するための情報です。
今回の場合「5」となっています。
・送信元インターフェースのロール(srcintfrole)
送信元インターフェースの役割について示しています。
今回の場合、「undefined」となっているので、未定義ということが示されています。
・宛先インターフェースのロール(dstintfrole)
宛先インターフェースの役割について示しています。
今回の場合、「undefined」となっているので、未定義ということが示されています。
GUIで確認できなかった項目
GUIとCLIで同じログを使い説明してきましたが、
今回のログの中で、1つGUI上では確認できなかった項目があるのでそれの説明もします。
この部分になります。
・trandisp
通信トランザクションの詳細をどのように表示するかを制御します。
今回は「noop」と出ており、送信元、宛先のNATが空の場合に出力されるものになっています。
基本的に通常通りの動きができているということなので、特に問題はないようです。
なぜGUI上で出なかったのか、色々と調べてみました。
GUIは一般的にユーザーがログを確認しやすくするために設計されているものなので、
今回のような詳細な情報を確認するためにはCLIを確認する方が良いみたいです。
やはりCLIのログをメインにしっかり見られるようになったほうがいいというのを感じました。
備考
弊社ではNetStareという24/365体制でお客様のネットワークインフラを監視し、
機器故障、通信障害、サイバー攻撃などをいち早く発見する
統合セキュリティ運用(SOC)サービスを展開しております。
提供しているサービスの中には「セキュリティログレポート」というものがあり、
監視対象機器のセキュリティログをリアルタイムに分析するものとなっております。
分析結果は解読が難しい生ログの各項目を日本語で表示しており、
お客様専用webポータルで確認することができます。
webポータルは、ほぼマウス操作のみで実行できる操作性の高いインターフェースで、
目的に合わせ効率的に知りたい情報をキャッチすることができます。
最後に
今回は私が実際に研修で使用したものをもとに調べていったので、
過不足ある部分も多いかもしれないですが、
ログ上で出てくる言葉の意味や、数値の意味などを知るいい勉強になったと思います。
私のように初めてログを見て、頭がはてなで埋め尽くされた人たちが、
この記事を見て少しでもその疑問が解消されれば幸いです。
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。