FortiGate Administrator 振り返り == --- # 用語 ## ステートフルインスペクション - ファイアウォールの基本動作 - ステートフルとは「状態を持つ」という意味 - 行きのパケットの状態を記録し、戻りパケットの妥当性を判断して通信を許可するかを決める機能 - IPアドレス・ポート番号・プロトコル番号・シーケンス番号などを記録 - 戻りのパケットフィルタリングの設定は不要 - ルータのACLは戻りの設定が必要(これはステートレスと呼ぶ) ## セッションテーブル - ステーフルインスペクション機能を持つファイアウォールが、「状態」を記録するデータベース - ファイアウォールポリシーによって許可された通信はセッションテーブルに記録される - テーブルのエントリの数が現在ファイアウォールが扱っている通信数 - 上記機種になるとこの上限数が増える - セッションテーブルのエントリ作成時はCPUパワーを消費する。エントリが作成された後の通信はASICによって処理される。同じデータ量であっても、ショートパケットのエントリを連続して作成する場合、通常よりもCPU使用率は高くなる - 1MBのデータを1本のセッションで送るより、1KBのデータを1000回転送するほうがCPUにかかる負荷は大きい --- # mod.1 ## 工場出荷時設定 - IPアドレスは192.168.1.99/24 - エントリー機種ではport1 or internal - 中級機以上ではmgmtポート ## NATモード - L3で動作し、パケットをルーティングするモード。デフォルト - インターフェースにIPアドレスの設定が必要 - 既存NWの構成を変えたくない場合は、トランスペアレントモード(L1で動作)も指定可能 - モードは筐体もしくはVDOM単位で設定 - NATモードでも、バーチャルワイヤーペアを使うとポリシー単位でトランスペアレントにできる - バーチャルワイヤペア用に専用の物理ポートが必要 ## VDOM (VirtualDomain) - 1台のFGT内に複数の仮想的なFGTを配置できる。各VDOMは別の筐体として扱われる - セキュリティの考え方の異なる組織ごとに筐体を分けたいケースや、MSP事業者のように複数のテナントを扱う場合に有用 - VDOM間は完全に分離され、接続にはケーブルを使うかInter VDOM Link設定が必要 - VDOMには物理ポートやVLANを紐づけられる - InterVDOMLinkは通常のインターフェースと同じ取り扱いで、ルーティンFWポリシーの発着信インターフェースとして取り扱える ## バックアップとリストア - バックアップは任意のタイミングで可能 - 暗号化ファイルに保管できる。暗号化されたバックアップは、筐体の種類やファームウェアが完全一致しないと復元できないため、サポートへの送付時は利用しないこと - パスワードマスクを使うと平文のままパスワードだけを置き換えてくれる。サポート送付時はこちらを推奨 - リストア時は筐体がリブートする - 筐体内にコンフィグを保管できる「リビジョン機能」もある - ラボでコンフィグ復元をしているのはこちら ## ファームウェアアップデート - ファームウェア(FortiOS)は随時発表され、最新版の案内がGUI上に表示される - 冗長構成の場合は、スタンバイ機からアップデートが開始され、フェイルオーバー後にプライマリ機のアップデートが始まる。通信断時間はフェイルオーバーのタイミングのみ - スタンドアロンの場合はアップデート完了までの数分間、断時間を見込んでおく - アップデートするときは経由するファームウェアバージョンをUpdatePathで事前に確認する https://docs.fortinet.com/upgrade-tool/fortigate ## FortiGuard - Fortinetのセキュリティ研究機関(FortiGuardLab) と、UTM機能のアップデート(ウイルスパターンなど)を配信するFortiGuard Distribution Networkを提供する - ライセンス契約が必要。ライセンスがないと、、、 - アンチウイルスとIPS・・・最後にアップデートしたパターンまで利用可能 - Webフィルタリング・・・全てのWeb通信が遮断される # mod.2 ## ファイアウォールポリシー - 通信要件のこと - インターフェースのペア(着信と発信)が一致するポリシーのうち、上から順番に評価される - パケットが着信するとルーティングテーブルを検索し発信インターフェースを決める。その後ポリシーが評価される - IPアドレスだけでなく、FQDNやGeoIPやISDBも利用可能(GeoIPとISDBはFortiGuardライセンスが必要) - GeoIP・・・グローバルIPアドレスの位置情報。特定の地域に対して通信制御ができる - ISDB (Internet Service Database) ・・・FortiGuardの提供する、クラウドサービスなどのサービス名とIPアドレスのデータベース。ポリシーにIPアドレスの代わりに設定できる - 通信許可時のログは、脅威発見時のみもしくは全通信の選択ができる - Deny時にセッションテーブルを作成できる「ses-denied-traffic」機能がある。DDoS攻撃にあえてセッションテーブルを作らせることでCPU負担を軽減できる ## インスペクションモード - UTM機能の動作を決める。FWポリシー内で設定する ### フローベース - FortiASICによるセキュリティチェック。スループットを優先する ### プロキシベース - CPUとメモリを使ったソフトウェアによる厳密なチェック。セキュリティを優先する - エントリ機種(メモリ2GB以下)では、以下の仕様となるので注意 #### FortiOS7.2.4以降 - CLIで設定しないとモードの選択ができない(フローでのみ動作) #### FortiOS7.4.4以降 - プロキシインスペクションは利用不可 ## NAT - SNAT/DNATに対応。どちらもFWポリシーでON/OFFする  ### SNAT - インターフェースのアドレスにSNATする場合はFWポリシーでスイッチをONにするだけ - アドレスをプールすることもできる ### DNAT - VIP(外に見せるアドレスと内側のアドレスの組み合わせ)を、FWポリシーの着信アドレスとして設定 - 内側のアドレスが外に出ていくとき、SNAT設定がされていなければVIPのアドレスで出ていく - ALLのアドレスオブジェクトにVIPは含まれないため、攻撃元アドレス→ALLをDenyする、というポリシーではVIPのサーバを守ることができない。明示的にVIPを宛先としたDenyポリシーを書くのが推奨 - v7.2.4以降で、デフォルトでmatch-vipがEnableとなった https://fortinetweb.s3.amazonaws.com/docs.fortinet.com/v2/attachments/b5f5f30a-9b79-11ed-8e6d-fa163e15d75b/fortios-v7.2.4-release-notes.pdf - 旧バージョンからのアップデートの場合は、設定は維持される(強制的にEnableになるわけではない) # mod.3 ルーティング - DHCPで払い出されたデフォルトルートはGUI上のスタティックルート画面に表示されないので注意(CLIでは確認可能) ## 最適ルート - 同じ宛先に向かう経路(発信インターフェースとその先のゲートウェイ)が複数ある場合は、ディスタンス値とメトリックで優先して使う経路が決まる - `get router info routing-table all`で確認できる - 最適として選ばれなかったルートは重複ルート(候補ルート)として記録されている - `get router info routing-table database`で確認できる - ロンゲストマッチが最優先(宛先のプリフィックス長は/24よりも/25のほうが優先して使われる) ## ECMP - 最適ルートが複数ある場合は、ECMPとしていずれも均等に利用される - ECMPはデフォルトでは送信元アドレスを使った負荷分散が行われる。優先度はプライオリティで設定可能 - 優先して使わせたいゲートウェイがある場合はウエイトで重みづけも可能 ## リバースパスフォワーディング(RPF) - セッション作成前の最初のパケット着信時、戻りルートがあるかどうか(送信元アドレスへのルーティングがあるかどうか)を確認する機能 - 戻りルートを知らないところからパケットが着信するのは攻撃の可能性がある(IPスプーフィング) - デフォルト有効。戻りルートは最適ルートでなくても許可 - 最適ルートでないと許可しないこともできる(Strictモード) # mod.4 ## ファイアーウォール認証(アクティブ認証) - FortiGateが認証ダイアログを発行し、ユーザートラフィックに割り込ませる - IPアドレスだけでなくユーザー認証でトラフィックを制御する - ユーザーはFortiGateに登録する他、LDAPやRADIUSも利用可能 - 認証サーバーのユーザーはFortiGateのユーザーとして自動的に取り込まれる - HTTP/HTTPS/FTP/Telnetのいずれかに対応 - 上記プロトコルで認証を済ませる必要がある - DNSは認証前でも通す - アドレスとポートの組み合わせが同じポリシーが並んでいるときに認証しないポリシーが混ざっていると、認証されない - 組み合わせを変えるかauth-on-demaind CLIコマンドを実行するか全てのポリシーで認証させるか # mod.5 ## FSSO(Fortinet Single Sign On) - 外部認証機関(ActiveDirectoryDomainServiceなど)によって認証された情報をFortiGateに共有し、ユーザー認証ダイアログを出すことなくユーザー認証する - 別名、パッシブ認証 - アクティブ認証よりも優先される - DCにエージェントをインストールし、CollectorAgent(CA)を経由してFGTと連携する(推奨) - DCエージェントがインストール出来ない場合は、CAがDCからログイン情報を読み取りFGTと連携する - WMI/WinSec/NetAPIの3種類がある - CAすら使わず、FGTが自らDCに接続するモードもある(エージェントレスモード) # mod.6 ## SSLインスペクション - 暗号通信を読み取れないとFGTのUTM機能のほとんどは機能しない ### CertificateInspection - SSLネゴシエーション(3WayH/Sのあと)でやりとりされる、暗号化前の情報を読み取り、接続先の正確なホスト名を取得する - SNI(クライアントが接続にいくホスト名)やSubject/SAN(サーバ証明書内のホスト名、こちらのほうが信頼性が高い)か、どちらかを参照する - 暗号通信は読み取れないので、Webフィルタリングの接続先確認くらいにしか使えない ### Full SSL Inspection(DeepInspection) - FGTがクライアントとサーバの間に割って入り、暗号通信を解読する。クライアントにはサーバのフリをして、再暗号化して通信する - やっていることはMITM攻撃(中間者攻撃)と同じ - FGTがクライアントにサーバのフリをするときに、FGTが認証局となりサーバ証明書に再署名する。クライアントはFGTの認証局の証明書(CA証明書)を持っていないため、SSLの警告(認証局が正規でない)を出す - FGTのCA証明書をPCにインストールすることで回避可能 - 企業がプライベートCAをすでに持っている場合は、FGTをプライベートCAにすることでも対応可能 - 対応していないWebアプリケーションや法律に対応するために、信頼できるサイトはSSLインスペクションから除外できる - 信頼できるサイトはFortiGuardから配布されている # mod.7 ## アンチウイルス - プロファイルを作成し、FWポリシーに適用させる - フルSSLインスペクションは必須 - パターンファイルはFortiGuardから数十分おきに自動更新されている - ライセンスが切れているときは最後のパターンファイルまでで検査される - フローベースでは、ウイルスの検査はコネクションの最後のパケットが届くまで行われず、ウイルスの一部がクライアントに届く。FGTはウイルスを検知すると即座にRSTパケットを投げて通信を遮断する - 差し替えページは2回目のブラウザアクセスから表示(初回は接続拒否エラー表示のみ) - プロキシベースでは、パケットはクライアントに届く前に全てバッファされウイルス検査が行われる。問題がない場合はFGTがクライアントにサーバのフリをして検査済みパケットを送る。ウイルスを検知した時点で差し替えページを表示 - プロキシベースのほうが対応プロトコルや機能が多い(Excelマクロの無力化など) - 標準と異なるポート番号を利用しているサーバがある場合は、FWポリシーのプロトコルオプションでポート番号を変更する必要がある - プロトコルオプションでは、スキャンするファイルの上限サイズの設定も可能(デフォルト10MB)大きくするとパフォーマンスに影響が出る。大きなファイルの取得が多い環境とそうでない環境で値を変える方がよい # mod.8 ## Webフィルタリング - HTTPはHOSTヘッダ、HTTPSはSNIや証明書のCNで接続先を確認し、Websサイトの閲覧を制御する - DNSフィルタとは別の機能(DNSフィルタは名前解決の制御をする) - FortiGuardによるカテゴリ分け(レーティング)を利用できる。プロファイルでは、レーティングごとの許可・禁止などを制御する - FortiGuardサブスクリプションが有効でないと使えない(ライセンスが無効だと、機能せず全てのWeb通信は遮断される) - Web通信のたびにレーティングを確認しているため、FDSへの接続が必要 - デフォルトでは60分はキャッシュ - FDSに直接接続する他、FortiManagerへの問い合わせも可能 - スタティックフィルタでは、FortiGuardサブスクリプション不要。設定したURLに対しフィルタが有効 - スタティックフィルタのほうが優先度が高い # mod.9 - IPSエンジンを利用した機能。どちらもフローベースでしか動作しない - FortiGuardサブスクリプションが切れていても機能するが、シグネチャのアップデートは行われない - パケットの中身を見るため、SSLディープインスペクションが原則必要 ## IPS - 侵入防止機能。FortiGuardからのシグネチャに基づき、攻撃を検知しブロックする - 主に、自社サーバーや社内ネットワークを守るための機能 - シグネチャをプロファイルに設定し、検知した際の挙動を設定する - シグネチャは「フィルタ」という単位でまとめて設定もできる ## アプリケーションコントロール(APLC) - 従業員のアプリケーション利用を制御。ドメイン名やポート番号ではなくアプリケーションの挙動で通信を制御する - IPSエンジンを使い、アプリケーションシグネチャでアプリケーション種別と利用を検知し、制御 - ポートでコントロールしないため、P2Pやゲームなどポートが不定なアプリケーションの検出が得意 - SSLディープインスペクションが必須(ない場合はWebフィルタリングと大差ない) # mod.10 ## SSL-VPN - SSLを使ったVPN技術で、Webブラウザをプロキシとして社内サーバーを利用するモードと、仮想NICを端末内に生成しルーティングできる「トンネルモード」がある - トンネルモードはサービスの種類は限定されない - HTTPS通過できれば利用できるのがメリット - v7.6.6以降は、全機種でSSL-VPNのトンネルモードは利用不可 - Fortinetとしては、IPsecVPNやZTNAへの移行を推奨しており、デフォルトではSSL-VPN機能はGUIに表示されない - Webモードは、一部エントリー機種をのぞいて当面は利用可能 # mod.11 ## IPSecVPN - 一般的なIPSecVPNを利用可能。IKEv2にも対応している - FortiGate独自仕様はなくベンダー間の互換性が高く、強力なセキュリティがメリット - 通信要件が複雑だが、近年はUDP/4500だけ通れば疎通できるようになっている # mod.12 ## SD-WAN - 物理的なNW接続と、NWの利用方法を分離する技術 - あらゆる物理回線上をまたがり、インターネット接続・拠点間接続を混在させられる - 品質の低下・障害の発生などのイベント発生時に、自動的に回線を変更することができる - FWポリシーのI/Fやルーティング設定のゲートウェイを「SD-WANゾーン」として定義できる。ゾーン内のどのメンバー(物理ポートやVPNトンネルI/Fなど)が使われるかはSD-WANの機能側で決めてくれるため、設計時に回線種別を意識する必要がない - 品質チェックは各メンバーに対して自動的に行われる。パフォーマンスSLA機能を使って、明確に品質を定義することもできる - ISDBを利用して、インターネットサービスによりゾーンを使い分けることができる - 内部的にはポリシーベースルーティングを利用している