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

    [HOWTO] Captive portal + FreeRADIUS + local MySQL user friendly single step

    Scheduled Pinned Locked Moved Captive Portal
    154 Posts 47 Posters 104.2k 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.
    • D
      deajan
      last edited by

      Hello xAm56,

      As far as I remember, the username is a combination of emailAdress and roomNumber and password is a combination of familyName and surName, in order to get some degree of randomness.
      Basically, only using room number would mean that Radius records would not be unique.

      I'll have a to push an update until monday which adds the language parameter in the url.
      I'll try to check your usecase in the same time.

      Regards,
      Orsiris.

      NetPOWER.fr - some opensource stuff for IT people

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

        Have a look at the latest commits on github at https://github.com/deajan/pfSense-cp-auth-onestep/releases/tag/v0.44

        NetPOWER.fr - some opensource stuff for IT people

        1 Reply Last reply Reply Quote 0
        • S
          saygon
          last edited by

          Hi @deajan and thank you for your amazing work!

          Unfortunately I'm not able to run mysql server.
          I have made a clean install of pfSense 2.3, configured wan and lan, internet works. I'm also able to install all what do you mentioned on this guide.
          Each time I try start mysql server it comes some error:

          
          [2.3.2-RELEASE][admin@pfSense.localdomain]/root: service mysql-server.sh start
          Starting mysql.
          Bad -c option
          /usr/local/etc/rc.d/mysql-server.sh: WARNING: failed to start mysql
          
          

          I have already research on Google regarding to this error, but don't found nothing useful.
          Please let me know if you need some additional info or log output.

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

            @saygon I remember having dealt with that error while developping this project.
            Don't remember the exact root cause… probably a bad mysql version installed.

            Remove and reinstall the version corresponding to your setup.
            If the problem still occurs, post the content of your mysql_server.sh file, and mysql -v output.

            NetPOWER.fr - some opensource stuff for IT people

            1 Reply Last reply Reply Quote 0
            • A
              astatine
              last edited by

              +–--+----------+-------+---------------+---------------------+
              | id | username | pass  | reply        | authdate            |
              +----+----------+-------+---------------+---------------------+
              |  1 | testu    | testp | Access-Accept | 2015-09-29 15:13:24 |
              +----+----------+-------+---------------+---------------------+

              Hello deajan,

              would you please tell me , how can I set MD5 encrypt here for user password?

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

                @astatine Your question isn't in the scope of this howto. Please make your own question regarding FreeRADIUS + MySQL setup only.

                NetPOWER.fr - some opensource stuff for IT people

                1 Reply Last reply Reply Quote 0
                • J
                  joel.dq
                  last edited by

                  Hello !

                  I'm new to pfSense and forum. I was tasked to set up this type of access for an organization and I'm having a small trouble that  I probably think it's pretty stupid but can't make it work.

                  I followed the instructions to the letter and I got the captive portal working as is- No modification of the files except for mysql password etc.

                  On the LAN PC I get successfully forwarded to the Captive Portal but as soon as I press Connect nothing happens, the form is cleared (as if new connection) and remain there.

                  I tried to see if the PHP inserted something in the radius DB but I found nothing there and for the life of me I can't find in the logs, or where in the logs, I can tail if there are connectivity errors with mysql +  php etc.

                  I do want t thank you though, the guide is very detailed and I was able to set everything up quick. I just now need to to make that work.

                  Thanks !

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

                    Hello joel.dq,

                    Can you activate debug mode in captiveportal-config.php ?

                    NetPOWER.fr - some opensource stuff for IT people

                    1 Reply Last reply Reply Quote 0
                    • J
                      joel.dq
                      last edited by

                      I think I did already. Where should I see that logging?

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

                        There's no logging, it's about getting the error messages onscreen.
                        What version of the captive portal code are you using ? What user input do you ask for to connect ?

                        NetPOWER.fr - some opensource stuff for IT people

                        1 Reply Last reply Reply Quote 0
                        • J
                          joel.dq
                          last edited by

                          @deajan:

                          There's no logging, it's about getting the error messages onscreen.
                          What version of the captive portal code are you using ? What user input do you ask for to connect ?

                          Hello

                          I'm using 2.3.2-RELEASE-p1 version.

                          The inputs I'm asking are

                          1. Room # (renamed to Age) . I put it because I can read in the code that the room# is used to create the radius account.
                          2. Name
                          3. Surname
                          4. Mail

                          Debug is enabled

                          /usr/local/captiveportal: cat captiveportal-config.php | grep DEBUG
                          DEFINE("DEBUG", true);
                          DEFINE("DEBUG", true);

                          What is happening is that I do get the Captive Portal. I fill the details and click Connect. Nothing happens, no error on the screen and simply clears the form as if first reaching the CP page.

                          http://i.imgur.com/a/TfTn4

                          and form gets cleared

                          http://imgur.com/a/Z8Udw

                          I normally try to debug myself, I have rudimentary php skills to understand what code does, but I'm lost when JS is involved.

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

                            Hello,

                            What version of captiveportal do you use ? Latest from git ?

                            Can you mail me your captiveportal-config.php file at ozy at netpower dot fr ?

                            Also, assuming you did a Spanish translation, can you give me that so I add it to git ?

                            NetPOWER.fr - some opensource stuff for IT people

                            1 Reply Last reply Reply Quote 0
                            • J
                              joel.dq
                              last edited by

                              @deajan:

                              Hello,

                              What version of captiveportal do you use ? Latest from git ?

                              Can you mail me your captiveportal-config.php file at ozy at netpower dot fr ?

                              Also, assuming you did a Spanish translation, can you give me that so I add it to git ?

                              Latest from GIT. Sending and many thanks for your assistance.

                              I'll send you the spanish translation a bit later. Modified it outside hotel for educative institute.

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

                                Your config file does not come from the latest git, there have been at least 7 commits since your version.
                                Please UPDATE ALL files before posting about this again.

                                NetPOWER.fr - some opensource stuff for IT people

                                1 Reply Last reply Reply Quote 0
                                • J
                                  joel.dq
                                  last edited by

                                  @deajan:

                                  Your config file does not come from the latest git, there have been at least 7 commits since your version.
                                  Please UPDATE ALL files before posting about this again.

                                  I found the issue.

                                  When I put the terms of use as false, no matter what other options I try with true or false, it won't go on.

                                  $askForTermsOfUse = false;

                                  While the option to put it false is there, apparently it has to always be true to work.

                                  Regards

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

                                    Well this was more or less by design, as accepting Terms of use is mandatory.
                                    In the meanwhile, I added askFor[all] parameters, without updating the fact that Terms of Use aren't mandatory anymore.

                                    I've commited a quick and dirty fix you may try.

                                    Regards,
                                    Ozy.

                                    NetPOWER.fr - some opensource stuff for IT people

                                    1 Reply Last reply Reply Quote 0
                                    • J
                                      joel.dq
                                      last edited by

                                      @deajan:

                                      Well this was more or less by design, as accepting Terms of use is mandatory.
                                      In the meanwhile, I added askFor[all] parameters, without updating the fact that Terms of Use aren't mandatory anymore.

                                      I've commited a quick and dirty fix you may try.

                                      Regards,
                                      Ozy.

                                      I can confirm it now works perfect ! Thanks very much Ozy

                                      1 Reply Last reply Reply Quote 0
                                      • H
                                        hsrtreml
                                        last edited by

                                        Hello Ozy, great work. Thank you.

                                        I have couple of questions about authentification and administration:

                                        How do you disable "non" Hotel guests? You solution is free and open for all "participants".
                                        Is it possible to check the room number, before accepting the registration?
                                        Why does in pfSense in FrreRadius section not listing the registrated user? Only within mySQL-database.
                                        Have you thinking about the process to validate "the login" with eMail confirmation by the user or by the hotel?

                                        Thanks so lot for a discussion.
                                        Best regards
                                        Treml

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

                                          Hi Ozy,

                                          Great work on this, thank you! Just some question:

                                          When I reboot my pfsense machine, all credentials are gone. Users will need to re-input and goes back to the landing page. Is that how it should be? Is there anyway the credentials are stored even after every reboot?

                                          Thanks Ozy

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

                                            @hsrtreml:

                                            1/ Non hotel guests are excluded via confirmation code (which is basically a stupid code you give the customers at the reception desk)
                                            2/ This is a SELF REGISTERING solution. If you don't need this, you could remove the self registering part and create FreeRADIUS accounts with roomnumber and different passwords per room which you give to the customers
                                            3/ Because pfSense FreeRADIUS UI does not know about the underlying SQL storage, you may open a ticket at redmine.pfsense.org
                                            4/ Well… Confirm the email without having internet ? That's the point of providing wifi, isn't it ?

                                            @lienor:
                                            That's the normal behavior. Unless you know how to play with pfSense's SQLite database where the CP stores identification, you won't be able to change this.

                                            NetPOWER.fr - some opensource stuff for IT people

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