Hello Roo,
probably related to that:
https://github.com/inverse-inc/packetfence/commit/ac196bd5f072e1fd8cfec0cc2a098c26824dfba4#diff-db0dd3a67b96e7fb44359d45258c282c
I will make a try.
Regards
Fabrice
Le 2018-06-25 à 15:48, Roo a écrit :
So I've got this figured out, but found a bit of a what I believe is a
bug through the process that took me a bit to work through...
Durand, there is a code update at the end of this long email that made
this work.. not sure if it's a bug or not.
Just commentary so people understand - the process is clients hit the
SSID and get dhcp etc, then the Fortigate/AP redirects (with a magic
token) to the external captive portal (Packetfence). Once
authenticated by packetfence, packetfence returns some client side
javascript (read - it executes in your browser)to post back to the
fortigate the Username/Password/Magic Token, then the FortiGate/AP
controller makes a Radius request to Packetfence with the mac address
for username/password, which PF should now accept, and all is well.
http://cookbook.fortinet.com/using-an-external-captive-portal-for-wifi-security/
In this example (going from memory so could hit something wrong) -
Fortigate Firewall/AP controller is 10.1.1.1, Packetfence is 10.1.1.2,
Fortiap's are on the subnet 10.1.2.0/24 <http://10.1.2.0/24>
Packetfence Setup:
1) setup packetfence with a Portal interface (either add the service
on mgmt - what I did or I'm sure it'll work via separate interface).
2) Add a switch for your Fortinet AP (I used subnet for many AP's) as
type: Fortinet::FortiGate, enable Portal enforcement, set your
"Controller IP" also to your Fortigate IP you will be doing radius from.
3) Add a switch for your Fortinet Firewall/APControllers as type:
Fortinet::FortiGate, enable Portal enforcement
Example:
[root@PacketFence-ZEN logs]# cat ../conf/switches.conf
[10.1.1.1]
description=Controller
type=Fortinet::FortiGate
radiusSecret= ubersecretencryptionkey
ExternalPortalEnforcement=Y
[10.1.2.0/24 <http://10.1.2.0/24>]
controllerIp=10.1.1.1
description= FortiAP's
type=Fortinet::FortiGate
cliAccess=Y
ExternalPortalEnforcement=Y
4) I added a test user to packetfence for username/pass authentication
in the captive Portal
Fortinet setup:
5) Setup Fortigate RADIUS Definition:
config user radius
edit "packetfencetest"
set server "10.1.1.2"
set secret ENC ubersecretencryptionkey
set nas-ip 10.210.1.1
next
end
Note - I had an issue of the Radius request not setting nas-ip which
sent radius requests from 0.0.0.0 which took some debugging to figure
out - just FYI.
6) Create the User group to associate Radius to the SSID:
config user group
edit "Captive_Guest_wifi"
set member "packetfencetest"
next
end
7) Setup an Interface for wifi subnet - I use a 3rd party dhcp server
but relay also to packetfence so it can discover they "nodes".
Config system interface
edit "Guesttest"
set vdom "root"
set dhcp-relay-service enable
set ip 192.168.5.1 255.255.255.0
set allowaccess ping
set type vap-switch
set device-identification enable
set role lan
set dhcp-relay-ip "3rd party dhcp server" "10.1.1.2"
next
8) Setup Fortigate SSID - set the external-web auth URL (without
http/https) to the packetfence IP/DNS name, but append
/Fortinet::FortiGate - this tells packetfence to utilize that
authentication method (I was missing this at the start of my setup
which caused packetfence to think it was an 802.1x request and not
external portal).
config wireless-controller vap
edit "Guesttest"
set vdom "root"
set ssid "Guesttest"
set security captive-portal
set selected-usergroups "Captive_Guest_wifi"
set security-exempt-list "Guesttest-exempt-list"
set intra-vap-privacy enable
set schedule "always"
set external-web "10.1.1.2/Fortinet::FortiGate
<http://10.1.1.2/Fortinet::FortiGate>"
next
end
9) Setup your firewall policy for this interface for whatever access
you want, but precede it with the ability to access packetfence over
80/443 without authenticating (captive-portal-exempt)
config firewall policy
edit -1
set name "Packetfence registration"
set uuid 02365b36-73fb-51e8-c374-4048538de983
set srcintf "Guesttest"
set dstintf "any"
set srcaddr "all"
set dstaddr "Object for Packetfence"
set action accept
set schedule "always"
set service "HTTP" "HTTPS"
set captive-portal-exempt enable
next
edit -1
set name "Internet for Guests Dynamic IP Cal"
set srcintf " Guesttest"
set dstintf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set utm-status enable
set webfilter-profile "Guest_WebFilter"
set dnsfilter-profile "Guest_DNS"
set application-list "Guest_AppCtrl"
set profile-protocol-options "default"
set traffic-shaper "Guest_Ts"
set traffic-shaper-reverse "Guest_Ts"
set nat enable
next
end
*********************
I had a browser side issue in multiple browsers that the client side
JS wasn't executing due to the content-security-policy delivered in
the header disallowing inline JS with the post back to the firewall to
run... so the request never made it back to the fortigate for the
second half of the process.I found the issue in console logs of chrome
I fixed it via altering the source - *Durand*, if you deem it proper
(I know very little about Content-security-policy), please update.
In /usr/local/pf/lib/captiveportal.pm <http://captiveportal.pm>
Changed from:
$c->response->header('Content-Security-Policy' => "default-src 'none';
script-src 'self'; connect-src 'self'; img-src 'self'
http://$captive_portal_network_detection_ip/; style-src 'self';
font-src 'self';");
To:
$c->response->header('Content-Security-Policy' => "default-src 'none';
script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self';
img-src 'self' http://$captive_portal_network_detection_ip/; style-src
'self' 'unsafe-inline'; font-src 'self';");
I believe all that was required was the script-src -
unsafe-inline/unsafe-eval but saw some style errors so added style-src
unsafe-inline also.
Now I'm off to setup COA/deauthentication.. and then try out an idea
for distributed architecture (Will start a new email to discuss).
Cheers.
On Fri, Jun 22, 2018 at 7:04 PM, Durand fabrice <[email protected]
<mailto:[email protected]>> wrote:
Packetfence doesn't detect that it's an external portal
authentication, the device is suppose to hit the portal with an
url like that:
https://<FGT_IP>/fgtauth?magic=session_id&username=<username>&password=<password>
Can is see httpd.portal.access ?
Regards
Fabrice
Le 2018-06-22 à 10:10, Roo a écrit :
Yes, External portal is enabled..
[root@PacketFence-ZEN logs]# cat ../conf/switches.conf
#
# Copyright (C) 2005-2018 Inverse inc.
#
# See the enclosed file COPYING for license information (GPL).
# If you did not receive this file, see
# http://www.fsf.org/licensing/licenses/gpl.html
<http://www.fsf.org/licensing/licenses/gpl.html>
[default]
type=Fortinet::FortiGate
useCoA=N
[10.210.31.1]
description=calgaryforti
VlanMap=N
registrationUrl=http://myv1it-pfn.DOMAIN.com/Fortinet::FortiGate
<http://myv1it-pfn.DOMAIN.com/Fortinet::FortiGate>
macDetectionRole=macDetection
isolationRole=isolation
defaultRole=Authorize_any
registrationRole=Pre-Auth-For-WebRedirect
guestRole=Authorize_any
UrlMap=Y
useCoA=Y
ExternalPortalEnforcement=Y
Jun 22 14:01:34 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:unknown] Instantiate profile
CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:34 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:34 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:35 PacketFence-ZEN pfqueue: pfqueue(19675) INFO:
[mac:unknown] Device Mac OS X is a Mac OS X or macOS
(pf::fingerbank::__ANON__)
Jun 22 14:01:35 PacketFence-ZEN pfqueue: pfqueue(19667) INFO:
[mac:unknown] Device Mac OS X is a Mac OS X or macOS
(pf::fingerbank::__ANON__)
Jun 22 14:01:42 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:42 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] Replacing
destination URL http://myv1it-pfn01.DOMAIN.com/?login
<http://myv1it-pfn01.DOMAIN.com/?login> since it points to the
captive portal
(captiveportal::PacketFence::DynamicRouting::Application::process_destination_url)
Jun 22 14:01:42 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:42 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Replacing
destination URL http://myv1it-pfn01.DOMAIN.com/?login
<http://myv1it-pfn01.DOMAIN.com/?login> since it points to the
captive portal
(captiveportal::PacketFence::DynamicRouting::Application::process_destination_url)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Replacing
destination URL http://myv1it-pfn01.DOMAIN.com/?login
<http://myv1it-pfn01.DOMAIN.com/?login> since it points to the
captive portal
(captiveportal::PacketFence::DynamicRouting::Application::process_destination_url)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) WARN: [mac:78:31:c1:c1:b5:62] Calling match
with empty/invalid rule class. Defaulting to 'authentication'
(pf::authentication::match)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Using sources
null for matching (pf::authentication::match)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Matched rule
(catchall) in source null, returning actions.
(pf::Authentication::Source::match_rule)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Matched rule
(catchall) in source null, returning actions.
(pf::Authentication::Source::match)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) WARN: [mac:78:31:c1:c1:b5:62] Calling match
with empty/invalid rule class. Defaulting to 'authentication'
(pf::authentication::match)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Using sources
null for matching (pf::authentication::match)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Matched rule
(catchall) in source null, returning actions.
(pf::Authentication::Source::match_rule)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Matched rule
(catchall) in source null, returning actions.
(pf::Authentication::Source::match)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) WARN: [mac:78:31:c1:c1:b5:62] Calling match
with empty/invalid rule class. Defaulting to 'authentication'
(pf::authentication::match)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Using sources
null for matching (pf::authentication::match)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) WARN: [mac:78:31:c1:c1:b5:62] Calling match
with empty/invalid rule class. Defaulting to 'authentication'
(pf::authentication::match)
Jun 22 14:01:48 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Using sources
null for matching (pf::authentication::match)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Replacing
destination URL http://myv1it-pfn01.DOMAIN.com/?login
<http://myv1it-pfn01.DOMAIN.com/?login> since it points to the
captive portal
(captiveportal::PacketFence::DynamicRouting::Application::process_destination_url)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] No provisioner
found for 78:31:c1:c1:b5:62. Continuing.
(captiveportal::PacketFence::DynamicRouting::Module::Provisioning::execute_child)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] violation
1300003 force-closed for 78:31:c1:c1:b5:62
(pf::violation::violation_force_close)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Replacing
destination URL http://myv1it-pfn01.DOMAIN.com/?login
<http://myv1it-pfn01.DOMAIN.com/?login> since it points to the
captive portal
(captiveportal::PacketFence::DynamicRouting::Application::process_destination_url)
Jun 22 14:01:49 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Releasing
device
(captiveportal::PacketFence::DynamicRouting::Module::Root::release)
Jun 22 14:01:50 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:50 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:50 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] re-evaluating
access (manage_register called) (pf::enforcement::reevaluate_access)
Jun 22 14:01:50 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] VLAN
reassignment is forced. (pf::enforcement::_should_we_reassign_vlan)
Jun 22 14:01:50 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19343) INFO: [mac:78:31:c1:c1:b5:62] switch port is
(10.210.31.1) ifIndex external connection type: WiFi 802.1X
(pf::enforcement::_vlan_reevaluation)
Jun 22 14:01:51 PacketFence-ZEN pfqueue: pfqueue(20344) INFO:
[mac:78:31:c1:c1:b5:62] [78:31:c1:c1:b5:62] DesAssociating mac on
switch (10.210.31.1) (pf::api::desAssociate)
Jun 22 14:01:51 PacketFence-ZEN pfqueue: pfqueue(20344) INFO:
[mac:78:31:c1:c1:b5:62] deauthenticating
(pf::Switch::radiusDisconnect)
Jun 22 14:01:51 PacketFence-ZEN pfqueue: pfqueue(20344) WARN:
[mac:78:31:c1:c1:b5:62] Unable to perform RADIUS
Disconnect-Request: No answer from 10.210.31.1 on port 3799 at
/usr/local/pf/lib/pf/util/radius.pm <http://radius.pm> line 144.
(pf::Switch::catch {...} )
Jun 22 14:01:59 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:01:59 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:01:59 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Reevaluating
access of device.
(captiveportal::PacketFence::DynamicRouting::Module::Root::unknown_state)
Jun 22 14:01:59 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] re-evaluating
access (manage_register called) (pf::enforcement::reevaluate_access)
Jun 22 14:01:59 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] VLAN
reassignment is forced. (pf::enforcement::_should_we_reassign_vlan)
Jun 22 14:01:59 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] switch port is
(10.210.31.1) ifIndex external connection type: WiFi 802.1X
(pf::enforcement::_vlan_reevaluation)
Jun 22 14:02:00 PacketFence-ZEN pfqueue: pfqueue(20345) INFO:
[mac:78:31:c1:c1:b5:62] [78:31:c1:c1:b5:62] DesAssociating mac on
switch (10.210.31.1) (pf::api::desAssociate)
Jun 22 14:02:00 PacketFence-ZEN pfqueue: pfqueue(20345) INFO:
[mac:78:31:c1:c1:b5:62] deauthenticating
(pf::Switch::radiusDisconnect)
Jun 22 14:02:00 PacketFence-ZEN pfqueue: pfqueue(20345) WARN:
[mac:78:31:c1:c1:b5:62] Unable to perform RADIUS
Disconnect-Request: No answer from 10.210.31.1 on port 3799 at
/usr/local/pf/lib/pf/util/radius.pm <http://radius.pm> line 144.
(pf::Switch::catch {...} )
Jun 22 14:02:02 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:02:02 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:02:02 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] Reevaluating
access of device.
(captiveportal::PacketFence::DynamicRouting::Module::Root::unknown_state)
Jun 22 14:02:02 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] re-evaluating
access (manage_register called) (pf::enforcement::reevaluate_access)
Jun 22 14:02:02 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] VLAN
reassignment is forced. (pf::enforcement::_should_we_reassign_vlan)
Jun 22 14:02:02 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] switch port is
(10.210.31.1) ifIndex external connection type: WiFi 802.1X
(pf::enforcement::_vlan_reevaluation)
Jun 22 14:02:03 PacketFence-ZEN pfqueue: pfqueue(20351) INFO:
[mac:78:31:c1:c1:b5:62] [78:31:c1:c1:b5:62] DesAssociating mac on
switch (10.210.31.1) (pf::api::desAssociate)
Jun 22 14:02:03 PacketFence-ZEN pfqueue: pfqueue(20351) INFO:
[mac:78:31:c1:c1:b5:62] deauthenticating
(pf::Switch::radiusDisconnect)
Jun 22 14:02:03 PacketFence-ZEN pfqueue: pfqueue(20351) WARN:
[mac:78:31:c1:c1:b5:62] Unable to perform RADIUS
Disconnect-Request: No answer from 10.210.31.1 on port 3799 at
/usr/local/pf/lib/pf/util/radius.pm <http://radius.pm> line 144.
(pf::Switch::catch {...} )
Jun 22 14:02:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:02:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:02:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] Reevaluating
access of device.
(captiveportal::PacketFence::DynamicRouting::Module::Root::unknown_state)
Jun 22 14:02:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] re-evaluating
access (manage_register called) (pf::enforcement::reevaluate_access)
Jun 22 14:02:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] VLAN
reassignment is forced. (pf::enforcement::_should_we_reassign_vlan)
Jun 22 14:02:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] switch port is
(10.210.31.1) ifIndex external connection type: WiFi 802.1X
(pf::enforcement::_vlan_reevaluation)
Jun 22 14:02:05 PacketFence-ZEN pfqueue: pfqueue(20352) INFO:
[mac:78:31:c1:c1:b5:62] [78:31:c1:c1:b5:62] DesAssociating mac on
switch (10.210.31.1) (pf::api::desAssociate)
Jun 22 14:02:05 PacketFence-ZEN pfqueue: pfqueue(20352) INFO:
[mac:78:31:c1:c1:b5:62] deauthenticating
(pf::Switch::radiusDisconnect)
Jun 22 14:02:05 PacketFence-ZEN pfqueue: pfqueue(20352) WARN:
[mac:78:31:c1:c1:b5:62] Unable to perform RADIUS
Disconnect-Request: No answer from 10.210.31.1 on port 3799 at
/usr/local/pf/lib/pf/util/radius.pm <http://radius.pm> line 144.
(pf::Switch::catch {...} )
Jun 22 14:02:05 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:02:05 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:02:05 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Reevaluating
access of device.
(captiveportal::PacketFence::DynamicRouting::Module::Root::unknown_state)
Jun 22 14:02:05 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] re-evaluating
access (manage_register called) (pf::enforcement::reevaluate_access)
Jun 22 14:02:05 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] VLAN
reassignment is forced. (pf::enforcement::_should_we_reassign_vlan)
Jun 22 14:02:05 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] switch port is
(10.210.31.1) ifIndex external connection type: WiFi 802.1X
(pf::enforcement::_vlan_reevaluation)
Jun 22 14:02:06 PacketFence-ZEN pfqueue: pfqueue(20353) INFO:
[mac:78:31:c1:c1:b5:62] [78:31:c1:c1:b5:62] DesAssociating mac on
switch (10.210.31.1) (pf::api::desAssociate)
Jun 22 14:02:06 PacketFence-ZEN pfqueue: pfqueue(20353) INFO:
[mac:78:31:c1:c1:b5:62] deauthenticating
(pf::Switch::radiusDisconnect)
Jun 22 14:02:06 PacketFence-ZEN pfqueue: pfqueue(20353) WARN:
[mac:78:31:c1:c1:b5:62] Unable to perform RADIUS
Disconnect-Request: No answer from 10.210.31.1 on port 3799 at
/usr/local/pf/lib/pf/util/radius.pm <http://radius.pm> line 144.
(pf::Switch::catch {...} )
Jun 22 14:02:08 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:02:08 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:02:08 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] Reevaluating
access of device.
(captiveportal::PacketFence::DynamicRouting::Module::Root::unknown_state)
Jun 22 14:02:08 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] re-evaluating
access (manage_register called) (pf::enforcement::reevaluate_access)
Jun 22 14:02:08 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] VLAN
reassignment is forced. (pf::enforcement::_should_we_reassign_vlan)
Jun 22 14:02:08 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19480) INFO: [mac:78:31:c1:c1:b5:62] switch port is
(10.210.31.1) ifIndex external connection type: WiFi 802.1X
(pf::enforcement::_vlan_reevaluation)
Jun 22 14:02:09 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile CaptiveWifi (pf::Connection::ProfileFactory::_from_profile)
Jun 22 14:02:09 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] User default
has authenticated on the portal. (Class::MOP::Class:::after)
Jun 22 14:02:09 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] Reevaluating
access of device.
(captiveportal::PacketFence::DynamicRouting::Module::Root::unknown_state)
Jun 22 14:02:09 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] re-evaluating
access (manage_register called) (pf::enforcement::reevaluate_access)
Jun 22 14:02:09 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] VLAN
reassignment is forced. (pf::enforcement::_should_we_reassign_vlan)
Jun 22 14:02:09 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(19972) INFO: [mac:78:31:c1:c1:b5:62] switch port is
(10.210.31.1) ifIndex external connection type: WiFi 802.1X
(pf::enforcement::_vlan_reevaluation)
Jun 22 14:02:10 PacketFence-ZEN pfqueue: pfqueue(20354) INFO:
[mac:78:31:c1:c1:b5:62] [78:31:c1:c1:b5:62] DesAssociating mac on
switch (10.210.31.1) (pf::api::desAssociate)
Just continues looping trying a vlan change.
I may blow away my ZEN install and start from scratch... but no
guide for Fortinet::FortiGate use.
On Thu, Jun 21, 2018 at 6:48 PM, Durand fabrice via
PacketFence-users <[email protected]
<mailto:[email protected]>> wrote:
hello Roo,
did you enabled external captive portal in the switch config
? (can i see switches.conf ?)
Can i see the whole registration process (packetfence.log) ?
Regards
Fabrice
Le 2018-06-21 à 18:51, Roo via PacketFence-users a écrit :
Hello, newer to Packetfence. I've been able to setup a few
things (802.1x wired/wireless, AD integration etc.)
Struggling with Captive Portal on Fortigate external captive
portal ie:
http://cookbook.fortinet.com/using-an-external-captive-portal-for-wifi-security/
<http://cookbook.fortinet.com/using-an-external-captive-portal-for-wifi-security/>
I've got fortigate redirecting to Packetfence, and packet
fence serving the portal, successfully authenticating to the
portal, but it's not calling the Fortinet::FortiGate module
to post back to the fortigate.. It's treating it like a VLAN
reassignment instead of using the code for the switch type.
I've defined the switch as type Fortinet::FortiGate, tried
to force it with switch Filter Engines ala the example:
[login]
filter = params.login
operator = defined
[post]
filter = params.post
operator = defined
[magic]
filter = params.magic
operator = defined
[usermac]
filter = params.usermac
operator = defined
[apmac]
filter = params.apmac
operator = defined
[apip]
filter = params.apip
operator = defined
[userip]
filter = params.userip
operator = defined
[1:login&post&magic&usermac&apmac&apip&userip]
scope = external_portal
switch = Fortinet::FortiGate
Nothing seems to trigger the post back to the Fortigate.
un 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) INFO: [mac:78:31:c1:c1:b5:62] Instantiate
profile default (pf::Connection::ProfileFactory::_from_profile)
Jun 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) INFO: [mac:78:31:c1:c1:b5:62] Replacing
destination URL http://pfn01.DOMAIN.com/?login since it
points to the captive portal
(captiveportal::PacketFence::DynamicRouting::Application::process_destination_url)
Jun 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) ERROR: [mac:78:31:c1:c1:b5:62] Error
while communicating with the Fingerbank collector. 401
Unauthorized (pf::fingerbank::endpoint_attributes)
Jun 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) WARN: [mac:78:31:c1:c1:b5:62] Use of
uninitialized value in string ne at
/usr/local/pf/lib/captiveportal/PacketFence/DynamicRouting/Application.pm
line 134.
(captiveportal::PacketFence::DynamicRouting::Application::process_fingerbank)
Jun 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) ERROR: [mac:78:31:c1:c1:b5:62] Error
while communicating with the Fingerbank collector. 401
Unauthorized (pf::fingerbank::update_collector_endpoint_data)
Jun 21 22:27:04 PacketFence-ZEN pfqueue: pfqueue(3009)
ERROR: [mac:unknown] Error while communicating with the
Fingerbank collector. 401 Unauthorized
(pf::fingerbank::endpoint_attributes)
Jun 21 22:27:04 PacketFence-ZEN pfqueue: pfqueue(3009)
ERROR: [mac:unknown] Unable to fetch query arguments for
Fingerbank query. Aborting. (pf::fingerbank::process)
Jun 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) INFO: [mac:78:31:c1:c1:b5:62] Releasing
device
(captiveportal::PacketFence::DynamicRouting::Module::Root::release)
Jun 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) INFO: [mac:78:31:c1:c1:b5:62] User
default has authenticated on the portal.
(Class::MOP::Class:::after)
Jun 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) INFO: [mac:78:31:c1:c1:b5:62]
re-evaluating access (manage_register called)
(pf::enforcement::reevaluate_access)
Jun 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) INFO: [mac:78:31:c1:c1:b5:62] VLAN
reassignment is forced.
(pf::enforcement::_should_we_reassign_vlan)
Jun 21 22:27:04 PacketFence-ZEN packetfence_httpd.portal:
httpd.portal(3121) INFO: [mac:78:31:c1:c1:b5:62] switch port
is (10.210.31.1) ifIndex external connection type: WiFi
802.1X (pf::enforcement::_vlan_reevaluation)
Jun 21 22:27:05 PacketFence-ZEN pfqueue: pfqueue(4321) INFO:
[mac:78:31:c1:c1:b5:62] [78:31:c1:c1:b5:62] DesAssociating
mac on switch (10.210.31.1) (pf::api::desAssociate)
Jun 21 22:27:05 PacketFence-ZEN pfqueue: pfqueue(4321) INFO:
[mac:78:31:c1:c1:b5:62] deauthenticating
(pf::Switch::radiusDisconnect)
Jun 21 22:27:05 PacketFence-ZEN pfqueue: pfqueue(4321) WARN:
[mac:78:31:c1:c1:b5:62] Unable to perform RADIUS
Disconnect-Request: No answer from 10.210.31.1 on port 3799
at /usr/local/pf/lib/pf/util/radius.pm <http://radius.pm>
line 144. (pf::Switch::catch {...} )
Jun 21 22:
In my browser tools, I see Post url is set, magic value etc
that the fortigate send to the portal...
Also can't seem to get rid of those pesky fingerbank
errors.. don't think thats related, but possible I suppose.
Do you have an example of how to setup Fortigate external
captive authentication and packetfence? Other values I need
to configure? Sample for the Role by Web Auth URL?
Cheers.
Neil.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
PacketFence-users mailing list
[email protected]
<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/packetfence-users
<https://lists.sourceforge.net/lists/listinfo/packetfence-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
PacketFence-users mailing list
[email protected]
<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/packetfence-users
<https://lists.sourceforge.net/lists/listinfo/packetfence-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
PacketFence-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/packetfence-users