Hi Ian Regarding DNS, domain resolves to your public address? is that correct? And that is the same domain as captive portal?
On your topology, port 80/443 redirected to “PF redirection URL”? Enrique El mar, 24 ene 2023 a las 8:19, James Andrewartha via PacketFence-users (<packetfence-users@lists.sourceforge.net>) escribió: > > Hi Ian, > > So looking through the registration PCAP, one thing I notice is that there's > three requests for http://captive.apple.com/hotspot-detect.html before it > tries to follow the redirect that page returns. Also your DNS is returning > the same IP (66.70.255.147) for captive.apple.com as for pf4.dotto-one.com. > Are you doing DNS enforcement on the portal? Then on the default network, you > return 104.244.196.73 for pf4.dotto-one.com. I don't think that's wrong per > se but just wanted to be clear. > > I see some accesses to https://pf4.dotto-one.com/rfc7710 after it joins the > default network, can you see what content is returned? Since it tries that > first before going to the captive portal URL on the default network. Short of > that, could you remove option 114 and 160 from both registration and default > network DHCP scopes? My feeling is that it's holding onto the URL from the > registration network and re-using that on the default network instead of > looking at the cappport:unrestricted value returned on the default network. > > So was the iPhone not re-DHCPing problem solved by very short lease times on > the registration network? > > Thanks, > > -- > James Andrewartha > Network & Projects Engineer > Christ Church Grammar School > Claremont, Western Australia > Ph. (08) 9442 1757 > Mob. 0424 160 877 > > On 24/1/23 06:53, Ian MacDonald via PacketFence-users wrote: > > Okay, > > We have, again, scoped down our issue further to iPhones not properly > detecting they are no longer behind the Packetfence Captive Portal. I am > going to frame it up once again to see if anyone has any new insights. > > Problem: The iPhone is holding on to the captive portal page it learns on > the Registration network, and when it gets to the Default network, it fails > at detecting it is on the Internet, and it returns to the Captive Portal page > and traps the user there in the iphone's Log In interface. > > If we block the iPhone from the Packetfence portal listener, after it is on > the Default network, it works and believes it is no longer Captive. > Unfortunately this also blocks registration activation links sent via Email, > so it doesn't quite qualify as a workaround unless we can separate the > hostname used for Email Activation from the hostname used for the Captive > Portal and block the latter with DNS overrides on our Default network. > > It seems like the correct configuration would have Packetfence instruct the > iPhones to not use the Captive Portal URL reachability as network detection, > and possibly we have no control over this OR possibly it can be done somehow > through the Captive Portal API TBD. > > Help on how to do either of these things in Packetfence config appreciated. > > Here is our lab v12.1 setup. > > > As we moved through our testing we have made a few changes, none of which > seem to impact the expected outcome. We have enabled proxy interception, > changed our network detection to a local IP, modified the detection delay > (30s) so that it starts after the fencing delay (25s), and allow 60s for the > re-evaluation on the portal page progress bar. We disabled CSP headers and > secure_redirect in hopes of providing more information during packet > captures. Passthrough during fencing is now disabled as well to keep traffic > to a minimum. Our registration DHCP lease time was shortened to 15 seconds. > > [fencing] > wait_for_redirect=25 > interception_proxy=enabled > [captive_portal] > network_detection_ip=104.244.196.157 > network_detection_initial_delay=30s > network_redirect_delay=60s > request_timeout=5 > secure_redirect=disabled > rate_limiting=disabled > [advanced] > portal_csp_security_headers=disabled > > [10.2.2.0] > dhcp_default_lease_time=15 > dhcp_max_lease_time=15 > > The iPhone in this latest scenario is an iPhone 7 Pro running IOS 15. > Registration has no issues, and VLAN switching occurs as expected at 25s on > the "Enabling network access" portal page, placing the iPhone onto the > Default network. > > > > When the iPhone is disconnected from the Registration network, the Log In > page closes, and the wifi settings appear briefly. > > > > The iPhone then connects to the Default network, however it decides it must > be still behind the packetfence captive portal, as it reloads the Portal > Login page again, and the user is trapped, and can not escape except to hit > Cancel and select "Use without Internet". > > > > The iPhone is holding on to the captive portal page it learned on the > Registration network, and when it gets to the Default network it fails at > detecting it is on the Internet, it returns to the Captive Portal page, and > is effectively trapped there. If it can see the Packetfence listener, it > believes it is still captured. > > With this in mind, we decided to simply block traffic from the Default > network to the Portal Page with a simple firewall rule to drop traffic to the > packetfence public IP. > > And the iPhone detects Internet. That was it. The detection was not based > on DHCP option 114, or reaching some other site, or the > network-access-detection.gif It is based on reaching the Captive Portal URL, > which is responding, as it is the same hostname where we expect our users to > go for Email Activation Links. > > The problem with blocking the Portal listener on the Default network is that > the user can not complete the email registration, as the same portal listener > that serves up the Captive Portal service up the Registration Activation Link > (/activation/email.html). > > It suggests we have to get the iPhone to ignore the Captive Portal URL it > learned from the Registration VLAN? Is this a bug in implementation of the > captive portal API usage in iPhones? > > Our Default network DHCP sees Option 114 requested, and provides the > unrestricted value (shown below). Maybe somebody can confirm the format and > content is correct so we can validate our assumption that the iPhone is just > ignoring it. We also pass the same value in Option 160 just in case it ever > is requested by an old client. > > > > I have collected pCaps from the Registration VLAN (Interface 10.2.2.2 on our > PF server) and from the Default Network (Interface 10.2.4.1) as well as the > haproxy_portal.log and packetfence.log from the same time period. Nothing > removed from those time periods, as there were no other devices on those > networks. I will leave them up whilst we are working on this issue for > anyone to inspect with Wireshark. > > https://drive.google.com/drive/folders/1NFuDqJIkPrsMWs_DXqIeY0l_TTLYkPpE?usp=share_link > > I suppose a workaround could be to change the [% activation_uri %] to a DNS > hostname alias that is different than the captive portal hostname and > override the Default Network DNS so that the captive portal URL goes nowhere > (equivalent to our firewall block), allowing the users to still hit the > activation link and block iPhones from getting trapped on the portal page at > the same time. > > A follow-up question is does anyone know how to specify the activation URL as > a configuration parameter? We couldn't find it, as it seems generated in the > templates. > > It seems we are just down to configuration here; Getting close. > > > _______________________________________________ > PacketFence-users mailing list > PacketFence-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/packetfence-users > > > _______________________________________________ > PacketFence-users mailing list > PacketFence-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/packetfence-users -- _______________________________________________ PacketFence-users mailing list PacketFence-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/packetfence-users