本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate に関して、設定変更が発生した際に管理者のメールアドレスにアラートメールを送信するための設定方法を説明します。
この設定を行うことで万が一悪意のある攻撃者に不正に FortiGate にアクセスされ設定変更が行われたとしても早期に気付く事ができるといった効果が期待できます。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- バージョン 7.4.4
アラートメール送信のための2つの設定方法
設定変更発生時にアラートメールを送信するための設定方法としては以下の2つがあります。
- アラートメール機能を利用する方法
- アラートメール機能は、指定したイベント発生時に指定したメールアドレス宛にアラートメールを送信する機能
- 用意されているイベントの中にコンフィグ変更イベントがあるためこれを有効化する
- 設定はシンプルだがメール件名や本文のカスタマイズはできない
- メール内容としてはコンフィグ変更のイベントログがそのまま記載されている
- メールの送信間隔を設定でき、一定間隔内でコンフィグ変更が複数発生した場合は一つのメールにまとめて送信される
- オートメーション機能を利用する方法
- オートメーション機能は、トリガーとアクションを定義しそれらを組み合わせたステッチと呼ばれる定義を行う
- イベントログをトリガーにできるため、コンフィグ変更ログをトリガーとしてメールを送信するアクションを実行するよう設定する
- メール件名や本文の内容を自由にカスタマイズできる
- トリガーとなるイベントログの選定が若干難しい
- トリガーインターバルを設定することもできるが、インターバル時間中は設定変更が発生してもメールが送信されない
2つの方法はそれぞれ上記の特徴があるため要件に合わせて設定方法を選んでください。例えばメール内容は単純で良いので設定を簡単にしたいのであればアラートメール機能を使用するのが良いかもしれないし、メール内容を分かりやすいようにカスタマイズしたいのであればオートメーション機能を使う必要があります。
メール送信で使用する SMTP サーバについて
アラートメールを送信するためにはメール送信サーバ(SMTPサーバ)が必要です。
使用するSMTPサーバとしては以下の2パターンから選択できます。
- クラウドの Foritinet の SMTP サーバを利用する
- Foritinet 社が提供するクラウドの SMTP サーバ
- デフォルト設定ではこの SMTP サーバを使用する設定になっている
- この SMTP サーバを使用するためには FortiCare ライセンスが有効である必要がある
- ローカルにある SMTP サーバを利用する
- ローカルネットワーク内に存在する SMTP サーバを利用することも可能
■クラウドの Foritinet の SMTP サーバを利用する場合の構成イメージ
■ローカルにある SMTP サーバを利用する場合の構成イメージ
利用する SMTP サーバの設定方法
まずアラートメール送信のために利用する SMTP サーバの設定方法を説明します。
設定は「システム > 設定」画面の「Eメールサービス」欄で行います。デフォルトでは以下画像のようにクラウドの Foritinet の SMTP サーバを使用する設定になっています。
CLI コンフィグではconfig system email-server
が該当します。
config system email-server
set server "fortinet-notifications.com"
set port 465
set security smtps
end
ローカルの SMTP サーバを利用する場合の設定
ローカルの SMTP サーバを利用する場合は以下のように「カスタム設定を使用」のトグルを有効化し、表示される各項目を設定します。
- SMTPサーバ: 「指定」を選択し、SMTP サーバの IP アドレスまたは FQDN を入力します
- ポート: デフォルト(25) を選択するか、「Specify」を選択し SMTP サーバのポート番号を入力します
- 認証: ユーザ認証を行う場合はトグルを有効化してユーザ名とパスワードを入力します
- セキュリティモード: 使用するプロトコルを選択します
CLI で設定する場合は以下のようになります。
config system email-server
set type custom
set server "192.168.179.17"
set port 25
set authenticate enable
set username "mailuser01"
set password <パスワード>
set security none
end
方法① アラートメール機能によるメール送信設定方法
アラートメール機能により、設定変更発生時にアラートメールを送信するよう設定する方法を説明します。
アラートメール機能は CLI からのみ設定可能です。該当コンフィグ項目はconfig alertemail setting
です。
設定項目としては以下があります。
config alertemail setting
set username ''
set mailto1 ''
set mailto2 ''
set mailto3 ''
set filter-mode category
set email-interval 5
set IPS-logs disable
set firewall-authentication-failure-logs disable
set HA-logs disable
set IPsec-errors-logs disable
set FDS-update-logs disable
set PPP-errors-logs disable
set sslvpn-authentication-errors-logs disable
set antivirus-logs disable
set webfilter-logs disable
set configuration-changes-logs disable
set violation-traffic-logs disable
set admin-login-logs disable
set FDS-license-expiring-warning disable
set FSSO-disconnect-logs disable
set ssh-logs disable
end
考慮すべき設定項目は以下です。
設定項目 | 意味 | デフォルト値 | 備考 |
---|---|---|---|
username | メール送信元アドレス | 設定無し | SMTPサーバとドメインを 合わせるのが無難 |
mailto1~mailto3 | メール宛先アドレス | 設定無し | 3つまで設定可能 |
email-interval | メール送信間隔 | 5 (分) | |
configuration-changes-logs | コンフィグ変更ログをトリガーとする アラートメール送信の有効化 | disable |
コンフィグ変更発生時にアラートメールを送信するためにはconfiguration-changes-logs
をenable
に設定します。一度設定変更が発生してメールが送信された直後に再度設定変更が発生した場合、email-interval
で設定した時間が経過するまで次のメールは送信されません。次のメールが送信されるまでに発生した設定変更ログはまとめて次のメールの本文に記載されます。
以下は設定例です。
config alertemail setting
set username "mailuser01@mysmtpserver.test.com"
set mailto1 "mailuser01@shadowgarden.org"
set email-interval 5
set configuration-changes-logs enable
end
アラートメール機能で送信されるメールの内容は以下のようになっていて、件名は「Message meets Alert condition」となります。
方法② オートメーション機能によるメール送信設定方法
オートメーション機能により、設定変更発生時にアラートメールを送信するよう設定する方法を説明します。
オートメーションは「セキュリティファブリック > オートメーション」画面で設定します。
オートメーションには「ステッチ」「トリガー」「アクション」の3つの要素があります。
- アクション
- FortiGate が実行するアクションの定義です
- メール通知、Slack通知、CLIスクリプト実行、クラウドサービスへのクエリ実行などがあります
- トリガー
- アクションを実行するトリガーとなるイベントの定義です
- FortiOS のイベントログ、時間によるスケジュール、ファブリックコネクタイベントなどがあります
- ステッチ
- トリガーとアクションを組み合わせた設定です
- ステッチを設定することでトリガーの監視とアクションの実行が行われます
設定変更発生時にアラートメールを送信するようにするためには以下のように設定します。
- トリガー
- コンフィグ変更のイベントログをトリガーとして設定
- アクション
- Eメール通知を行うアクションを設定
トリガーの設定方法
オートメーション画面でトリガータブを表示し、「新規作成」をクリックします。
以下のような画面が表示されるため「FortiOSイベントログ」をクリックします。
以下のような画面が表示されるため、トリガーとするイベントログを指定します。
- 名前: 任意のトリガー表示名を入力します
- イベント: トリガーとするイベントログ種別を指定します。イベントログのリストから指定します。フィルタでリスト表示されるイベントログ種別を絞り込むことができます。コンフィグ変更関連のイベントログ種別については後述の「設定変更関連のイベントログ種別」の項目を参考にしてください
- フィールドフィルタ: 必要に応じてフィールド値でフィルタすることも可能です。フィルタに一致する場合にトリガーされます
設定できたら「OK」をクリックします。
トリガーリストに設定したトリガーが表示されていることを確認します。
トリガー設定は CLI コンフィグではconfig system automation-trigger
に該当します。
config system automation-trigger
edit "ConfigChanged"
set description ''
set trigger-type event-based
set event-type event-log
set logid 44546 32102 44547 44545 44544 43527
next
end
上記コンフィグ例の通りイベントログの指定が数値となるため、CLI で設定するのは難しいです。
アクションの設定方法
オートメーション画面でアクションタブを表示し、「新規作成」をクリックします。
以下のような画面が表示されるため「Eメール」をクリックします。
以下のような画面が表示されるため、Eメールの内容を指定します。
- 名前: 任意のアクション表示名を入力します
- 最小インターバル: アクションを実行した後、次のアクションを実行するまでの間隔です。インターバル時間中はトリガーの監視が行われません。デフォルトは 0 秒(インターバル無し)です
- From: メールの送信元アドレスです
- To: メールの宛先アドレスです。任意の数まで増やせます
- サブジェクト: メールの件名です
- 本文: メールの本文です。「%%log%%」でトリガーとなったイベントログの内容を表示できます
設定できたら「OK」をクリックします。
アクションリストに設定したアクションが表示されていることを確認します。
アクション設定は CLI コンフィグではconfig system automation-action
に該当します。
config system automation-action
edit "EmailForConfigChanged"
set description ''
set action-type email
set forticare-email disable
set email-to "mailuser01@shadowgarden.org" "mailuser02@shadowgarden.org" "mailuser03@shadowgarden.org"
set email-from "mailuser01@mysmtpserver.test.com"
set email-subject "【アラート】FortiGateで設定変更発生"
set minimum-interval 0
set message "FortiGateで設定変更が発生しました。
◆コンフィグ変更ログ内容
%%log%%"
set replacement-message disable
next
end
ステッチの設定方法
トリガーとアクションを設定できたらステッチを設定します。
オートメーション画面でステッチタブを表示し、「新規作成」をクリックします。
以下のような画面が表示されるため、ステッチの内容を設定します。
- 名前: 任意のステッチ表示名を入力します
- アクションの実行: アクションが複数設定されている場合の実行方式です。シーケンシャルだとアクションを一つずつ順次実行、パラレルだとすべて同時実行します
- トリガー: クリックすると右側にトリガー一覧が表示されるため、あらかじめ作成しておいたトリガーを指定します
トリガー設定ができたら次はアクションを設定します。「Action」をクリックすると右側にアクション一覧が表示されるため、あらかじめ作成しておいたアクションを指定します。
アクションも設定できたら画面下の「OK」をクリックします。
ステッチリストに設定したステッチが表示されていることを確認します。
アクション設定は CLI コンフィグではconfig system automation-stitch
に該当します。
config system automation-stitch
edit "ConfigChangeMail"
set description ''
set status enable
set trigger "ConfigChanged"
config actions
edit 1
set action "EmailForConfigChanged"
set delay 0
set required enable
next
end
next
end
メール内容
上記設定例でのメール内容は以下のようになります。
ステッチがトリガーされると以下のようなイベントログが生成されます。
デフォルトで存在する Configuration Change トリガーについて
デフォルトで以下のようなトリガー設定が存在します。
- 名前: Configuration Change
- 説明: An administrator’s session that changed a FortiGate’s configuration has ended.
これはイベントログの「Configuration changed」がトリガーになっていて、このイベントログは設定変更が行われた後その管理セッションが切断されたときに生成されるため、セッションが切断されたタイミングでアラートメールが送信されます。
ログ内容は以下のようになっているため、設定変更内容まではこのログからは分かりません。
date=2024-06-22 time=23:29:51 devid=”FGT60FXXXXXXXXXX” devname=”FortiGate-60F” eventtime=1719066591646519150 tz=”+0900″ logid=”0100032102″ type=”event” subtype=”system” level=”alert” vd=”root” logdesc=”Configuration changed” user=”admin” ui=”https(10.10.10.11)” msg=”Configuration is changed in the admin session”
アラートメールでは設定変更が行われたことのみが分かれば良く、設定変更内容が分からなくても良い場合はこのデフォルトのトリガーを利用することもできます。
設定変更関連のイベントログ種別
設定変更が行われたセッションが切断されたときに生成されるイベントログは以下です。
- Configuration changed
設定変更が実施されたタイミングで生成され、設定変更内容を含むイベントログとしては以下があります。
- Attribute configured
- Object attribute configured
- Object configured
また、以下も「configured」と付いているので設定変更関連のログの可能性がありそうです。
- Path configured
- Rogue AP status configured
メール内容では設定変更が行われたことのみが分かれば良ければ「Configuration changed」をトリガーにすれば良く、設定変更内容までメール内容で分かるようにしたければ上記5つの設定変更内容を含む(、及び含む可能性がありそうな)イベントログをトリガーにすれば良いかと思います(ただし上記5つですべての設定変更がカバーできていない可能性もあるため注意してください)。
このようにオートメーション機能で対応する場合、トリガーとなるイベントログの設定に難しさがあります。方法①のアラートメール機能であれば確実にすべての設定変更をトリガーにでき、メール内容としても設定変更内容を含むログが本文に含まれるため場合によってはアラートメール機能を使用したほうが安心できるかもしれません。
こちらのコミュニティ情報の設定例によると、コンフィグ変更時にメールアラートを出すためのトリガーとなるイベントログ種別としては以下3つが設定されていました。
- Attribute configured
- Object attribute configured
- Object configured
これら3つを設定しておけば十分なのかもしれません。
参考資料
【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです
- 基礎知識
- HA (冗長構成) 設定
- FortiGate HA モードの Active-Passive と Active-Active の違いを解説します
- FortiGate HA(冗長構成)の概要と設定ガイド【詳しく解説】※note記事
- FortiGate HA 構成時のコンフィグ同期の仕様について解説します
- FortiGate HA 構成時の NTP,Syslog,SNMP 等の送信元インターフェースを解説 [ha-direct 設定]
- FortiGate HA 構成時の仮想 MAC アドレスについて解説します
- FortiGate HA ハートビート送信間隔と障害判定しきい値の設定ガイド
- FortiGate HA 構成時のバックアップ及びリストア実施ガイド
- FortiGate HA 構成でのモニタインターフェースダウン時の通信断時間について解説
- FortiGate HA 構成に関するQ&A 【良くありそうな疑問集】
- VDOM (バーチャルドメイン) 設定
- トランスペアレントモード設定
- システム系設定
- 管理者アカウント設定
- 時刻・NTP 設定
- ロギング・Syslog 送信設定
- SNMP 設定
- DHCP サーバ機能設定
- Proxy サーバ機能設定
- アラートメール送信
- ネットワーク系設定
- インターフェース設定
- ルーティング設定
- DNS 設定
- NAT 及び NAPT 設定
- ファイアウォール系設定
- アドレス設定
- サービス設定
- ファイアウォールポリシー設定
- ゾーンを使用したポリシー設定
- VPN 系設定
- Tips
Amazon アフィリエイトリンク
以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。
note メンバーシップへの参加もお待ちしています!
【アフィリエイト】おすすめ WordPress テーマ【SWELL】
当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。
また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。
技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。
レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。
コメント