Network Security SSL-VPN VPN

Fortigate100EでSSL-VPNを実装する

2025年7月10日



構成図

VPNクライアントのPCからSSL-VPNを介したインターネット経由でサーバへアクセスを試みます。SSL-VPNゲートウェイ役はFortigate100Eが担当します。

Serverのネットワーク設定

トンネリング先のサーバにはクライアントへ帰るルーティングは不要です。トンネル自体が仮想的な経路を提供するため、サーバは同じトンネル経路を通ってクライアントに応答を返すためです

eth0

IP192.168.9.1
DGW

wlan0

IP192.168.10.109
DGW192.168.10.1

VPN Clientのネットワーク設定

サーバとクライアントでそれぞれ異なるプロバイダ経由でアクセスを試みます。同じプロバイダルータから割り振られるセグメント内でもトンネリング自体は成り立ちます。SSL-VPNトンネリングがL4以上で機能するため、L3レベルで疎通可能であれば、トンネルエンドポイント間で暗号化・カプセル化されるためです

SSL-VPN設定の流れ

  1. ユーザ作成
  2. ユーザグループ作成
  3. address作成
  4. IPPool作成
  5. SSl-VPN設定
  6. SSL-VPN用FirewallPolicy設定
  7. FortiClient_リモートアクセス設定
  8. Mac設定_VPN許可
  9. プロバイダのルータでポートフォワード設定
  10. 疎通テスト

1_ユーザ作成

設定パラメータ
Usernameuser1
PasswordXXXXXX


2_ユーザグループ作成後は以下になります

CLIの場合

FG100E # show user local 
config user local
    edit "guest"
略
    next
    edit "user1"
        set type password
        set passwd-time 2025-07-04 22:25:10
        set passwd ENC 略
    next
end

2_ユーザグループ作成

設定パラメータ
NameSSLVPN_Group
TypeFirewall
Membersuser1

CLIの場合

FG100E # show user group 
config user group
    edit "SSO_Guest_Users"
    next
    edit "Guest-group"
        set member "guest"
    next
    edit "SSLVPN_Group"
        set member "user1"
    next
end

3_address作成

 SSL-VPN接続先のネットワークを定義します。

設定パラメータ
NameSyanai-LAN
TypeSubnet
IP/Netmask192.168.9.0/24
Interfaceany


5_SSL-VPN設定を実行した後は以下になります

CLIの場合

FG100E # show firewall address
config firewall address
略
    edit "SSLVPN_TUNNEL_ADDR1"
        set uuid aaaaaa-bbbb-cccc-dddd-eeeeee
        set type iprange
        set start-ip 10.212.134.200
        set end-ip 10.212.134.210
    next
    edit "Syanai-LAN"
        set uuid aaaaaa-bbbb-cccc-dddd-eeeeee
        set subnet 192.168.9.0 255.255.255.0
    next
略
end

4_IPPool設定

クライアントの送信元IPがNAT変換で使用するためのIPPoolを定義します

設定パラメータ
NameSyanai-pool
External IP Range192.168.9.100 – 192.168.9.200
TypeOverload  ※「多」対「1(多ポート)」の変換
Interfaceany

CLIの場合

FG100E (ippool) # show
config firewall ippool
    edit "Syanai-pool"
        set startip 192.168.9.100
        set endip 192.168.9.200
    next
end

5_SSL-VPN設定

設定パラメータ
Enable SSL-VPNON
Listen on Interface(s)wan2
Listen on Port4433
Server CertificateFortinet_Factory
Tunnel Mode Client Settings / Address Range10.212.134.200 – 10.212.134.210
Authentication/Portal Mapping / Users/GroupsAll Other Users/Groups
Authentication/Portal Mapping / Portaltunnel-access

full-accessまたはtunnel-acessを選びます。権限は以下のとおり

SSL-VPN用のV4ポリシ-の作成が必要です。
次の証明書を適用したら、赤枠の警告をクリックしてポリシーを作成します

Fortigate自前のサーバ証明書を使います。

サーバ証明書を作成することもできるようです。

CLIの場合

FG100E # show vpn ssl settings 
config vpn ssl settings
    set servercert "Fortinet_Factory"
    set tunnel-ip-pools "SSLVPN_TUNNEL_ADDR1"
    set tunnel-ipv6-pools "SSLVPN_TUNNEL_IPv6_ADDR1"
    set port 4433
    set source-interface "wan2"
    set source-address "all"
    set source-address6 "all"
    set default-portal "tunnel-access"
end

6_SSL-VPN用FirewallPolicy設定

クライアントからローカルネットワークへのアクセス許可設定を行います

設定パラメータ
NameSSLVPN_to_Syanai
Incoming InterfaceSSL-VPN tunnel interface(ssl.root)
Outgoing Interfaceinternal
Sourceall,SSLVPN_Group
DestinationSyanai-LAN
ActionACCEPT
Firewall/Network Options / NATON
Firewall/Network Options / IP Pool ConfigurationUse Dynamic IP Pool,Syanai-pool
Security Profiles / AntiVirusON,default
Security Profiles / Web FilterON,default
Logging Options / Log Allowed TrafficON,All Sessions
Security Profiles / Web FilterON


全体はこれ

CLIの場合

FG100E (1) # show
config firewall policy
    edit 1
        set name "SSLVPN_to_Syanai"
        set uuid aaaaaa-bbbb-cccc-dddd-eeeeee
        set srcintf "ssl.root"
        set dstintf "internal"
        set action accept
        set srcaddr "all"
        set dstaddr "Syanai-LAN"
        set schedule "always"
        set service "ALL"
        set utm-status enable
        set ssl-ssh-profile "certificate-inspection"
        set av-profile "default"
        set webfilter-profile "default"
        set logtraffic all
        set nat enable
        set ippool enable
        set poolname "Syanai-pool"
        set groups "SSLVPN_Group"
    next
end

7_FortiClient_リモートアクセス設定

クライアント側はMacOSを使用しているので、SSL-VPNクライアントツールのFortiClientをインストールして設定します。グローバルIPはwhoisなどで確認しておきます

設定パラメータ
Remote Gateway5.5.5.5
Customize port54321

Conectを押下すると、次手順の環境設定に進みます

8_Mac設定_VPN許可

MacOS側でFortiClientAgentを使用したVPN許可設定を行います

9_プロバイダのルータでポートフォワード設定

プロバイダルータにアクセスして、ポートフォワード設定を入れます。
グローバルIP:グローバルポートからプライベートIP:プライベートポートへPATするために必要です

10_疎通テスト

FortiClientからSSL-VPN接続します


VPNクライアントにトンネリングIPが割り当てられていることを確認します

VPNクライアントからZabbixサーバへ実際にアクセスすると、Fortigateの転送トラフィックで通信の確認ができます。トンネリングIP(10.212.134.200)がローカルネットワークIP(192.168.9.184)へNATされてアクセスしていることが分かります

以上

CATEGORIES & TAGS

Network, Security, SSL-VPN, VPN,

Author:

カテゴリー

むるし

フリーランスのインフラ系エンジニア。
備忘録で色々書いていきます。
お問い合わせは↓
mo-gyu@murci.net
保有:LPIC303 Security、CCNA