FortiGate 無料ハンズオン[6]: トラフィックログを Syslog サーバに転送しよう

ファイアウォール(UTM)

このハンズオンについて

誰でも無料で使用できる FortiGate の仮想アプライアンスである FortiGate VM の評価ライセンスを使用して、FortiGate の実践的な学習をしていこうという講座です。

今回は、外部の Syslog サーバへのログ転送を設定して動作確認してみます。

作業環境

  • FortiGate VM 7.0.5
  • VMware Workstation Player 16.2.3
  • VMware ESXi 7.0.3

今回の実施内容

前回の ハンズオン[5]: HA 構成を構築して動作確認しよう まで実施している場合、仮想ネットワーク環境は以下画像のようになっているはずです。

※各ネットワークのセグメント情報は各自の環境によって変わります

今回は、ホストマシンに Syslog サーバソフトを導入してホストマシンを Syslog サーバとして使用します。そして、FortiGate ではホストマシンの NAT アダプタにログを転送する設定をして、ログ転送機能の動作確認をしてみます。

  • ホストマシンに Syslog サーバソフトを導入して Syslog サーバとして使用
  • FortiGate にて Syslog サーバにログを転送する設定を実施して動作確認

ホストマシンに Syslog サーバソフトを導入

まずはホストマシンに Syslog サーバソフトを導入します。

Windows 用の Syslog サーバソフトはいくつかあると思いますが、ここでは Serva (Community) を使用します。Serva ダウンロードページから Serva の Community 版をダウンロードしてください。

ZIP ファイルをダウンロードできるため、任意のフォルダに解凍してください。Serva はインストールせずに解凍するだけでそのまま実行できます。

ホストマシンの OS ビットによって使用する実行ファイルを選択してください。

Serva を起動すると以下画面が表示されます。[I’m a “Community” user] をクリックしてください。(起動から 7 秒後にこのボタンが有効化されます。)

以下の画面が表示されるため、左上のアイコン部分をクリックし、Settings をクリックします。

設定画面が表示されるため、[SYSLOG] タブを開きます。[Service Up/Down > SYSLOG Server] にチェックを入れてください。これで Syslog サーバ機能を有効化できます。さらに [SYSLOG Settings > Save msg to file] でファイルを指定すると、指定したファイルに受信したログをテキストで保存できます。こちらはオプションです。

設定変更後、画面下の [OK] をクリックして設定を確定します。設定変更後は Serva を一度閉じて再度起動してください。Serva で設定変更した後は反映のために再起動が必要です。再起動後、以下のように [SYSLOG] タブが追加されたことを確認してください。このタブ画面上に受信したログメッセージが表示されます。

以上でホストマシンへの Syslog サーバソフトの導入は完了です。

FortiGate での Syslogサーバへのログ転送設定

ログ転送先 Syslog サーバの設定

ログ転送先 Syslog サーバの設定を GUI で行う場合は、[ログ&レポート > ログ設定] 画面の [リモートロギングとアーカイブ] 欄で設定できます。

以下のように [ログをsyslogへ送信] を有効化し、Syslog サーバの IP アドレス(ホストマシンの NAT アダプタのアドレス)を入力してください。

ただし、GUI では一つ目のログ転送先 Syslog サーバの IP アドレスしか設定できないため、以下の CLI での設定も覚えておいてください。

CLI でログ転送先 Syslog サーバの設定は config log syslog<id> で設定します。以下の通り Syslog サーバは最大 4 サーバまで指定できます。

FortiGate01 # config log syslog
syslogd     Configure first syslog device.
syslogd2    Configure second syslog device.
syslogd3    Configure third syslog device.
syslogd4    Configure fourth syslog device.

さらに、各 Syslog サーバ毎に filtersetting の設定があります。

FortiGate01 # config log syslogd
filter     Filters for remote system server.
setting    Global settings for remote syslog server.

filter では転送対象のログレベル(severity)などの設定ができ、setting では転送先 Syslog サーバの設定ができます。

ログ転送先 Syslog サーバの設定(CLI)

ログ転送先 Syslog サーバの設定は config log syslogd setting で行います(一つ目の Syslog サーバを設定する場合)。

最低限、statusenable にし、serverIP アドレスを指定します。

FortiGate01 # show log syslogd setting
config log syslogd setting
    set status enable
    set server "192.168.75.1"
end

その他、プロトコル (udp/tcp)、ポート番号 (デフォルトは 514)、ファシリティ (デフォルトは local7) などを設定することもできます。

FortiGate01 # show full-configuration log syslogd setting
config log syslogd setting
    set status enable
    set server "192.168.75.1"
    set mode udp
    set port 514
    set facility local7
    set source-ip ''
    set format default
    set priority default
    set max-log-rate 0
    set interface-select-method auto
end

転送対象のログレベル(severity)

転送対象のログレベル(severity)の設定は config log syslogd filter で行います(一つ目の Syslog サーバを設定する場合)。

デフォルトの severityinformation です。

config log syslogd filter
    set severity information
end

severity の設定値は以下があります。指定したレベル以上のログが転送対象になります。

FortiGate01 (filter) # set severity
emergency       Emergency level.
alert           Alert level.
critical        Critical level.
error           Error level.
warning         Warning level.
notification    Notification level.
information     Information level.
debug           Debug level.

デフォルトの information では debug 以外のすべてが対象になります。

ポリシー設定におけるログ設定

許可トラフィックのログ

許可されたトラフィックのログを Syslog サーバに転送するためには、ポリシー設定において、そのポリシーにて許可されたトラフィックのログを保存するよう設定する必要があります。

対象のログ設定画面の [ロギングオプション > 許可トラフィックをログ] の値を [すべてのセッション] にしてください。

なお、デフォルトではセッション終了時のログのみ保存されます。セッション開始時のログも追加的に保存したい場合は、CLI で対象ポリシーに対して以下の設定が必要です。

config firewall policy
    edit <id>
        set logtraffic-start enable
    next
end

拒否トラフィックのログ

拒否トラフィックについてのログ設定は、アクションが拒否となっているポリシーがあればそのポリシーで、無ければ暗黙の拒否ポリシーの設定画面で設定します。

暗黙の拒否ポリシーの場合は、以下のように [IPv4違反トラフィックをログ] という項目があるため、これを有効化します。

Syslog サーバへのログ転送動作確認

ハンズオン[3]: 試験用の Windows 10 仮想端末をつくろう で構築した Windows 10 仮想端末があるかと思います。ここからインターネット宛に Web アクセスをして、そのトラフィックログが Syslog サーバで表示されるかを確認してみます。

Windows 10 仮想端末のブラウザ上で適当に Web アクセスしてから、ホストマシンで起動している Serva の画面を確認してみてください。

以下のように Serva 画面上にログが表示されていれば成功です。

ログ内容を少し確認してみましょう。

ログの例

Sun May 29 16:37:49 2022: <189>date=2022-05-29 time=16:37:49 devname=”FortiGate01″ devid=”FGVMEV0DAGPMG6DB” eventtime=1653809868948594864 tz=”+0900″ logid=”0000000013″ type=”traffic” subtype=”forward” level=”notice” vd=”root” srcip=192.168.200.10 srcport=54922 srcintf=”port2″ srcintfrole=”undefined” dstip=52.137.106.217 dstport=443 dstintf=”port3″ dstintfrole=”undefined” srccountry=”Reserved” dstcountry=”United States” sessionid=17963 proto=6 action=”close” policyid=1 policytype=”policy” poluuid=”5cf8f232-de63-51ec-0516-da6e1fda7975″ policyname=”192.168.200.0/24_to_internet_web” service=”HTTPS” trandisp=”snat” transip=192.168.179.253 transport=54922 duration=1 sentbyte=2355 rcvdbyte=4530 sentpkt=13 rcvdpkt=10 appcat=”unscanned”

  • devname=”FortiGate01″
    • ログの転送元の FortiGate のホスト名です
  • type=”traffic”
    • トラフィックログであることを示しています
  • subtype=”forward”
    • 転送トラフィックであることを示しています
  • action=”close”
    • セッション終了時のログであることを示しています
    • start であればセッション開始時のログ、deny であれば拒否のログであることを示します
  • srcip=192.168.200.10 srcport=54922 srcintf=”port2″
    • 送信元 IP、送信元ポート、着信インターフェースを示しています
  • dstip=52.137.106.217 dstport=443 dstintf=”port3″
    • 宛先 IP、宛先ポート、発信インターフェースを示しています
  • policyname=”192.168.200.0/24_to_internet_web”
    • ヒットしたポリシーの名前を示しています

HA 構成でログ転送する際の注意点

HA 構成で Syslog サーバへログ転送する場合、デフォルトでは送信元 IP が Syslog サーバへルーティングする際の発信インターフェース(サービス用ポートの何れか)の IP になります。

Wireshark での Syslog パケットのキャプチャ結果

このため Syslog サーバ側で HA のメンバ別にログを管理したい場合でも、デフォルトのままでは Syslog 送信元機器を送信元 IP で区別ができない状況になります。

HA のメンバ別にログを管理したい場合は CLI で config system haha-directenable と設定する必要があります。

config system ha
    set ha-direct enable
end

上記設定をすることで、Syslog パケットの送信元インターフェースを各 HA メンバの管理インターフェースにすることができます。これによって、Syslog パケットの送信元 IP が機器によって変わるため、Syslog 送信元機器を区別することができます。

ha-direct 有効化後の Wireshark での Syslog パケットのキャプチャ結果

ha-directenable にすると、Syslog だけでなく SNMP、リモート認証(RADIUS)、FortiAnalyzer、FortiSandbox、sFlow、および Netflow についても送信元が管理インターフェースになります。

今回のハンズオンは以上です

今回はトラフィックログを外部 Syslog サーバへ転送する機能について確認しました。トラフィックログを Syslog サーバへ転送する機能の使用頻度は非常に高いです。設定方法をマスターしておきましょう。


タイトルとURLをコピーしました