Captive Portal on External Server??



  • Hello Everyone!

    I want to put my captive portal pages i.e. splash, login form etc. on some external web server and when user tries to connect redirect them to that (login page on external server) instead of one hosted on pfsense itself. Is that possible??

    Thank you,

    Rahul



  • I expect its possible.

    What should happen if the external server is unavailable?

    Who does the authentication - pfSense or external server? If pfSense, how will you pass the login parameters back to pfSense securely? If external server, how will you pass the authentication result back to pfSense securely?

    What “problem” are you trying to solve by doing this? There might be simpler ways of achieving a “similar enough” outcome.



  • Hey,
    Sorry for my late reply.

    If external server is not available, it ll just not redirect anywhere… (I’ll manage redundant web servers for that ).
    authentication will be done by external stand alone radius server only. pfsense is to act as controller only & act upon attributes received from RADIUS server. login parameters can be passed over 443 (https://) or we can MD5 them if on 80(http://).

    What I’m trying to do is: we do have a panel for network operators to manage their respective users, and I want to offer them ability to customize login page for their users from within the same panel. That, i think, is not possible… when hosted on pfsense itself.

    Thank you,



  • This is one of a number of features missing from pfSense to make managing large numbers of servers easier! Imagine having to upload a new HTML file to 50 boxes and you see how tedious it might get.

    OP: has a feature request been submitted for this?



  • @miken32:

    This is one of a number of features missing from pfSense to make managing large numbers of servers easier!

    I believe there is an upcoming product called pfCenter that will take care of this.



  • I have the same problem.

    I’ve made a index.php that redirect to the external page. This external page has the login form (username/password), the problem is that I don’t know how to send the user values to the pfSense for make the authentication.

    Are there any way to implement this feature in pfSense 2.0? Is it possible?

    Thanks.



  • I came up with this to use an external splash page:

    1. Make sure to add the host where you’re going to host your page to Allowed Hostnames

    2. Use this code to redirect and pass the variables, (I only passed a few here that I needed, you can add more using the same method) the only downside is that if a user has JavaScript disabled in their browser they will have to click a button to load the page…

    Make you you replace “http://www.myserver.com/splashpage.php” with the URL you want to redirect to.

    
    <form action="http://www.myserver.com/splashpage.php" method="post" id="redirectform">
    
    Javascript is disabled, click to 
    </form>
    
    
    1. You’ll then be able to pull on the variables from $_POST on your new page.
      Example code for your external page:


  • I’m having some trouble with what you posted mdmogren. It redirects to the external portal just fine, but it doesn’t seem to want to pass the login information back to pfsense to complete the radius authentication. Am I missing something for radius? No matter what I input for the user/pass, when I click “login” it instantly redirects to the external portals domain followed by “/$PORTAL_ACTION$?auth_user=test&auth_pass=1234&accept=LOGIN”

    
    <form action="$PORTAL_ACTION$" align="center">
    
    ![](../../hotel.png)
    
    </form>
    
    

    I’m sure i’m missing something stupid. I’m just learning HTML/PHP. I can make everything work if I upload portal directly to pfsense, just not using the external portal which is what I need.

    Thanks in advance for any advice.



  • Hi!!

    Am also getting the same error while using external portal server for captive portal authentication. Please help if anyone get it resolved



  • try to put variables names within # instead of $ :

    “$PORTAL_ACTION$”  -> “#PORTAL_ACTION#”



  • Can someone tell me if this worked OR if we need to re open a topic to follow up this ?
    Meaning the use of Captive Port on External Server. Thanks !



  • @rahulmkhj:

    Hello Everyone!

    I want to put my captive portal pages i.e. splash, login form etc. on some external web server and when user tries to connect redirect them to that (login page on external server) instead of one hosted on pfsense itself. Is that possible??

    Thank you,

    Rahul

    First sry for my bad english

    I made time ago this…

    At server side (replace the ip of external server)

    
    <form action="http://192.168.1.2/index.php" method="post" id="redirectform">
    
    Javascript is disabled, click to 
    </form>
    
    

    At your external server side (change ip of PFsense server)

    
    <form method="post" action="http://192.168.1.1:8000/">
    
    	Código
    
    </form>
    
    

    In web page of PFsense, open ur captive portal -> allowed ip addresses and add the ip of your external web server there.

    Is just this 😉


 

© Copyright 2002 - 2018 Rubicon Communications, LLC | Privacy Policy