FortiGateでIPSecVPN越しのsyslogサーバを指定する(GUI&CUI併用)
自拠点のFortiGateのログをIPSecVPNで接続したリモート環境にあるサーバに転送してみました。
(IPSecVPNが確立されていることが前提です)
FortiGateとサーバの接続は以下のような状況です
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ FortiGate │────────────── │ FortiGate │───────────────│ QNAP │ │ (SiteA) │ IPSecVPN │ (SiteB) │ LAN │ syslogServer │ │ 172.24.0.254 │ │ 192.168.1.1 │ │ 192.168.1.10 │ └──────────────┘ └──────────────┘ └──────────────┘
通常、FortiGateからの通信は宛先IPが含まれるサブネットのポートから送信されるようです。
例えば、(上図にはありませんが)拠点Aから172.24.0.10にアクセスする場合は、172.24.0.254からのアクセスになります。
拠点Aから192.168.1.10に通信しようとすると、192.168.1.0/24は拠点Aのネットワークに属していないので、デフォルトではwanポートが送信元になります。
しかしながら、IPSecVPNは拠点AのLAN1と拠点BのLAN2でセッションを張っているので、wanポートからでは拠点Bにアクセスできません。
そのため、source-ipを指定し、LAN1からsyslogを転送するように指定してあげる必要があります。
参照:Fortinet Knowledge Base
まず、ログ&レポート>ログ設定>ログをsyslogへ送る を ONにし、syslogサーバのIPアドレスを指定します。
(マスクしたIPは上図の192.168.1.10に相当します)
続いて、QNAPでsyslogを有効にします。(バージョンは4.3.6.0993です)
コントロールパネル>アプリケーション>syslogサーバ から syslogサーバーを有効にする にチェックします。
この時点ではログは転送されません。
FortigateのCLIコンソールを開き、以下のコマンドを実行します
(このIPは拠点AのIPSecVPNセッションを張っているインターフェースのIPです)
config log syslog setting set source-ip 172.24.0.254 end
少しして、ログが転送されてきました。
念の為、source-ipの挙動をpingで確認してみます。
FortiGateのCLIから拠点A(172.24.0.254)からQNAP(192.168.1.10)へpingを打ちます
execute ping 192.168.1.10
100%パケットロス、つまり到達できていません。
source-ipを指定して再度pingを実行します。
execute ping-options source 172.24.0.254 execute ping 192.168.1.10
今度は到達しました。