FortiGate / FortiWiFi
Compatibility
Social WiFi has been tested and is proven to work on the following configurations:
FortiWiFi – wireless interfaces
- FortiOS version 5.6.0 and above (tested up to 7.4.5)
FortiGate hardware or virtual machine – wired interfaces
- recommended: FortiOS version 6.2.4 and above (tested up to 7.4.5)
- FortiOS version 5.6.0 and above work if the captive portal is enabled on a physical interface, VLAN interfaces are not supported below FortiOS 6.2.4
Access the device’s configuration panel
This guide assumes using the web based UI of the controller, which you can access by entering the IP address of the device in your browser. The screenshots are based on firmware v5.6.2.
Alternatively, if your device is managed from FortiCloud, you can access the management UI from there.
RADIUS configuration
Go to User & Device → RADIUS Servers → Create New and use the following settings:
Name | Social WiFi |
---|---|
Primary Server IP/Name | 35.205.62.147 |
Primary Server Secret | Radius Secret is available in Access Points tab of the Social WiFi Panel |
Secondary Server IP/Name | Leave empty |
Secondary Server Secret | Leave empty |
Authentication Method | Specify |
Method | PAP |
NAS IP | Leave empty |
Press OK.
Now you need to change the RADIUS port to 31812. Open the CLI Console (top right corner, between “help” and username).
Copy (ctrl+C) and paste (ctrl+V) or type the following commands:
config user radius edit "Social WiFi" set radius-port 31812 nextend
Also, please add an Accounting server the same way (CLI Console):
config user radius edit "Social WiFi" config accounting-server edit 1 set status enable set server 35.205.62.147 set secret [RADIUS secret from the panel] set port 31813 next next end
Setting the auth-timeout
In the CLI console, enter the following commands:
config user settingset auth-timeout-type idle-timeoutendconfig user groupedit Social\ WiFi\ -\ Guestset authtimeout 480end
Where the “set authtimeout 480” is in minutes and you can adjust the value freely. This will make your users have to relogin after not being active in the network for 8 hours.
Then close the CLI console by clicking the “x” button in the top right corner.
Remote Group configuration
Go to User & Device → User Groups → Create New
and use the following settings:
Name | Social WiFi - Guest |
---|---|
Type | Firewall |
Members | Leave empty |
Under Remote Groups, click Add and then select Social WiFi from the Remote Server dropdown list. Click OK to save and then click OK again.
Walled Garden configuration
Now we need to add all the services that will be available without logging in. This list includes Social WiFi login page and third-party social login services (like Facebook, Google). The following guide assumes firmware version 5.6.2, which doesn’t support domains with wildcard (e.g. “*.facebook.com”). Using wildcards was added in firmware 6.2.2, so if you have that version or higher, you may adjust the following steps accordingly.
The suggested way to add all required entries, is to use the CLI again to copy (ctrl+C) and paste (ctrl+V) the following scripts. Please note, that the script is split into two parts, because there’s a length limit that cannot be exceeded.
Part 1:
# Social WiFi main serviceconfig firewall address edit "Social WiFi - main 1" set type fqdn set fqdn "login.socialwifi.com" next edit "Social WiFi - main 2" set type fqdn set fqdn "sw-login.com" nextendconfig firewall addrgrp edit "Social WiFI - main" set member "Social WiFi - main 1" "Social WiFi - main 2" nextend
# Facebook remarketing pixelconfig firewall address edit "Social WiFi - Facebook pixel 1" set type fqdn set fqdn "connect.facebook.net" next edit "Social WiFi - Facebook pixel 2" set type fqdn set fqdn "www.facebook.com" nextendconfig firewall addrgrp edit "Social WiFI - Facebook pixel" set member "Social WiFi - Facebook pixel 1" "Social WiFi - Facebook pixel 2" nextend
# Google remarketing tagconfig firewall address edit "Social WiFi - Google tag 1" set type fqdn set fqdn "www.googletagmanager.com" next edit "Social WiFi - Google tag 2" set type fqdn set fqdn "www.googleadservices.com" next edit "Social WiFi - Google tag 3" set type fqdn set fqdn "googleads.g.doubleclick.net" nextendconfig firewall addrgrp edit "Social WiFI - Google tag" set member "Social WiFi - Google tag 1" "Social WiFi - Google tag 2" "Social WiFi - Google tag 3" nextend
# Facebook loginconfig firewall address edit "Social WiFi - Facebook 1" set type fqdn set fqdn "www.facebook.com" next edit "Social WiFi - Facebook 2" set type fqdn set fqdn "facebook.com" next edit "Social WiFi - Facebook 3" set type fqdn set fqdn "static.xx.fbcdn.net" next edit "Social WiFi - Facebook 4" set type fqdn set fqdn "external-frt3-2.xx.fbcdn.net" nextendconfig firewall addrgrp edit "Social WiFi - Facebook" set member "Social WiFi - Facebook 1" "Social WiFi - Facebook 2" "Social WiFi - Facebook 3" "Social WiFi - Facebook 4" nextend
Part 2:
# Twitter loginconfig firewall address edit "Social WiFi - Twitter 1" set type fqdn set fqdn "twitter.com" next edit "Social WiFi - Twitter 2" set type fqdn set fqdn "api.twitter.com" next edit "Social WiFi - Twitter 3" set type fqdn set fqdn "x.com" next edit "Social WiFi - Twitter 4" set type fqdn set fqdn "api.x.com" next edit "Social WiFi - Twitter 5" set type fqdn set fqdn "pbs.twimg.com" next edit "Social WiFi - Twitter 6" set type fqdn set fqdn "abs-0.twimg.com" next edit "Social WiFi - Twitter 7" set type fqdn set fqdn "abs.twimg.com" nextendconfig firewall addrgrp edit "Social WiFi - Twitter" set member "Social WiFi - Twitter 1" "Social WiFi - Twitter 2" "Social WiFi - Twitter 3" "Social WiFi - Twitter 4" "Social WiFi - Twitter 5" nextend
# LinkedIn loginconfig firewall address edit "Social WiFi - LinkedIn 1" set type fqdn set fqdn "www.linkedin.com" next edit "Social WiFi - LinkedIn 2" set type fqdn set fqdn "static-exp1.licdn.com" next edit "Social WiFi - LinkedIn 3" set type fqdn set fqdn "media-exp1.licdn.com" next edit "Social WiFi - LinkedIn 4" set type fqdn set fqdn "static.licdn.com" nextendconfig firewall addrgrp edit "Social WiFi - LinkedIn" set member "Social WiFi - LinkedIn 1" "Social WiFi - LinkedIn 2" "Social WiFi - LinkedIn 3" "Social WiFi - LinkedIn 4" nextend
# Group everything in one groupconfig firewall addrgrp edit "Social WiFi" set member "Social WiFI - main" "Social WiFI - Facebook pixel" "Social WiFI - Google tag" "Social WiFi - Google" "Social WiFi - Facebook" "Social WiFi - Twitter" "Social WiFi - LinkedIn" nextend
WiFi configuration (wireless interface)
Go to WiFi & Switch Controller → SSID and set the “Broadcast SSID” toggle off.
Press OK and Create New SSID.
Interface configuration:
Interface Name | Social WiFi |
---|---|
Alias | sw interface |
Type | WiFi SSID |
Traffic Mode | Tunnel |
IP/Network Mask | 10.8.0.1/255.255.0.0 |
DHCP Server | Enabled |
Address Range | Should be prefilled, if not, use 10.8.0.2 – 10.8.255.254 |
Netmask | Should be prefilled, if not, use 255.255.0.0 |
WiFi Settings:
SSID | Social WiFi (or any name that you prefer) |
---|---|
Security Mode | Captive Portal |
Portal Type | Authentication |
Authentication Portal | External: http://login.socialwifi.com/ |
User Groups | Social WiFi – Guest |
Exempt Sources | Leave empty |
Exempt Destinations/Services | Social WiFi (in ADDRESS GROUP tab, scroll down if it’s hidden) |
Redirect after Captive Portal | Original request |
Press OK.
Interface configuration (wired interface)
You can also run Social WiFi on a wired, physical interface and plug access points there. In this scenario those access points don’t have to be managed by the FortiGate unit.
Go to Network → Interfaces and double-click on the interface that you want to install Social WiFi on and configure as follows:
Interface Name | *any lan interface you want Social WiFi on |
---|---|
Alias | socialwifi-lan* |
Role | LAN |
Addressing mode | Manual |
IP/Network Mask | 10.8.0.1/255.255.0.0 |
IPv4 | Leave unchecked |
DHCP Server | Enabled |
Address range | Should be autofilled, if not - copy from the image below |
Security Mode | Captive Portal |
Authentication Portal | External: http://login.socialwifi.com/ |
User Access | Restricted to Groups |
User Groups | Social WiFi – Guest |
Customize Portal Messages | Unchecked |
Exempt Sources | Leave empty |
Exempt Destinations/Services | Social WiFi |
Press OK.
Firewall configuration
You need to allow for traffic from guests using the WiFi, because the default policy is to deny all traffic.
Go to Policy & Objects → IPv4 Policy → Create New and use the following settings:
Name | Social WiFi Allow Guests |
---|---|
Incoming Interface | Social WiFi (the interface created or edited in the previous point) |
Outgoing Interface | wan1 (your WAN interface) |
Source | all |
Destination | all |
Service | ALL |
Action | ACCEPT |
Press OK.
Add the device to Social WiFi Panel
The setup of the controller is now finished. The last step is to add the MAC address(es) to the Social WiFi platform.
Usually the MAC address will be printed on a label on the device itself. It should be visible in the GUI as well on the edit interface screen. If you don’t know the MAC address, please contact Social WiFi Support.
Now, switch to Social WiFi Panel, go to Access Points tab, click the Add button and paste the MAC address(es). Click Create.
Test the solution
Connect with the WiFi network. You should see a login page. Go through the login process and, once finished, you should have internet access. You should see first connections and authorisations in the Social WiFi Panel’s statistics section.
Troubleshooting
If you have any external firewall behind the FortiGate device, please make sure that you enable these ports:
- TCP/8080 (Captive Portal (http redirection))
- TCP/8081 (Captive Portal (https redirection)
- UDP/9177, 337008 (AP Communication (Capture Packets subsystem))