本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate について、FortiGate を Proxy サーバとして動作させるための設定方法について説明します。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- バージョン 7.4.3
【注意】バージョン7.4.4から一部モデルでプロキシが使用不可に
バージョン 7.4.4 から、FortiGate/FortiWiFi 40F、60E、60F、80E、90E シリーズのモデルとその派生製品、および FortiGate-Rugged 60F (2 GB バージョンのみ) 等の搭載 RAM が 2 GB 以下のモデルについてはパフォーマンス強化のためにプロキシ関連機能がサポートされなくなりました。
対象機器ではバージョン 7.4.4 にすると本記事で説明している Web プロキシサーバ機能の他、プロキシベースのセキュリティプロファイル、プロキシベースのポリシー等が使用不可になります。このため、既存機器で対象機能を使用している場合は 7.4.4 以上へのバージョンアップは避けるなどの対応が必要です。また新規導入でプロキシ機能を使用する予定がある場合は機器選定に注意してください。
想定するシナリオ
FortiGate の internal1 先の内部ネットワークに端末が存在しています。端末は外部ネットワーク(インターネット)に Web アクセスする際に FortiGate を Proxy サーバとして利用します。
このシナリオを実現するために FortiGate を Proxy サーバとして動作するよう設定します。
Proxy サーバとして動作させる設定方法
①Explicitプロキシの設定
まずは Proxy サーバ機能の設定となる「Explicitプロキシ」を設定します。
プロキシ機能はデフォルトで無効になっています。まずこれを有効化する必要があります。
CLI にログインし、以下のコマンドでプロキシ機能を有効化します。
config system global
set proxy-and-explicit-proxy enable
end
config system settings
set gui-proxy-inspection enable
end
GUI にログインし左側のメニューから「システム > 表示機能設定」をクリックします。
「Explicitプロキシ」を有効化し「適用」をクリックします。
GUI 左側のメニューから「ネットワーク > Explicitプロキシ」をクリックします。
以下の設定画面が表示されるため各項目を設定します。
- 「Explicit Webプロキシ」を有効化します
- 「リッスンするインターフェース」では Proxy サーバ機能を有効化したいインターフェースを指定します
- HTTP についての受付ポート番号を入力します
- HTTPS についての受付ポート番号を指定します。基本的には「HTTPポートを使用」にします
- 必要に応じて FTP over HTTP を有効化することができます
- 必要に応じて PAC ファイルを配布するよう設定することができます
- 必要に応じてプロキシの FQDN を変更できます。デフォルトでは「default.fqdn」となっています
- 必要な場合のみ設定変更します
- FortiGate から送信する Web リクエストの送信元 IP アドレスの設定です。基本的には「インターフェースIPと同じ」のままとします。この場合、FortiGate からの発信インターフェースの IP に送信元アドレス変換されます
続きの項目はオプションとなります。
- 「Webプロキシフォワーディングサーバ」は上位 Proxy を使用する場合に設定します
- 「URL一致リスト」は URL 毎に特別な処理を設定することができます
- 「Explicit FTP プロキシ」で FTP プロキシを有効化することもできます
以上設定ができたら「適用」をクリックします。
以上で Explicitプロキシの設定は完了です。
②プロキシポリシーの設定
続いて、Proxy サーバを使用した通信を制御する「プロキシポリシー」を設定します。
FortiGate の Proxy サーバ機能を使用する通信に関してはファイアウォールポリシーではなくプロキシポリシーで制御します。
ここでは例として intarnal1 から wan1 へのインターネットへの通信をすべて許可する設定をします。
GUI 左側のメニューから「ポリシー&オブジェクト > プロキシポリシー」をクリックします。
プロキシポリシー画面左上の「新規作成」をクリックします。
プロキシポリシーの設定はファイアウォールポリシーの設定と似ています。
- 任意のポリシー名を入力します
- タイプは「Explicit Web」にします
- 発信インターフェースは対象通信の出口インターフェースを指定します
- 送信元には対象通信の送信元アドレスを指定します
- 宛先には対象通信の宛先アドレスを指定します。例ではインターネット宛なので all にしています
- スケジュールは always にします
- サービスは「webproxy」のみ指定可能です
- アクションは「許可」とします
続きの設定項目は以下の通りです。
特別な要件が無ければデフォルトのままで問題ありません。ロギングオプションのみ、トラフィックログを保存したい場合は「すべてのセッション」に変更します。
以上の設定ができたら「OK」をクリックします。
プロキシポリシー画面にポリシーが追加されたことを確認します。
以上でプロキシポリシーの設定は完了です。
以上で FortiGate の設定は完了です。
クライアントの Proxy サーバ利用設定
ここではクライアントとして Windows 11 を使用します。
インターネットオプション画面にて「接続」タブを開き、「LAN の設定」をクリックします。
LAN の設定画面で以下の通り設定します。
- 「設定を自動的に検出する」のチェックを外します
- プロキシサーバー欄のチェックを入れ、アドレスとポートを設定します
- アドレスには FortiGate のリッスンするインターフェースのアドレスを入力します
- ポートには FortiGate の Explicitプロキシで設定した HTTP ポートを入力します
以上の設定ができたら「OK」をクリックします。
インターネットオプション画面に戻ったら「OK」をクリックして閉じます。
以上でクライアントの設定は完了です。
トラフィックログの確認
クライアントから Web アクセスしてログを確認してみます。
以下のようなトラフィックログが保存されます。プロキシポリシーによって許可されていることが分かります。
【参考】Proxy サーバ関連の CLI コンフィグ
Explicitプロキシのコンフィグ
Explicitプロキシのコンフィグはconfig web-proxy explicit
です。
config web-proxy explicit
set status enable
set http-incoming-port 8080
set https-incoming-port 8080
end
フルコンフィグは以下の通りです。
config web-proxy explicit
set status enable
set secure-web-proxy disable
set ftp-over-http disable
set socks disable
set http-incoming-port 8080
set http-connection-mode static
set https-incoming-port 8080
set incoming-ip 0.0.0.0
set ipv6-status disable
set strict-guest disable
set unknown-http-version reject
set realm "default"
set sec-default-action deny
set https-replacement-message enable
set message-upon-server-error enable
set pac-file-server-status disable
set ssl-algorithm low
set trace-auth-no-rsp disable
end
リッスンするインターフェースの設定のみ、config system interface
で設定します。
config system interface
edit "internal1"
set explicit-web-proxy enable
next
end
プロキシポリシーのコンフィグ
プロキシポリシーのコンフィグはconfig firewall proxy-policy
です。
config firewall proxy-policy
edit 1
set uuid d570bb14-f0f4-51ee-5f91-dabd7761d297
set name "internal1_to_wan1"
set proxy explicit-web
set dstintf "wan1"
set srcaddr "10.1.1.0/24"
set dstaddr "all"
set service "webproxy"
set action accept
set schedule "always"
set logtraffic all
next
end
以上です。
【おすすめ】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 のインストールも簡単にできます。
コメント