SSL VPN with certificate authentication
This topic provides a sample configuration of SSL VPN that requires users to authenticate using a certificate.
SSL VPN standalone tunnel client applications are available for Windows, Linux, and Mac OS X systems (see the Release Notes for your FortiOS firmware for the specific versions that are supported). There are separate download files for each operating system. Hi Lotzi, there is a lightweight dedicated SSL VPN client available from the support site. Forticlient Ssl Vpn Mac Download Software; IPsec VPN with native Mac OS X client In this recipe, you will learn how to create an IPsec VPN on a FortiGate, and connect to it using the default Mac OS X client. This configuration allows Mac users to securely access an internal network and browse the Internet through the VPN tunnel. Forticlient ssl. MAC OS X client. This chapter provides useful general information about VPN and SSL, how the FortiGate unit implements them, and gives guidance on how to choose. Using the SSL VPN tunnel client - This chapter explains how to install and use the tunnel mode clients for Windows, Linux, and Mac OS X.
Sample network topology
Sample configuration
WAN interface is the interface connected to ISP. This example shows static mode. You can also use DHCP or PPPoE mode. The SSL VPN connection is established over the WAN interface.
To configure SSL VPN using the GUI:
Port1 interface connects to the internal network.
The server certificate is used for encrypting SSL VPN traffic and will be used for authentication. a. Go to System > Feature Visibility and ensure Certificates is enabled.
The server certificate now appears in the list of Certificates.
The CA certificate is the certificate that signed both the server certificate and the user certificate. In this example, it is used to authenticate SSL VPN users.
The CA certificate now appears in the list of External CA Certificates. In the example, it is called CA_Cert_1.
To use certificate authentication, PKI users must be created in the CLI. Use the CLI console to enter the following commands:
config user peer
edit pki01
set ca CA_Cert_1 set subject User01
end l Ensure the subject matches the name of the user certificate. In this example, User01. Now that you have created a PKI user, a new menu is added to the GUI. a. Go to User& Device > PKI to see the new user.
This portal supports both web and tunnel mode.
To configure SSL VPN using the CLI:
config system interface edit “wan1” set vdom “root”
set ip 172.20.120.123 255.255.255.0
next
end
Configure internal interface and protected subnet. Connect Port1 interface to internal network.
config system interface edit “port1” set vdom “root”
set ip 192.168.1.99 255.255.255.0
next
end
config firewall address edit “192.168.1.0” set subnet192.168.1.0 255.255.255.0
next
end
The server certificate is used for encrypting SSL VPN traffic and will be used for authentication. It is easier to install the server certificate from GUI. However, CLI can import a p12 certificate from a tftp server.
If you want to import a p12 certificate, put the certificate server_certificate.p12 on your tftp server, then run following command on the FortiGate.
execute vpn certificate local import tftp server_certificate.p12 <your tftp_server> p12 <your password for PKCS12 file>
To check server certificate is installed:
show vpn certificate local server_certificate
The CA certificate is the certificate that signed both the server certificate and the user certificate. In this example, it is used to authenticate SSL VPN users.
It is easier to install the server certificate from GUI. However, CLI can import a CA certificates from a tftp server. If you want to import a CA certificate, put the CA certificate on your tftp server, then run following command on the FortiGate.
execute vpn certificate ca import tftp <your CA certificate name> <your tftp server>
To check that a new CA certificate is installed:
show vpn certificate ca
config user peer
edit pki01
set ca CA_Cert_1 set subject User01 set two-factor enable set passwd <your-password>
end config user group edit “sslvpngroup” set member “pki01”
next
end
config vpn ssl web portal edit “full-access” set tunnel-mode enable set web-mode enable set ip-pools “SSLVPN_TUNNEL_ADDR1” set split-tunneling disable
next
end
config vpn ssl settings set servercert “server_certificate” set tunnel-ip-pools “SSLVPN_TUNNEL_ADDR1” set source-interface “wan1” set source-address “all” set default-portal “web-access” set reqclientcert enable config authentication-rule edit 1 set groups “sslvpngroup” set portal “full-access”
next
end
Configure one firewall policy to allow remote user to access the internal network.
config firewall policy edit 1 set name “sslvpn web mode access”
set srcintf “ssl.root” set dstintf “port1” set srcaddr “all” set dstaddr “192.168.1.0” set groups “sslvpngroup” set action accept set schedule “always” set service “ALL” set nat enable
next
end
Sample installation
To use the user certificate, you must first install it on the user’s PC. When the user tries to authenticate, the user certificate is checked against the CA certificate to verify that they match.
Every user should have a unique user certificate. This allows you to distinguish each user and revoke a specific user’s certificate, such as if a user no longer has VPN access.
To install the user certificate on Windows 7, 8, and 10:
To install the user certificate on Mac OS X:
To see the results of tunnel connection:
l Set VPN Type to SSL VPN. l Set Remote Gateway to the IP of the listening FortiGate interface, in this example: 172.20.120.123.
If the certificate is correct, you can connect.
To see the results of web portal:
A message requests a certificate for authentication.
If the certificate is correct, you can connect to the SSL VPN web portal.
To check the SSL VPN connection using the GUI:
To check the SSL VPN connection using the CLI:
get vpn ssl monitor SSL VPN Login Users: | ||
Index User Auth Type | Timeout | From HTTP in/out HTTPS in/out |
0 pki01,cn=User01 | 1(1) | 229 10.1.100.254 0/0 0/0 |
1 pki01,cn=User01 SSL VPN sessions: | 1(1) | 291 10.1.100.254 0/0 0/0 |
Index User Source IP | Duration | I/O Bytes Tunnel/Dest IP |
0 pki01,cn=User01 | 10.1.100.254 | 9 22099/43228 10.212.134.200 |