Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Using Apple Products with Captive Portal

    Scheduled Pinned Locked Moved Captive Portal
    12 Posts 5 Posters 7.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      laoistom
      last edited by

      Sounds simple. Apologies however for how stupid this may sound but I can't find a section in Captive Portal Config to Whitelist a website. Any hints on where I would find it.

      Free & Open Source Enthusiast

      Currently running :
      pfSense - Freenas - Owncloud - Zimbra Collaboration Server - Asterisk - Samba 4 AD

      1 Reply Last reply Reply Quote 0
      • L
        laoistom
        last edited by

        Ok folks I was just tired and stupid. I used the allowed hot name section to whitelist www.apple.com but no joys. Anyway I've another branch to this question. Is the captive portal feature in the latest release of pfsense a complete implementation?? Is there a captive portal 2.0 on the way that will better handle the likes of mobile devices and such.

        Free & Open Source Enthusiast

        Currently running :
        pfSense - Freenas - Owncloud - Zimbra Collaboration Server - Asterisk - Samba 4 AD

        1 Reply Last reply Reply Quote 0
        • D
          doktornotor Banned
          last edited by

          Sorry, but once again, Apple is simply retarded. And getting way more retarded lately, read about the CP "improvements" in iOS7.

          This is a completely wrong place to complain, plus not exactly something to be fixed in pfSense.

          1 Reply Last reply Reply Quote 0
          • L
            laoistom
            last edited by

            Ok point taken. Bitten fruit are poxy at best.

            Explain to me then when Alcatels captive portal in the same network as my newly added pfsense box allows all traffic from all apps.

            It's probably some firewall rule that the I'd not visible to is. Regardless it needs sorting.

            Free & Open Source Enthusiast

            Currently running :
            pfSense - Freenas - Owncloud - Zimbra Collaboration Server - Asterisk - Samba 4 AD

            1 Reply Last reply Reply Quote 0
            • ?
              Guest
              last edited by

              people who apply the "retarded" label to a corporation seem… retarded.

              1 Reply Last reply Reply Quote 0
              • D
                deltix
                last edited by

                There is a workaround for Apple "improvements".

                After googling and reading some forums I came across this

                http://forum.daviddarts.com/read.php?9,8879,8910#msg-8910

                https://github.com/PirateBox-Dev/PirateBoxScripts_Webserver/blob/stable/piratebox/piratebox/www/library/test/success.html

                I don't have Apple product on hand, but I changed Firefox useragent to emulate it and got it working.

                What I did is that I inserted right below

                expire.url = (
                				"" => "access 50 hours",	
                        )
                
                EOD;
                

                the following code into /etc/inc/system/inc starting at line 1121

                $lighty_config .= "\$HTTP[\"useragent\"] =~ \"CaptiveNetworkSupport\" {\n";
                $lighty_config .= "server.document-root =  \"/usr/local/www/library/test/\"\n";
                $lighty_config .= "index-file.names        = ( \"success.html\" )\n";
                $lighty_config .= "dir-listing.activate    = \"disable\"\n";
                $lighty_config .= "server.error-handler-404 = \"/success.html\"\n";
                $lighty_config .= "}\n";
                

                This is not maybe 100% correct place and code can be more elegant, but I'm not PHP coder and this is the only way I was able to get it working.

                Also, you have to create /usr/local/www/library/test/success.html

                
                <title>Success</title>
                
                Success
                
                

                When CP enabled, I would get regular CP authentication page if I use default useragent. When I change useragent to CaptiveNetworkSupport I would get success.html page.

                Can somebody look into this solution, test it, fix code and maybe if that turns to be ok submit it as bug or feature. As I said, I'm not coder.

                1 Reply Last reply Reply Quote 0
                • GertjanG
                  Gertjan
                  last edited by

                  Strange.

                  Running a hotel. See many devices - also the "fruit" related. I even use an iDevice to the test portal - and all AP's ….
                  I never had any problems, this one, 2.1.2-RELEASE or even the older ones (1.x.x series).
                  I just checked, and I have NO url's like www.apple.com white listed.
                  Please note that iOS checks if it has a "Internet connexion" by hittin a site and it isn't always "www.apple.com" that's being used (it was before). Other urls are also used tested.

                  So, I conclude that there must be another reasons if iDevices wont take the portal as any other WiFi device.

                  Btw: the portal interface was always present in pFSense, as pfSense is derived from M0n0Wall, several years ago.

                  No "help me" PM's please. Use the forum, the community will thank you.
                  Edit : and where are the logs ??

                  1 Reply Last reply Reply Quote 0
                  • D
                    deltix
                    last edited by

                    @deltix:

                    There is a workaround for Apple "improvements".

                    After googling and reading some forums I came across this

                    http://forum.daviddarts.com/read.php?9,8879,8910#msg-8910

                    https://github.com/PirateBox-Dev/PirateBoxScripts_Webserver/blob/stable/piratebox/piratebox/www/library/test/success.html

                    I don't have Apple product on hand, but I changed Firefox useragent to emulate it and got it working.

                    What I did is that I inserted right below

                    expire.url = (
                    				"" => "access 50 hours",	
                            )
                    
                    EOD;
                    

                    the following code into /etc/inc/system/inc starting at line 1121

                    $lighty_config .= "\$HTTP[\"useragent\"] =~ \"CaptiveNetworkSupport\" {\n";
                    $lighty_config .= "server.document-root =  \"/usr/local/www/library/test/\"\n";
                    $lighty_config .= "index-file.names        = ( \"success.html\" )\n";
                    $lighty_config .= "dir-listing.activate    = \"disable\"\n";
                    $lighty_config .= "server.error-handler-404 = \"/success.html\"\n";
                    $lighty_config .= "}\n";
                    

                    This is not maybe 100% correct place and code can be more elegant, but I'm not PHP coder and this is the only way I was able to get it working.

                    Also, you have to create /usr/local/www/library/test/success.html

                    
                    <title>Success</title>
                    
                    Success
                    
                    

                    When CP enabled, I would get regular CP authentication page if I use default useragent. When I change useragent to CaptiveNetworkSupport I would get success.html page.

                    Can somebody look into this solution, test it, fix code and maybe if that turns to be ok submit it as bug or feature. As I said, I'm not coder.

                    This is cleaner version. I forced myself to read through some stuff about PHP.

                    Replace this

                    	$lighty_config .= << <eod<br>## error-handler for status 404
                    #server.error-handler-404   = "/error-handler.html"
                    #server.error-handler-404   = "/error-handler.php"
                    
                    ## to help the rc.scripts
                    server.pid-file            = "{$g['varrun_path']}/{$pid_file}"
                    
                    ## virtual directory listings
                    server.dir-listing         = "disable"
                    
                    ## enable debugging
                    debug.log-request-header   = "disable"
                    debug.log-response-header  = "disable"
                    debug.log-request-handling = "disable"
                    debug.log-file-not-found   = "disable"
                    
                    # gzip compression
                    compress.cache-dir = "{$g['tmp_path']}/lighttpdcompress/"
                    compress.filetype  = ("text/plain","text/css", "text/xml", "text/javascript" )
                    
                    {$server_upload_dirs}
                    
                    {$server_max_request_size}
                    
                    {$fastcgi_config}
                    
                    {$cgi_config}
                    
                    {$captive_portal_mod_evasive}
                    
                    expire.url = (
                    				"" => "access 50 hours",	
                            )
                    
                    EOD;</eod<br> 
                    

                    with this

                    
                    	$lighty_config .= << <eod<br>## error-handler for status 404
                    #server.error-handler-404   = "/error-handler.html"
                    #server.error-handler-404   = "/error-handler.php"
                    
                    ## to help the rc.scripts
                    server.pid-file            = "{$g['varrun_path']}/{$pid_file}"
                    
                    ## virtual directory listings
                    server.dir-listing         = "disable"
                    
                    ## enable debugging
                    debug.log-request-header   = "disable"
                    debug.log-response-header  = "disable"
                    debug.log-request-handling = "disable"
                    debug.log-file-not-found   = "disable"
                    
                    # gzip compression
                    compress.cache-dir = "{$g['tmp_path']}/lighttpdcompress/"
                    compress.filetype  = ("text/plain","text/css", "text/xml", "text/javascript" )
                    
                    {$server_upload_dirs}
                    
                    {$server_max_request_size}
                    
                    {$fastcgi_config}
                    
                    {$cgi_config}
                    
                    {$captive_portal_mod_evasive}
                    
                    expire.url = (
                    				"" => "access 50 hours",	
                            )
                    
                    \$HTTP["useragent"] =~ "CaptiveNetworkSupport" {
                    server.document-root =  "/usr/local/www/library/test/"
                    index-file.names        = ( "success.html" )
                    dir-listing.activate    = "disable"
                    server.error-handler-404 = "/success.html"
                    }
                    
                    EOD;</eod<br> 
                    
                    1 Reply Last reply Reply Quote 0
                    • L
                      laoistom
                      last edited by

                      I've tested the solution above and while it works for a success page redirection it doesn't work for allowing the likes of Facebook, Youtube or twitter apps on iOS devices. Looks like i'll have to wait for an apple "update" to hopefully do something that fixes this.

                      Cheers for the help guys
                      TQ

                      Free & Open Source Enthusiast

                      Currently running :
                      pfSense - Freenas - Owncloud - Zimbra Collaboration Server - Asterisk - Samba 4 AD

                      1 Reply Last reply Reply Quote 0
                      • D
                        deltix
                        last edited by

                        @laoistom:

                        I've tested the solution above and while it works for a success page redirection it doesn't work for allowing the likes of Facebook, Youtube or twitter apps on iOS devices. Looks like i'll have to wait for an apple "update" to hopefully do something that fixes this.

                        Cheers for the help guys
                        TQ

                        This solution is not intended to fix your Facebook problem. It is workaround for Apple's "CP improvements" as described on many other forums as well as here before. Maybe I hijacked your thread with this, sorry. I don't use/own Apple products, so I cannot test anything, but if you do some packet capture and post it here maybe we can come up with some solution.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.