INTRODUCTION TO RADIUSDESK WITH RHEL/CENTOS 6.X (Mini Course)

Written by Mfawa Alfred Onen on . Posted in Courses, Linux

Hey lads, its been a while since I recorded any screencast and I must say that this is due to work. If you remember, I did a screencast on setting up RADIUSdesk with CentOS and at that time, it was a pre-alpha release. I and Dirk van der Walt have decided to bring a new Video Course on Introduction to RADIUSdesk with RHEL/CentOS 6.x which will focus on setting up RADIUSdesk on CentOS including all the new technologies (Node.js, SocketIO, ExtJS etc). We hope you guys enjoy this mini course and if you do have a problem along the way while following this videos, kindly use the comment form below and we will get back to you. The Agenda/Topics in this course are:

Course Outline

  1. What is RADIUSdesk?
  2. System Requirements for RADIUSdesk 
  3. Installing RADIUSdesk on Apache 
  4. Installing FreeRADIUS with RAW support 
  5. Installing Node.js with Socket.io support 
  6. Tour of RADIUSdesk User Interface 
  7. Creating Profiles and Profile components 
  8. Creating Permanent Users
  9. Creating an Access Provider and Realm 
  10. Installing CoovaChilli for Captive Portal 
  11. CoovaChilli Captive Portal with VLAN support and Custom Pages

Lesson Files

Lesson Files (Download)

Some people have requested for the 64 bit (x86_64) versions of FreeRADIUS with RLM_RAW  support for dynamic clients, so here you go.

64-bit FreeRADIUS RPMs (x86_64) with RLM_RAW Support

Videos

 

Tags: , , ,

Mfawa Alfred Onen

I am a System Administrator and I work at Bingham University.
  • Claudinir

    is possible use this packet with coova in your project? http://sourceforge.net/projects/wifipaypal/files/

    • Mfawa Alfred Onen

      Hello Claudinir, yes it can be ported to CoovaChilli and RADIUSdesk. My country is blacklisted from PayPal, I would have created a version that works seamlessly with RADIUSdesk and CoovaChilli.

  • Claudinir

    would you help me carry this package to radiusdesk and coovachilli? what you need to do this?

  • Claudinir

    do you speak portuguese?

    • Mfawa Alfred Onen

      No, I speak English and my native Language here in Nigeria. I will love to do this but I can not create or use a PayPal account in Nigeria because we have been blacklisted from PayPal. This is the problem.

  • Claudinir

    I following all instructions!

    In my instalation i do not find rlm_raw-2.2.0.so and rlm_raw.so in patch /usr/lib/freeradius

    And “service radiusd start” responding failed.

    When type radiusd -XXX

    The result:

    Tue Aug 20 23:13:15 2013 : Error: /etc/raddb/modules/raw[1]: Failed to link to module ‘rlm_raw': file not found

    I could not solve it, can you help me?

  • Claudinir

    Bro, yesterday I was very sleepy and I did installing the RPM freeradius wrong, redid today and it worked! Tks

    Best Regards!!!

    MUITO OBRIGADO!

    • Mfawa Alfred Onen

      Glad to hear it worked for.

  • iqbal

    hi! there..

    any chance of installing a thermal ticket printer.. those three button printers with presets on each button.

    thanks

    • Mfawa Alfred Onen

      Hello iqbal, I haven’t used one of those thermal printers but anything that can print from web browser should work fine…

  • Claudinir

    Hey Bro, I need your help.

    During the installation of COOVA CHILLI when compiling the package: dpkg-1.15.8.13 encountered some problems (many errors) and the package was not installed

    Can you help me?

    output:

    make

    make all-recursive

    make[1]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13′

    Making all in lib

    make[2]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib’

    Making all in compat

    make[3]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib/compat’

    make[3]: Nothing to be done for `all’.

    make[3]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib/compat’

    Making all in dpkg

    make[3]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib/dpkg’

    Making all in .

    make[4]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib/dpkg’

    make[4]: Nothing to be done for `all-am’.

    make[4]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib/dpkg’

    Making all in test

    make[4]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib/dpkg/test’

    make[4]: Nothing to be done for `all’.

    make[4]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib/dpkg/test’

    make[3]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib/dpkg’

    make[3]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib’

    make[3]: Nothing to be done for `all-am’.

    make[3]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib’

    make[2]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/lib’

    Making all in dpkg-deb

    make[2]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dpkg-deb’

    make[2]: Nothing to be done for `all’.

    make[2]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dpkg-deb’

    Making all in dpkg-split

    make[2]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dpkg-split’

    make[2]: Nothing to be done for `all’.

    make[2]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dpkg-split’

    Making all in src

    make[2]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/src’

    make[2]: Nothing to be done for `all’.

    make[2]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/src’

    Making all in utils

    make[2]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/utils’

    make[2]: Nothing to be done for `all’.

    make[2]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/utils’

    Making all in dselect

    make[2]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dselect’

    Making all in methods

    make[3]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dselect/methods’

    make[3]: Nothing to be done for `all’.

    make[3]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dselect/methods’

    Making all in po

    make[3]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dselect/po’

    make[3]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dselect/po’

    make[3]: Entering directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dselect’

    CXX basecmds.o

    In file included from dselect.h:32,

    from basecmds.cc:32:

    dselect-curses.h:35:20: error: curses.h: No such file or directory

    In file included from basecmds.cc:32:

    dselect.h:62: error: ISO C++ forbids declaration of ‘WINDOW’ with no type

    dselect.h:62: error: expected ‘;’ before ‘*’ token

    dselect.h:63: error: ISO C++ forbids declaration of ‘WINDOW’ with no type

    dselect.h:63: error: expected ‘;’ before ‘*’ token

    dselect.h:144: error: variable or field ‘mywerase’ declared void

    dselect.h:144: error: ‘WINDOW’ was not declared in this scope

    dselect.h:144: error: ‘win’ was not declared in this scope

    basecmds.cc: In member function ‘void baselist::kd_redraw()’:

    basecmds.cc:86: error: ‘curscr’ was not declared in this scope

    basecmds.cc:86: error: ‘TRUE’ was not declared in this scope

    basecmds.cc:86: error: ‘clearok’ was not declared in this scope

    basecmds.cc: In member function ‘void baselist::kd_searchagain()’:

    basecmds.cc:92: error: ‘beep’ was not declared in this scope

    basecmds.cc: In member function ‘void baselist::kd_search()’:

    basecmds.cc:124: error: ‘querywin’ was not declared in this scope

    basecmds.cc:124: error: ‘werase’ was not declared in this scope

    basecmds.cc:125: error: ‘mvwaddstr’ was not declared in this scope

    basecmds.cc:126: error: ‘echo’ was not declared in this scope

    basecmds.cc:127: error: ‘wgetnstr’ was not declared in this scope

    basecmds.cc:127: error: ‘ERR’ was not declared in this scope

    basecmds.cc:130: error: ‘noecho’ was not declared in this scope

    basecmds.cc:131: error: ‘whatinfowin’ was not declared in this scope

    basecmds.cc:131: error: ‘touchwin’ was not declared in this scope

    basecmds.cc:132: error: ‘infopad’ was not declared in this scope

    basecmds.cc:132: error: ‘touchwin’ was not declared in this scope

    basecmds.cc:134: error: ‘listpad’ was not declared in this scope

    basecmds.cc:134: error: ‘touchwin’ was not declared in this scope

    basecmds.cc:137: error: ‘beep’ was not declared in this scope

    basecmds.cc: In member function ‘void baselist::displayerror(const char*)’:

    basecmds.cc:150: error: ‘beep’ was not declared in this scope

    basecmds.cc:151: error: ‘querywin’ was not declared in this scope

    basecmds.cc:151: error: ‘werase’ was not declared in this scope

    basecmds.cc:152: error: ‘mvwaddstr’ was not declared in this scope

    basecmds.cc:154: error: ‘wgetch’ was not declared in this scope

    basecmds.cc:155: error: ‘whatinfowin’ was not declared in this scope

    basecmds.cc:155: error: ‘touchwin’ was not declared in this scope

    basecmds.cc:156: error: ‘infopad’ was not declared in this scope

    basecmds.cc:156: error: ‘touchwin’ was not declared in this scope

    basecmds.cc: In member function ‘void baselist::displayhelp(const helpmenuentry*, int)’:

    basecmds.cc:164: error: ‘stdscr’ was not declared in this scope

    basecmds.cc:164: error: ‘getmaxyx’ was not declared in this scope

    basecmds.cc:165: error: ‘wbkgdset’ was not declared in this scope

    basecmds.cc:166: error: ‘TRUE’ was not declared in this scope

    basecmds.cc:166: error: ‘clearok’ was not declared in this scope

    basecmds.cc:168: error: ‘werase’ was not declared in this scope

    basecmds.cc:173: error: ‘attrset’ was not declared in this scope

    basecmds.cc:174: error: ‘mvaddstr’ was not declared in this scope

    basecmds.cc:177: error: ‘addstr’ was not declared in this scope

    basecmds.cc:178: error: ‘getyx’ was not declared in this scope

    basecmds.cc:179: error: ‘addch’ was not declared in this scope

    basecmds.cc:184: error: ‘addch’ was not declared in this scope

    basecmds.cc:185: error: ‘move’ was not declared in this scope

    basecmds.cc:186: error: ‘A_NORMAL’ was not declared in this scope

    basecmds.cc:189: error: ‘mvaddstr’ was not declared in this scope

    basecmds.cc:191: error: ‘A_BOLD’ was not declared in this scope

    basecmds.cc:191: error: ‘attrset’ was not declared in this scope

    basecmds.cc:192: error: ‘mvaddch’ was not declared in this scope

    basecmds.cc:193: error: ‘A_NORMAL’ was not declared in this scope

    basecmds.cc:201: error: ‘refresh’ was not declared in this scope

    basecmds.cc:202: error: ‘getch’ was not declared in this scope

    basecmds.cc:212: error: ‘werase’ was not declared in this scope

    basecmds.cc:214: error: ‘wnoutrefresh’ was not declared in this scope

    basecmds.cc:221: error: ‘whatinfowin’ was not declared in this scope

    basecmds.cc: In member function ‘void baselist::setcursor(int)’:

    basecmds.cc:229: error: ‘listpad’ was not declared in this scope

    basecmds.cc:235: error: ‘listpad’ was not declared in this scope

    make[3]: *** [basecmds.o] Error 1

    make[3]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dselect’

    make[2]: *** [all-recursive] Error 1

    make[2]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13/dselect’

    make[1]: *** [all-recursive] Error 1

    make[1]: Leaving directory `/root/tools/coova-chilli-rpms/dpkg-1.15.8.13′

    make: *** [all] Error 2

    ]0;root@localhost:~/tools/coova-chilli-rpms/dpkg-1.15.8.13[root@localhost dpkg-1.15.8.13]#

  • Claudinir

    i found the solution, lacked the package ncurses-devel, once installed fixed the problem

    • Mfawa Alfred Onen

      Great!

  • Kailash nath

    Hello..

    In the video Installing CoovaChilli for Captive Portal… Everything worked for me. But I am not able to rectify the UAM is down error. I tried restarting and a number of other things. Please let me know what can be done.

    • Mfawa Alfred Onen

      Can you confirm if there are errors in the Log Files?

      • Kailash nath

        Sorry but I am quite new to this. I have checked the log in the radius desk and there seems to be no errors. Where else do I check errors? I keep getting UAM is down and so unable to log in.

        • Mfawa Alfred Onen

          You can check the Syslog error in /var/log/messages.

          • Kailash nath

            There seems to be no errors.

            • Mfawa Alfred Onen

              That will be difficult to troubleshoot…can you start over and try following the video again? I just want to make sure you did not skip any step.

              • Kailash nath

                Hi Mfawa. We have been trying to compile freeradius into an RPM for 64 bit but we have not been successful so far. Can you please share the 64 bit rpm with rlm_raw if you have compiled it. Else can you share the freeradius.spec file you have created for the 32bit version and the other dependent files?
                kailashnath.007 at gmail dot com

  • Zaw Min Oo

    Hello Sir, I need some help.

    When i access the cakephp testpage: http://xxx.xxx.xxx.xxx/cake2/rd_cake/phrase_values/get_language_strings.json?_dc=1355816922405&language= , I found the following error.

    Forbidden
    You don’t have permission to access /cake2 on this server.

    Please help me.

    Thank you for your valuable tutorials.

    • Mfawa Alfred Onen

      Ensure that you place this in /etc/httpd/conf/httpd.conf:

      ## — RadiusDesk begin

      AllowOverride All

      #——-COMPRESS CONTENT———–

      # place filter ‘DEFLATE’ on all outgoing content

      SetOutputFilter DEFLATE

      # exclude uncompressible content via file type

      SetEnvIfNoCase Request_URI .(?:exe|t?gz|jpg|png|pdf|zip|bz2|sit|rar)$ no-gzip

      #dont-vary

      # Keep a log of compression ratio on each request

      DeflateFilterNote Input instream

      DeflateFilterNote Output outstream

      DeflateFilterNote Ratio ratio

      LogFormat ‘”%r” %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate

      CustomLog /var/log/httpd/deflate.log deflate

      # Properly handle old browsers that do not support compression

      BrowserMatch ^Mozilla/4 gzip-only-text/html

      BrowserMatch ^Mozilla/4.0[678] no-gzip

      BrowserMatch bMSIE !no-gzip !gzip-only-text/html

      #———————————-

      #——ADD EXPIRY DATE————-

      Header set Expires “Thu, 15 Apr 2020 20:00:00 GMT”

      #———————————-

      #——–Remove ETags ——————–

      FileETag none

      #—————————————–

      ## — RadiusDesk end

      • Zaw Min Oo

        Thank you Sir. Now it work correctly. Have a nice day.

        • thet paing

          Ko Zaw Min Oo, please show me error fix it method . I have same error .

          • Zaw Min Oo

            Disable SELNUX and Reboot, It will ok.
            # vi /etc/selinux/config

            SELINUX =disabled

            • thet paing

              thanks! bro Ko Zaw Min Oo.

  • law

    Hi Alfred,

    Thanks for the good work.

    In the video Installing CoovaChilli for Captive Portal.

    I am getting “Error UAM service is down” when trying to login from radiusdesk after a user is redirected. I followed every of your instruction

    any help would be appreciated

    thanks

    • law

      when i checked the system log, i get

      Client process timed out: 1

      thanks

    • Mfawa Alfred Onen

      Hello, is your UAM server IP address reachable from the clients? like a ping from a client to your CoovaChilli server?

      • law

        thanks for the reply

        when i ping the coovachilli server’s ip from the client, it is not reachable

        but when i try to browse the internet,it redirects properly to the login page.

        on the login page, i cant login. it gives “UAM service is down”

        • Mfawa Alfred Onen

          Usually when you get this error, it is mostly due to the clients not able to reach the UAM server. Try the following, look at the HS_UAMSERVER ip address and make sure it is exactly what is displayed in the clients redirect page E.G. :3990. Now make sure the uam.php file uses the same uam_secret value with your /etc/chilli/config file. Let me know what happened.

          • law

            uam.php secret is the same as my HS_UAMSECRET

            and if i type :3990 from the client, i get the radiusdesk login

            HS_UAMSERVER = HS_UAMLISTEN

            and the ip at HS_UAMLISTEN is what is displaying in the client browser at the login page ( the login page displays but cannot login)

            but i cannot yet login. I have restarted the server many times

            when i checked the system log, i get

            Client process timed out: 1

            • Nay

              you fix it? I have the same problem

              Please help me fix the problem

              thank

              • law

                the problem was open_shot_tags option in the php.ini

          • law

            var/log/messages reads last line when i try to connect

            ….

            Nov 11 14:37:08 localhost coova-chilli[2140]: redir.c: 54: Client process timed out: 1

            i can send the full log if you want to

            • Mfawa Alfred Onen

              attach the log file in Dropbox or Google drive and post the link. I will download and look at it.
              Cheers!

              • law
                • Mfawa Alfred Onen

                  I have seen the log file but it is unclear what is happening with the chilli instance. The reason why the log is showing that message is because the communication times out when trying to authenticate. Can we chat with Google Chat/Hangout? that way we can try using Teamviewer so that i can take a look for my self. muffycompoqm [at] gmail [dot] com

                  • law

                    cant find you on google hangout

                    saying muffycompoqm[at]gmail.com not found

                    • Mfawa Alfred Onen

                      Weird…try sending me an email and I will reply so that you confirm my address.

  • Hoàng Thanh Long

    Thank you for the course. I notice that you posted rpms of freeradius. But please tell me what packages I need to compile freeradius from source? I’m on CentOS 6.5 64-bit.

    • Mfawa Alfred Onen

      @hongthanhlong:disqus you can start off by using the SRPM I have here: http://www.maomuffy.com/repo/centos/freeradius/srpms/ This way, you can recompile it your self and by the way, my RPM has RAW support baked in. You can also checkout my installer project here http://muffycompo.github.io/radiusdesk-installer/ and here http://www.maomuffy.com/radiusdesk-installer-project/

      • Hoàng Thanh Long

        Thanks for sharing your srpm. But I can only see coovachilli srpm file. I want to try to compile from the latest freeradius source (3.0.3). I’ll try your installer first :D.
        I’m new to linux and I’m using CentOS for my home server. Could you please suggest some linux courses on Youtube to me? Thanks!

        • Mfawa Alfred Onen

          Oh shoot…I was in a hurry to reply you and missed that. I can’t seem to find the SRPM for FreeRADIUS but I have the ready made RPMs here http://www.maomuffy.com/repo/centos/freeradius/x86_64/. As for Linux, you are on the right track by learning your self. Also, Youtube is your best friend as a lot of community members have done a video or two on CentOS

  • HaiNam

    The Lesson Files (Download) link doesn’t work. Can you send me to hainam.tb_ptit@yahoo.com.vn

  • Junaid Anwar

    not getting the username and password prompt with //x.x.x.x/rd

    • Mfawa Alfred Onen

      How did you install RD Junaid? Is there any errors in the log files?