Configuring WiFi captive portal security – external server
An external captive portal is a web page on a web server. The essential part of the web portal page is a script that gathers the user’s logon credentials and sends back to the FortiGate a specifically-formatted POST message.
The portal page can also contain links to local information such as legal notices, terms of service and so on.
Defining SSID groups
Without authenticating, the user cannot access any other information. This is sometimes called a “walled garden”.
On the captive portal page, the user submits credentials, which the script returns to the FortiGate at the URL https://<FGT_IP>:1000/fgtauth with data magic=session_id&username=<username>&password=<password>.
(The magic value was provided in the initial FortiGate request to the web server.)
To ensure that credentials are communicated securely, enable the use of HTTPS for authentication:
config user setting set auth-secure-http enable
end
To configure use of an external WiFi Captive Portal – web-based manager:
- Go to WiFi & Switch Controller > SSIDand create your SSID.
If the SSID already exists, you can edit the SSID or you can edit the WiFi interface in Network > Interfaces.
- In Security Mode, select Captive Portal. Enter
Portal Type | The portal can provide authentication and/or disclaimer, or perform user email address collection. |
Authentication Portal | External – enter the FQDN or IP address of the external portal. Typically, this is the URL of a script. Do not include the protocol (http:// or https://) part of the URL. |
User Groups | Select permitted user groups or select Use Groups from Policies, which permits the groups specified in the security policy. |
Exempt List | Select exempt lists whose members will not be subject to captive portal authentication. |
Redirect after Captive Portal | Original Request
Specific URL – enter URL |
- Select OK.
Defining SSID groups
Optionally, you can define SSID groups. An SSID group has SSIDs as members and can be specified just like an SSID in a FortiAP Profile.
To create an SSID group – GUI
Go to WiFi & Switch Controller > SSID and select Create New > SSID Group. Give the group a Name and choose Members (SSIDs, but not SSID groups).
Dynamic user VLAN assignment
To create an SSID group – CLI:
config wireless-controller vap-group edit vap-group-name set vaps “ssid1” “ssid2”
end
Dynamic user VLAN assignment
Clients connecting to the WiFi network can be assigned to a VLAN. You can do this with RADIUS attributes when the user authenticates or with VLAN pooling when the client associates with a particular FortiAP. You cannot use both of these methods at the same time.
VLAN assignment by RADIUS
You can assign each individual user to a VLAN based on information stored in the RADIUS authentication server. If the user’s RADIUS record does not specify a VLAN ID, the user is assigned to the default VLAN for the SSID.
The RADIUS user attributes used for the VLAN ID assignment are:
IETF 64 (Tunnel Type)—Set this to VLAN.
IETF 65 (Tunnel Medium Type)—Set this to 802
IETF 81 (Tunnel Private Group ID)—Set this to the VLAN ID. To configure dynamic VLAN assignment, you need to:
- Configure access to the RADIUS server.
- Create the SSID and enable dynamic VLAN assignment.
- Create a FortiAP Profile and add the local bridge mode SSID to it.
- Create the VLAN interfaces and their DHCP servers.
- Create security policies to allow communication from the VLAN interfaces to the Internet.
- Authorize the FortiAP unit and assign the FortiAP Profile to it.
To configure access to the RADIUS server
- Go to User & Device > RADIUS Servers and select Create New.
- Enter a Name, the name or IP address in Primary Server IP/Name, and the server secret in Primary Server Secret.
- Select OK.
To create the dynamic VLAN SSID
- Go to WiFi & Switch Controller > SSID, select Create New > SSID and enter:
Name | An identifier, such as dynamic_vlan_ssid. |
Traffic Mode | Local bridge or Tunnel, as needed. |
Dynamic user VLAN assignment
SSID | An identifier, such as DYNSSID. |
Security Mode | WPA2 Enterprise |
Authentication | RADIUS Server. Select the RADIUS server that you configured. |
- Select OK.
- Enable dynamic VLAN in the CLI. Optionally, you can also assign a VLAN ID to set the default VLAN for users without a VLAN assignment.
config wireless-controller vap edit dynamic_vlan_ssid set dynamic-vlan enable set vlanid 10
end
To create the FortiAP profile for the dynamic VLAN SSID
- Go to WiFi & Switch Controller > FortiAP Profiles, select Create New and enter:
Name | A name for the profile, such as dyn_vlan_profile. |
Platform | The FortiAP model you are using. If you use more than one model of FortiAP, you will need a FortiAP Profile for each model. |
Radio 1 and Radio 2 | |
SSID | Select the SSID you created (example dynamic_vlan_ssid). Do not add other SSIDs. |
- Adjust other radio settings as needed.
- Select OK.
To create the VLAN interfaces
- Go to Network > Interfaces and select Create New > Interface.
- Enter:
Name | A name for the VLAN interface, such as VLAN100. |
Interface | The physical interface associated with the VLAN interface. |
VLAN ID | The numeric VLAN ID, for example 100. |
Addressing mode | Select Manual and enter the IP address / Network Mask for the virtual interface. |
DHCP Server | Enable and then select Create New to create an address range. |
- Select OK.
- Repeat the preceding steps to create other VLANs as needed.
Dynamic user VLAN assignment
Security policies determine which VLANs can communicate with which other interfaces. These are the simple Firewall Address policy without authentication. Users are assigned to the appropriate VLAN when they authenticate.
To connect and authorize the FortiAP unit
- Connect the FortiAP unit to the FortiGate unit.
- Go to WiFi & Switch Controller > Managed FortiAPs.
- When the FortiAP unit is listed, double-click the entry to edit it.
- In FortiAP Profile, select the FortiAP Profile that you created.
- Select Authorize.
- Select OK.
Hi Mike,
Since I know by following your posts that you are really good the Fortinet in general, please allow me to ask you a question. In a Fortigate, FortiAP and Radius scenario, can I dynamically assign the VLAN to the WIFI users based on their device type? More specifically, I would like to move any iOS/Android to a different VLAN than a normal Windows Client would get. Thanks
You pass it by the 802.1x pass thru of the RADIUS authentication not the device.