FortiGate SSL VPN 設定 Minimal・email認証・クライアント証明書認証 - ぶやかー

Minimal

最低限のSSL VPN設定

SSL VPNクライアントのアドレス設定

config firewall address
    edit "TEST_SSLVPN_ADDR"
        set type iprange
        set start-ip 192.168.1.10
        set end-ip 192.168.1.20
    next
end

SSL VPNクライアントのアクセスを許可するアドレス

config firewall address
    edit "TEST_SSLVPN_ALLOW_SEGMENT"
        set subnet 192.168.1.0 255.255.255.0
    next
end

SSL VPN ユーザ作成

config user local
    edit "user1"
        set type password
        set passwd PASSWORD
    next
end

SSL VPN グループ作成

config user group
    edit "TEST_SSLVPN_GROUP"
        set member "user1"
    next
end

SSL VPN Portal作成

config vpn ssl web portal
    edit "TEST_SSLVPN_PORTAL"
        set tunnel-mode enable
        set web-mode enable
        set ip-pools "TEST_SSLVPN_ADDR"
    next
end

許可ユーザ以外の SSL VPN Portal作成

config vpn ssl web portal
    edit "TEST_SSLVPN_PORTAL_NOACCESS"
        set allow-user-access ping
        set web-mode disable
    next
end

SSL VPN Setting

config vpn ssl settings
    set servercert "Fortinet_Factory"
    set tunnel-ip-pools "SSLVPN_TUNNEL_ADDR1"
    unset tunnel-ipv6-pools
    set source-interface "wan2"
    set source-address "all"
    unset source-address6
    set default-portal "TEST_SSLVPN_PORTAL_NOACCESS"
    config authentication-rule
        edit 1
            set groups "TEST_SSLVPN_GROUP"
            set portal "TEST_SSLVPN_PORTAL"
        next
    end
end

Firewall Policy

config firewall policy
    edit 1
        set name "TEST_SSLVPN_POLICY"
        set srcintf "ssl.root"
        set dstintf "internal5"
        set action accept
        set srcaddr "TEST_SSLVPN_ADDR"
        set dstaddr "TEST_SSLVPN_ALLOW_SEGMENT"
        set schedule "always"
        set service "ALL"
        set groups "TEST_SSLVPN_GROUP"
    next
end

email認証

email認証のSSL VPN ユーザ作成

config user local
    edit "emailuser"
        set type password
        set two-factor email
        set email-to "user2@example.com"
        set passwd PASSWORD
    next
end

SSL VPN グループに追加

config user group
    edit "TEST_SSLVPN_GROUP"
        append member "emailuser"
    next
end

メールサーバ設定

デフォルトの設定だとreply-toが宛先メールアドレスとなるため、メール環境によってはSPAM扱いになることがある。
なので、送信サーバに合わせて設定しておいたほうが良いと思う。

config system email-server
    set reply-to "noreply@notification.fortinet.net"
    set server "notification.fortinet.net"
    set port 465
    set security smtps
end

クライアント証明書認証

FortiGate側設定

GUIで証明書画面を有効化

config system global
    set gui-certificates enable
end

Private CA証明書インストール

config vpn certificate ca
    edit "TEST_SSLVPN_CA
        set ca "-----BEGIN CERTIFICATE-----
        <"の間にSSL証明書をペースト>
-----END CERTIFICATE-----"
    next
end

PKIユーザ設定

subjectはなくてもOK。
ただ、emailだけは上手くいかない・・・
set subject "E=crtuser@example.com"とかでははだめ、メールアドレスのみset subject "crtuser@example.com"にしてもだめだった・・・

ちなみにOU = Lab, O = AsakusaLabはいける。

config user peer
    edit "crtuser"
        set ca "TEST_SSLVPN_CA"
        set subject "CN=crtuser"
        set two-factor enable
        set passwd PASSWORD
    next
end

PKIユーザをSSL VPN グループに追加

config user group
    edit "TEST_SSLVPN_GROUP"
        append member "crtuser"
    next
end

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 source-interface "wan2"
    set source-address "all"
    set source-address6 "all"
    set default-portal "TEST_SSLVPN_PORTAL_NOACCESS"
    config authentication-rule
        edit 1
            set groups "TEST_SSLVPN_GROUP"
            set portal "TEST_SSLVPN_PORTAL"
        next
    end
end
FG60F-Primary (settings) # show full | grep tls
    set ssl-max-proto-ver tls1-3
    set ssl-min-proto-ver tls1-2
    set dtls-hello-timeout 10
    set dtls-tunnel enable
    set dtls-max-proto-ver dtls1-2
    set dtls-min-proto-ver dtls1-0
FG60F-Primary (settings) # show full | grep alg
    set algorithm high
    set client-sigalgs all

クライアントPC側設定

インターネットオプションの設定

Ctrl+Rでcontrol inetcpl.cplを開く

control inetcpl.cpl

詳細設定でtlsの設定を合わせる
* [] SSL 3.0
* [] TLS 1.0
* [x] TLS1.1
* [x] TLS1.2
* [x] TLS1.3

クライアント証明書をPKCS#12に変換

openssl pkcs12 -export -in crtuser.crt -inkey crtuser.key -out crtuser.pfx

クライアント証明書をPCにインストール

windowsの場合
* PrivateCA証明書をダブルクリックしてインストール
-「現在のユーザ」推奨
– 証明書をすべて次のストアに配置する > 「信頼されたルート証明機関」

  • クライアント証明書をダブルクリックしてインストール
    -「現在のユーザ」推奨

    • 保護のパラメータは任意
    • 証明書をすべて次のストアに配置する > 「個人」

FortiClientで新規接続の作成

  • クライアント証明書のプルダウンでインポートした証明書を選択する
  • 無効なサーバ証明書の警告を非表示(推奨、v7.0.xでは選べないかも)

この記事を書いた人 Wrote this article

kmatsunuma

TOP