Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

GUÍA DE CONFIGURACIÓN

El objetivo del siguiente manual es una descripción de la configuración necesaria en el equipamiento Fortigate para la integración con la plataforma WiFi Invitados. 

Panel
borderColorlightgrey
borderStylesolid

Table of Contents
maxLevel3
indent15px
excludeGUÍA DE CONFIGURACIÓN
stylenone

1- Configuración inicial

Existen dos opciones de configuración para la validación del portal cautivo: Una a través de conectividad http, donde el tráfico no iría cifrado y otra a través de https. Se aconseja la segunda opción para un funcionamiento adecuado de todas las funcionalidades y para evitar errores de seguridad en los navegadores que deterioran la experiencia del usuario final.

1.1 Opción HTTP

Dejando valores por defecto, podremos utilizar esta configuración.

Lo normal es que los siguientes parámetros de configuración no tengan nada configurado. Utilizando el comando "show" podemos verificarlo:

Code Block
languagecpp
themeFadeToGrey
config user setting
show
   "config user setting
   end"
config firewall auth-portal
show
   "config firewall auth-portal
   end"

1.2 Opción HTTPS

Lo primero, será cargar un nuevo certificado asociado al subdominio para realizar el login. para ello seguir los siguientes pasos:

Subir certificado

  • Lo primero será crear el certificado con formato ".pfx". Podemos crearlo con openssl.
  • Para subirlo, acceder a la interfaz gráfica System > Certificates > Import > Local Certificate:
    • Type: PKCS #12 Certificate
    • Certificate with key file: certificate.pfx
    • Password: dejarlo en blanco
    • Certificate Name: <certificate_name>

Cambios configuración

Code Block
languagecpp
themeFadeToGrey
config user setting
	set auth-secure-http enable
	set auth-cert <certificate_name>
end

config firewall auth-portal
    set portal-addr <certificate_name>
end

Añadir entrada estática DNS

Si se utiliza un servidor DHCP ajeno al equipo Fortinet, crear una entrada DNS que resuelva "<certificate_name> = IP interfaz configuración portal del Fortinet". En caso contrario seguir los siguientes pasos:

  • Networks > DNS Servers > DNS Database > Create New
    • Type: Master
    • View: Shadow
    • DNS Zone: <certificate_name>
    • Domain Name: <certificate_name>
    • Authoritative: disable
  • Dentro de Database creado DNS Entries > Create New
    • Type: Address (A)
    • Hostname: securelogin
    • IP Address: incluir la dirección IP del equipo FortiWiFi en el interfaz WIFI en el que se activará el portal cautivo. (Esta dirección IP se puede consultar en Network > Interfaces)
Code Block
languagecpp
themeFadeToGrey
config system dns-database
    edit "<certificate_name>"
        set domain "<certificate_name>"
        config dns-entry
            edit 1
                set hostname "securelogin.octopuswifi.com"
                set ip 10.10.0.1
            next
        end
    next
end

  • Vertificar que los servidores DNS entregados al cliente es el del Fortinet. Para ello Network > Interfaces > Interfaz WiFi Invitados configurado > DHCP Server > DNS Server, configurar "Same as interface IP"

2-  Radius Servers

El siguiente paso es configurar los parámetros del Servidor Radius al que se enviarán las peticiones de autenticación de los usuarios. Para ello se aconseja realizarlo a través de CLI, ya que parte de la configuración no es soportada por la interfaz gráfica:

...

languagecpp
themeFadeToGrey

...

GUÍA DE CONFIGURACIÓN

El objetivo del siguiente manual es una descripción de la configuración necesaria en el equipamiento Fortigate para la integración con Octopus Platform

Panel
borderColorlightgrey
borderStylesolid
Table of Contents
maxLevel3
indent15px
excludeGUÍA DE CONFIGURACIÓN
stylenone

1- Requerimientos previos

  • Si en la instalación existe un firewall que bloquee el tráfico se deberá permitir el acceso libre a ciertos dominios e IPs para habilitar la autenticación de los usuarios.

    • Servidores Radius:

      • Primario: <IP_Radius_1> puertos 1812 y 1813 UDP

      • Secundario: <IP_Radius_2> puertos 1812 y 1813 UDP

    • Servidor Splash Portal

      • Dominio <dominio_captive_portal> puertos 80 y 443 TCP

  • Para el funcionamiento de la configuración de los módulos Guest y Enterprise, previamente será necesario contratar las licencias de la plataforma Octopus con los respectivos módulos.

2- Configuración módulo Guest

2.1 Radius Server

Para configurar los parámetros del Servidor Radius al que se enviarán las peticiones de autenticación de los usuarios se aconseja realizarlo a través de CLI, ya que parte de la configuración no es soportada por la interfaz gráfica:

Code Block
languagecpp
config user radius

    edit Radius_Guest 
        set server "<IP_Radius_1>"
        set secret <Secret>
        set acct-interim-interval 600
        set auth-type pap
        set secondary-server "<IP_Radius_2>"
        set secondary-secret <Secret>
        config accounting-server
            edit 1
                set status enable
                set server "<IP_Radius_1>"
                set secret <Secret>
            next
            edit 2
                set status enable
                set server "<IP_Radius_2>"
                set secret <Secret>
            next
        end
	next
    end

Posteriormente crear un grupo de usuarios que utilice dicho servidor. Para ello acceder a User & Device > User Groups y añadir un nuevo grupo con la siguiente configuración:

Code Block
languagecpp
config user group
    edit "Radius_Group"
        set member "Radius_Guest"
    next
end

2.2 Captive Portal

Para crear la VLAN que estará asociada al portal cautivo externo acceder a Network > Interfaces y añadir una nueva vlan haciendo click en Create New Interface con la siguiente configuración:

  • Interface Name: indicar el nombre del interfaz

  • Type: VLAN

  • Interface: indicar el interface al que estará asociada la VLAN

  • Address: configurar los parámetros referentes al direccionamiento IP dependiendo de la configuración de red del cliente.

  • Administrative Access: RADIUS Accounting

  • DHCP Sever: Configurar los parámetros del servidor DHCP dependiendo de la configuración de red del cliente.

  • Admission Control

    • Security mode: Captive Portal

    • Authentication Portal: External (revisar apartado 2.4 para que la redirección de la url sea http o https):

      • Opción http: http://<dominio_captive_portal>/login/hotspot/fortigate

      • Opción https: https://<dominio_captive_portal>/login/hotspot/fortigate

    • User Access: Restricted to Groups

    • User Groups: Seleccionar el grupo que contiene el Servidor Radius

Ejemplo de configuración por CLI:

Code Block
languagecpp
config system interface
    edit "vlan710"
        set 

...

vdom "

...

root"
        set

...

 ip 10.10.0.1 255.255.252.0
        set allowaccess 

...

ping radius-acct
        set 

...

alias "vlan_Guest710"
        set 

...

security-

...

mode captive-portal
        set 

...

security-mac-auth-bypass enable
        

...

set 

...

security-external-web "https://"<dominio_captive_portal>"/login/hotspot/fortigate"
        set security-groups "Radius_group"
 

...

 

...

      set role lan
        set 

...

snmp-index 

...

14
        set interface "bridgeEth"
     

...

  

...

 

...

set 

...

vlanid 710
    next

...

Posteriormente crear un grupo de usuarios que utilice dicho servidor. Para ello acceder a User & Device > User Groups y añadir un nuevo grupo con la siguiente configuración:

Code Block
languagecpp
themeFadeToGrey
config user group
    edit "Radius_Group"
        set member "Radius_Guest"
    next
end

...

3-  Captive Portal

El siguiente paso es crear la VLAN que estará asociada al portal cautivo externo. Para ello acceder a Network > Interfaces y añadir una nueva vlan haciendo click en Create New Interface con la siguiente configuración:

  • Interface Name: indicar el nombre del interfaz
  • Type: VLAN
  • Interface: indicar el interface al que estará asociada la VLAN
  • Address: configurar los parámetros referentes al direccionamiento IP dependiendo de la configuración de red del cliente.
  • Administrative Access: RADIUS Accounting
  • DHCP Sever: Configurar los parámetros del servidor DHCP dependiendo de la configuración de red del cliente.
  • Admission Control
    • Security mode: Captive Portal
    • Authentication Portal: External
      • https://<dominio_captive_portal>/login/hotspot/fortigate
    • User Access: Restricted to Groups
    • User Groups: Seleccionar el grupo que contiene el Servidor Radius

Ejemplo de configuración por CLI:

...

languagecpp
themeFadeToGrey

...

end

Tras configurar todos los parámetros indicados hacer click en OK para guardar la configuración realizada.

2.3 Walled Garden

El último paso para terminar la configuración en el equipamiento Fortigate es añadir el Walled Garden, para ello acceder a Policy & Objects > Addresses y añadir los dominios básicos más los que nos interesen (ej: Redes sociales) del siguiente listado que se puede desplegar a continuación:

  • Name: Nombre identificativo

  • Type: FQDN

  • FQDN: *domain*

  • Interface: any

Como mínimo se deberán añadir:

Info

Si se desean añadir dominios extra (Redes Sociales, Paypal, etc...) pueden consultarse desde el siguiente enlace

Ejemplo CLI

Code Block
languagecpp
config firewall address
	edit "<dominio_captive_portal>"
		set type fqdn
		set fqdn "<dominio_captive_portal>"
	next
	edit "google-analytics.com"
		set type fqdn
		set fqdn "google-analytics.com"
	next
	edit "doubleclick.net"
		set type fqdn
		set fqdn "doubleclick.net"
	next
end

A continuación, es necesario crear un Address Group que incluya todos los dominios anteriores. Para ello, hacer click en Create New Address Group y configurar los siguientes parámetros:

  • Name: Nombre identificativo

  • Members: incluir todos los dominios añadidos anteriormente.

Code Block
languagecpp
config firewall addrgrp
	edit "walledgarden_group"
		set member "<dominio_captive_portal>" "google-analytics.com" "doubleclick.net"
	next
end

2.4 Políticas

Una vez añadidas todas las direcciones es necesario asociar cada una de ellas a una política, para ello dirigirse a Policy & Objects > IPv4 Policy y añadir una serie de políticas

Política walled garden

  • Name: walledgardenpolicy_guest

  • Incoming Interface: interface creada para invitados anteriormente.

  • Outgoing Interface: WAN Interface

  • Source: all

  • Destination: indicar el Address Group añadido anteriormente.

  • Service: ALL

  • Action: Accept

Se debe habilitar el bypass al Walled Garden para que no le afecte el portal cautivo externo configurado. Para ello, acceder por consola al equipo y ejecutar el siguiente código cambiando el policy_id por el que corresponda.

Code Block
languagecpp
config firewall policy
  edit <policy_id>
    set captive-portal-exempt enable
  end

Política DNS

Además, es necesario también añadir una política que permita el acceso a los servidores DNS. Para ello, añadir una política nueva con la siguiente configuración:

  • Name: dns_guest

  • Incoming Interface: interface creada anteriormente.

  • Outgoing Interface: WAN Interface

  • Source: all

  • Destination: all

  • Service: DNS

  • Action: Accept

Política de acceso a internet

Para finalizar esta configuración, se debe crear una política de acceso a Internet para los usuarios autenticados con la siguiente configuración:

  • Name: auth_guest

  • Incoming Interface: interface creada en anteriormente

  • Outgoing Interface: WAN Interface

  • Source:

    • all

    • añadir el grupo de Radius creado anteriormente

  • Destination: all

  • Service: ALL

  • Action: Accept

A continuación se resumen todas las políticas en CLI:

Code Block
languagecpp
    edit 1
        set name "walledgardenpolicy_guest"
        set srcintf "vlan710"
        set dstintf "wan1"
        set 

...

srcaddr "all"
        set 

...

Tras configurar todos los parámetros indicados hacer click en OK para guardar la configuración realizada.

4-  Walled Garden

El último paso para terminar la configuración en el equipamiento Fortigate es añadir el Walled Garden, para ello acceder a Policy & Objects > Addresses y añadir los dominios básicos más los que nos interesen (ej: Redes sociales) del siguiente listado que se puede desplegar a continuación:

  • Name: Nombre identificativo
  • Type: FQDN
  • FQDN: *domain*
  • Interface: any

Como mínimo se deberán añadir:

  • <dominio_captive_portal>
  • google-analytics.com
  • doubleclick.net

A continuación se puede ver la lista completa dependiendo de las funcionalidades utilizadas. 

...

titleWalled Garden / Domain Whitelist

...

Ejemplo CLI

Code Block
languagecpp
themeFadeToGrey
config firewall address
	edit "<dominio_captive_portal>"
		set type fqdn
		set fqdn "<dominio_captive_portal>"
	next
	edit "google-analytics.com"
		set type fqdn
		set fqdn "google-analytics.com"
	next
	edit "doubleclick.net"
		set type fqdn
		set fqdn "doubleclick.net"
	next
end

A continuación, es necesario crear un Address Group que incluya todos los dominios anteriores. Para ello, hacer click en Create New Address Group y configurar los siguientes parámetros:

  • Name: Nombre identificativo
  • Members: incluir todos los dominios añadidos anteriormente.
Code Block
languagecpp
themeFadeToGrey
config firewall addrgrp
	edit "walledgarden_group"
		set member "<dominio_captive_portal>" "google-analytics.com" "doubleclick.net"
	next
end

5-  Políticas

Una vez añadidas todas las direcciones es necesario asociar cada una de ellas a una política, para ello dirigirse a Policy & Objects > IPv4 Policy y añadir una serie de políticas

Política walled garden

  • Name: walledgardenpolicy_guest
  • Incoming Interface: interface creada para invitados anteriormente.
  • Outgoing Interface: WAN Interface
  • Source: all
  • Destination: indicar el Address Group añadido anteriormente.
  • Service: ALL
  • Action: Accept

Se debe habilitar el bypass al Walled Garden para que no le afecte el portal cautivo externo configurado. Para ello, acceder por consola al equipo y ejecutar el siguiente código cambiando el policy_id por el que corresponda.

Code Block
languagecpp
themeFadeToGrey
config firewall policy
  edit <policy_id>
    set captive-portal-exempt enable
  end

Política DNS

Además, es necesario también añadir una política que permita el acceso a los servidores DNS. Para ello, añadir una política nueva con la siguiente configuración:

  • Name: dns_guest
  • Incoming Interface: interface creada anteriormente.
  • Outgoing Interface: WAN Interface
  • Source: all
  • Destination: all
  • Service: DNS
  • Action: Accept

Política de acceso a internet

Para finalizar esta configuración, se debe crear una política de acceso a Internet para los usuarios autenticados con la siguiente configuración:

  • Name: auth_guest
  • Incoming Interface: interface creada en anteriormente
  • Outgoing Interface: WAN Interface
  • Source:
    • all
    • añadir el grupo de Radius creado anteriormente
  • Destination: all
  • Service: ALL
  • Action: Accept

A continuación se resumen todas las políticas en CLI:

...

languagecpp
themeFadeToGrey

...

dstaddr "walledgarden_guest"
        set action accept
        set schedule "always"
        set service "ALL"
        set captive-portal-exempt enable
        set nat enable
    next
    edit 2
        set name "dns_guest"
        set srcintf "vlan710"
        set dstintf "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "DNS"
        set captive-portal-exempt enable
        set nat enable
    next
    edit 3
        set name "auth_guest"
        set srcintf "vlan710"
        set dstintf "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set fsso disable
        set groups "Radius_Group"
        set nat enable
    next
end

2.5 NAS Identifier

Para que el Servidor Radius autorice e identifique las peticiones de autenticación provenientes del equipo FortiGate es necesario modificar el nombre del equipo para que envíe la MAC Address del mismo. Para ello ejecutar los siguientes comando modificando la dirección MAC por la que corresponda. 

Code Block
languagecpp
config system global
	set alias "18CF5EA1F8BD"
	set hostname "18CF5EA1F8BD"
end   

2.6 Configuración proceso login HTTP o HTTPS

Existen dos opciones de configuración para la validación del portal cautivo: Una a través de conectividad http, donde el tráfico no iría cifrado y otra a través de https.

Opción HTTP

Dejando valores por defecto, podremos utilizar esta configuración.

Lo normal es que los siguientes parámetros de configuración no tengan nada configurado. Utilizando el comando "show" podemos verificarlo:

Code Block
languagecpp
config user setting
show
   "config user setting
   end"
config firewall auth-portal
show
   "config firewall auth-portal
   end"

Opción HTTPS

Lo primero, será cargar un nuevo certificado asociado al subdominio para realizar el login. para ello seguir los siguientes pasos:

Subir certificado

  • Lo primero será crear el certificado con formato ".pfx". Podemos crearlo con openssl.

  • Para subirlo, acceder a la interfaz gráfica System > Certificates > Import > Local Certificate:

    • Type: PKCS #12 Certificate

    • Certificate with key file: certificate.pfx

    • Password: dejarlo en blanco

    • Certificate Name: <certificate_name>

Cambios configuración

Code Block
languagecpp
config user setting
	set auth-secure-http enable
	set auth-cert <certificate_name>
end

config firewall auth-portal
    set portal-addr <certificate_name>
end

Añadir entrada estática DNS

Si se utiliza un servidor DHCP ajeno al equipo Fortinet, crear una entrada DNS que resuelva "<certificate_name> = IP interfaz configuración portal del Fortinet". En caso contrario seguir los siguientes pasos:

  • Networks > DNS Servers > DNS Database > Create New

    • Type: Master

    • View: Shadow

    • DNS Zone: <certificate_name>

    • Domain Name: <certificate_name>

    • Authoritative: disable

Image Added
  • Dentro de Database creado DNS Entries > Create New

    • Type: Address (A)

    • Hostname: securelogin

    • IP Address: incluir la dirección IP del equipo FortiWiFi en el interfaz WIFI en el que se activará el portal cautivo. (Esta dirección IP se puede consultar en Network > Interfaces)

Image Added
Code Block
languagecpp
config system dns-database
    edit "<certificate_name>"
        set domain "<certificate_name>"
        config dns-entry
            edit 1
                set hostname "securelogin.<certificate_name>"
                set ip 10.10.0.1
            next
        end
    next
end
  • Verificar que los servidores DNS entregados al cliente es el del Fortinet. Para ello Network > Interfaces > Interfaz WiFi Invitados configurado > DHCP Server > DNS Server, configurar "Same as interface IP"

2.7 Listado MACs Autorizadas

Para que la validación de los usuarios funcione correctamente es necesario identificar los NAS que podrán realizar peticiones de autenticación al Servidor Radius. En este caso se debe añadir a la plataforma WIFI la dirección MAC del equipo que se ha configurado como hostname y alias anteriormente.

3- Configuración módulo Enterprise

Para poder integrar las configuraciones de este módulo con la plataforma, es necesario contratar el Módulo Enterprise de Octopus Platform

3.1 Configuración Captive portal + MAC Authentication

Para activar la autenticación por MAC es necesario editar la vlan asociada al portal cautivo. Para ello es necesario acceder al equipo mediante SSH o consola y ejecutar los siguientes comandos indicando el nombre de la vlan correspondiente: 

Code Block
languagecpp
config system interface
	edit <name>
		set security-mac-auth-bypass enable
	next
end
Info

-La validación a través de la dirección MAC de los dispositivos o MAC Authentication únicamente puede ser activada si el equipamiento FortiGate presenta la versión FortiOS 6.0.0 o superior.

3.2 Configuración MAC Authentication

Para crear un SSID dedicado únicamente a la validación por MAC Authentication, crear una política de firewall para permitir el tráfico relacionado con la autenticación RADIUS desde la interfaz Fortilink a la interfaz de salida en el FortiGate

Code Block
languagecpp
config firewall policy
    edit 0
        set 

...

srcintf "

...

fortilink-interface"
        set 

...

dstintf "outbound-interface-to-RadiusSVR"
        set 

...

srcaddr "all"
        set 

...

dstaddr 

...

"all"
    

...

    set 

...

action 

...

accept
        set 

...

schedule "

...

always"
        set 

...

service "

...

RADIUS"
        set 

...

nat 

...

enable
    

...

next
end

Después, diseñar un servidor RADIUS y crear un grupo de usuarios:

Code Block
languagecpp
config user radius
      

...

edit "

...

Radius1"
        

...

 

...

 

...

set 

...

server “IP_Radius_1”
          set 

...

secret 

...

ENC <Secret>
     next
end

...

config user group
   

...

  edit "Radius-Grp1"
 

...

     

...

 

...

  set member "Radius1"
    

...

 

...

5-  NAS Identifier

Para que el Servidor Radius autorice e identifique las peticiones de autenticación provenientes del equipo FortiGate es necesario modificar el nombre del equipo para que envíe la MAC Address del mismo. Para ello ejecutar los siguientes comando modificando la dirección MAC por la que corresponda. 

Code Block
languagecpp
themeFadeToGrey
config system global
	set alias "18CF5EA1F8BD"
	set hostname "18CF5EA1F8BD"
end

   

6-  Listado MACs Autorizadas

Para que la validación de los usuarios funcione correctamente es necesario identificar los NAS que podrán realizar peticiones de autenticación al Servidor Radius. En este caso se debe añadir a la plataforma WIFI la dirección MAC del equipo que se ha configurado como hostname y alias anteriormente.

7-  Configuraciones adicionales

7.1  MAC Authentication (opcional)

Warning

La validación a través de la dirección MAC de los dispositivos o MAC Authentication únicamente puede ser activada si el equipamiento FortiGate presenta la versión FortiOS 6.0.0 o superior.

Para activar la autenticación por MAC es necesario editar la vlan asociada al portal cautivo. Para ello es necesario acceder al equipo mediante SSH o consola y ejecutar los siguientes comandos indicando el nombre de la vlan correspondiente: 

Code Block
languagecpp
themeFadeToGrey
config system interface
	edit <name>
		set security-mac-auth-bypass enable
	next
end

...

next
end

Después en el interfaz de configuración del equipo realizar la siguiente configuración:

  • Diríjase a User & Device > RADIUS Servers y edite o crear uno nuevo, añada un nombre y configurar la ip/

  • Name “IP_Radius_1” y el secret <secret>

Ahora ir a User & Device > User Groups y crear un nuevo grupo en el cual se añadirá el radius server creado anteriormente:

Image Added

Habrá que crear un Security Policy, para esto usando el CLI:

Code Block
config switch-controller security-policy 802-1X
    edit "802-1X-policy-default"
        set security-mode 802.1X-mac-based
        set user-group "Radius-Grp1"
        set mac-auth-bypass disable
        set open-auth disable
        set eap-passthru enable
        set guest-vlan disable
        set auth-fail-vlan disable
        set framevid-apply enable
        set radius-timeout-overwrite disable
    next
end

Despues en el interfaz del equipo diríjase a WiFi & Switch Controller > FortiSwitch Security Policie, use el default 802-1X-policy-default o crear un nuevo securit policy:

  • Configurar el RADIUS server group creado anteriormente.

  • Security mode: MAC-based

  • Click ok

Para aplicar la Security Policy a los puertos del equipo realizar la siguiente configuración:

Code Block
config switch-controller  managed-switch 
    edit S248EPTF1800XXXX 
        config ports
            edit "port6"      
                set port-security-policy "802-1X-policy-default"
            next
        end
    next
end

3.2 Configuración Access Profiles

A través de la plataforma Octopus es posible configurar una serie de atributos reply de los paquetesAccess-Accept, agrupados en los llamados Access Profile. Estos Access Profile, permite activar una serie de funcionalidades en el FortiGate. Aunque están disponibles los dictionarys radius más comunes y propietarios de FortiGate, a continuación se lista algunos considerados como más interesantes:

Atributo

Descripción

Format

Idle-Timeout

Tiempo máximo de inactividad. Si el usuario no transfiere ningún dato en la red durante este tiempo, la sesión terminará y tendrá que volver a autenticarse. Tiene que ser configurado en segundos.

Segundos

Acct-Interim-Interval

Define el intervalo de tiempo en el que el NAS manda la actualización del paquete accounting con toda la información de sesión del usuario. Tiene que ser configurado en segundos.

Segundos (Minimo 600 segundos)

Reply-Message

Útil para funciones de troubleshooting, ya que permite identificar elementos asociados de la plataforma Octopus, como un access profile, método de acceso , localización, …

Ejemplo de configuración de un Access Profile con los atributos anteriormente explicados:

Image Added

Info

Para mas información sobre como crear un Access Profile en Octopus Platform ir a Perfiles de Acceso