【FortiGate】Syslog転送設定手順|60Fからログサーバーへ送信して確認する

FortiGate 60FのSyslog転送設定手順のアイキャッチ画像

FortiGateのログを外部へ保管したい場合は、Syslogサーバーへの転送を設定します。FortiGate本体だけにログを残す構成と比べて、障害やセキュリティインシデントの調査時に過去ログを追いやすくなります。

この記事では、FortiGate 60F(FortiOS 7.4.9)から同一ネットワーク上の受信端末へSyslogを転送し、PING通信、管理者のログイン、ログアウトが実際に届くところまで確認します。

今回の検証環境
  • 機種:FortiGate 60F
  • FortiOS:7.4.9
  • FortiGateの送信元IP:192.168.10.105
  • Syslog受信端末:192.168.10.45
  • プロトコル:UDP
  • 受信ポート:5514(検証用)

Syslogの標準ポートはUDP 514ですが、今回は検証端末で権限の影響を避けるためUDP 5514を使用しました。本番環境ではSyslog製品側の待ち受けポート、UDP/TCP、ログ形式とFortiGate側の設定を一致させてください。

目次

FortiGateからSyslogを転送する前の準備

先にSyslogサーバー側を起動し、FortiGateから到達できるIPアドレスとポートで待ち受けます。FortiGate側だけ設定しても、受信サービスが停止している場合やOSのファイアウォールで遮断されている場合はログを確認できません。

今回の検証では、Mac上の検証用UDP受信プログラムを0.0.0.0:5514で起動しました。実運用ではrsyslog、syslog-ng、Graylog、SIEM、FortiAnalyzerなど、保存・検索・アクセス制御ができる製品を使用します。

事前に確認する項目

  • SyslogサーバーのIPアドレスが固定されている
  • 受信ポートとUDP/TCPの待ち受けが開始されている
  • FortiGateからSyslogサーバーへのルートがある
  • 受信サーバー側のファイアウォールで許可されている
  • FortiGateと受信サーバーの時刻・タイムゾーン・NTPが合っている

FortiGateから受信端末への疎通は、設定前に次のように確認できます。

execute ping-options repeat-count 3
execute ping 192.168.10.45

GUIでSyslog転送を有効にする

FortiGateの管理画面で、ログ&レポート > ログ設定を開きます。グローバル設定のSyslogロギングを有効にし、IPアドレス/FQDNへSyslog受信サーバーのアドレスを入力して、画面下部の適用を選択します。

FortiGate 60Fのログ設定画面でSyslogロギングを有効にし、受信サーバー192.168.10.45を指定した状態
Syslogロギングを有効にし、受信サーバーのIPアドレスを指定します。

イベントログを送信する場合はイベントロギングを有効にします。FortiGate自身が送受信するPING、DNS、管理通信なども対象にする場合は、必要に応じてローカルトラフィック ロギングも有効にします。ローカルトラフィックは量が増えやすいため、必要な項目に絞ってください。

CLIでポート・送信元IP・形式を設定する

GUIでは受信先IPを設定できますが、検証用ポート5514や送信元IPまで明示する場合はCLIを使用します。今回の設定は次のとおりです。

config log syslogd setting
    set status enable
    set server "192.168.10.45"
    set mode udp
    set port 5514
    set facility local7
    set source-ip "192.168.10.105"
    set format default
end
FortiGate 60FのCLIでSyslogサーバー、UDPポート5514、送信元IPを確認した画面
CLIでSyslogの送信先、ポート、送信元IP、形式を確認した状態です。
設定意味
serverSyslog受信サーバーのIPアドレスまたはFQDN
modeudpはUDP転送、reliableはTCPによる転送
port受信サーバーが待ち受けるポート。既定は514
facilitySyslogのファシリティ。既定はlocal7
source-ipSyslogパケットの送信元IP
formatdefault、CSV、CEF、RFC5424、JSONなどの形式

source-ipには、Syslogサーバーへ到達する経路上でFortiGateが使用できるIPアドレスを指定します。構成によっては指定せず、自動選択に任せる方が適切です。

送信するログをフィルタする

送信対象と最低重要度はconfig log syslogd filterで指定できます。次はinformation以上の転送トラフィックとローカルトラフィックを送信する例です。

config log syslogd filter
    set severity information
    set forward-traffic enable
    set local-traffic enable
end

大量のログを無条件に送ると、ネットワーク帯域や受信サーバーの保存容量を消費します。最初は必要なログ種別と重要度を決め、受信量を確認してから範囲を広げてください。

実際に通信を発生させてSyslogを確認する

転送設定後、FortiGateから1.1.1.1へPINGを3回実行し、さらに管理者アカウントでSSHログイン・ログアウトを行いました。

execute ping-options repeat-count 3
execute ping 1.1.1.1

受信端末では、次の実ログを確認できました。

  • logdesc="Admin login successful":管理者のSSHログイン成功
  • logdesc="Admin logout successful":管理者のSSHログアウト成功
  • type="traffic" subtype="local" service="PING" action="accept":FortiGate自身から1.1.1.1へのPING通信
FortiGate 60Fから実際に受信したPING通信と管理者ログイン・ログアウトのSyslog
FortiGate 60Fから実際に受信したSyslogです。機器のシリアル番号はマスクしています。

画像の角括弧内は受信プログラム側のUTC時刻、ログ本文のdatetimetzはFortiGate側の時刻情報です。検証機ではタイムゾーンが異なっていたため表示時刻に差があります。インシデント調査で時系列を正しく追えるよう、本番運用前にNTPとタイムゾーンを合わせてください。

CLIで送信カウンターを確認する

Syslogデーモンが処理したログ種別と件数は、次の診断コマンドでも確認できます。

diagnose test application syslogd 3

syslog配下にtrafficやeventの件数が増えていれば、FortiGate内でSyslog送信処理が行われています。ただし、件数が増えていても受信サーバーまで到達しているとは限らないため、最終確認は受信側で行います。

Syslogが届かない場合の確認項目

  1. 受信サーバーのIPアドレス、ポート、UDP/TCPが一致しているか
  2. 受信サービスが対象ポートで待ち受けているか
  3. FortiGateから受信サーバーへPINGできるか
  4. FortiGateのsource-ipが実在するインターフェースIPか
  5. 受信サーバーのOSファイアウォールや上位機器で遮断されていないか
  6. config log syslogd filterで対象ログが有効か
  7. ファイアウォールポリシーのログ記録が有効か
  8. 重要度のしきい値より低いログを確認しようとしていないか

到達状況をパケット単位で確認する場合は、FortiGateのパケットキャプチャ手順も利用できます。ポリシーヒットや本体ログを先に確認する場合は、通信ログ確認手順を参照してください。

Syslog運用時の注意点

  • UDPは到達確認や再送を行わないため、配送保証が必要な場合は受信製品に合わせてTCPのreliableやFortiAnalyzerを検討する
  • Syslogには内部IP、ユーザー名、URL、ホスト名などが含まれるため、閲覧権限と保存先を制限する
  • インターネットへUDP 514を直接公開しない
  • ログ保存期間とディスク使用量を監視する
  • FortiGateと受信サーバーのNTP・タイムゾーンを統一する
  • 設定変更前にFortiGateの設定をバックアップする

Syslog転送設定を削除する

検証後に転送設定を完全に削除する場合は、受信先などを解除してから無効化します。FortiOSでは先にstatus disableを設定すると他項目を編集できなくなるため、次の順番で実行します。

config log syslogd setting
    set status enable
    unset server
    unset source-ip
    unset port
    set status disable
end

最後に次のコマンドを実行し、set status disableだけが表示されることを確認します。

show full-configuration log syslogd setting

まとめ

FortiGate 60FからSyslogサーバーへログを転送し、管理者ログイン・ログアウトとPING通信の実ログを受信できることを確認しました。設定後はFortiGate側のカウンターだけで判断せず、受信サーバー側でログ本文まで確認することが重要です。

FortiGate 60Fの設定手順は、FortiGate設定ガイドにまとめています。


参考:Fortinet公式ドキュメント「Log settings and targets」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

30歳未経験からネットワークエンジニアに転職し、運用→構築→設計の仕事をやってます。色んな機器(Cisco、YAMAHA、Fortigate、PaloAlto)を触らせてもらいとても楽しい仕事です!

現在は派遣にて主にCiscoを中心としたネットワーク設計~構築をしております。

また、2023年より副業で個人事業主や小規模企業からのパソコン設定~ネットワーク作業の仕事を請け負っておりますので、もしお困りの方がいましたらお気軽にお問い合わせください。

●今までの作業履歴
- パソコンの新旧入れ替え
- 拠点間のインターネットVPN接続(YAMAHA-Fortigate)

コメント

コメントする

目次