Code Monkey home page Code Monkey logo

radiusadmin's Introduction

RadiusAdmin

A FreeRADIUS webinterface

RadiusAdmin is a project of mine, with the intention of being a webinterface for FreeRADIUS (mainly for user/group management). RadiusAdmin is written in PHP and works by manipulating FreeRADIUS' SQL database. Naturally, this requires that you use the rlm_sql module for authorization and/or accounting.

FreeRADIUS' database consists of the following tables:

  • radcheck
  • radreply
  • radgroupcheck
  • radgroupreply
  • radusergroup

In rlm_sql, the tables mentioned above are analogous to the users file in rlm_files.

In addition, the rlm_sql schema includes some other tables:

  • nas
  • radacct
  • radpostauth

These tables are meant for client (nas) management, accounting and post-authentication logging respectively. RadiusAdmin provides a frontend (in the case of accounting and post-auth, mostly statistics and reports) for these functions too. Of course, the again calls for the use of rlm_sql in those sections of FreeRADIUS config. For more info, please see rlm_sql's documentation.

RadiusAdmin doesn't augment or replace FreeRADIUS' default SQL schema: it just needs access to the existing database and uses another database for RadiusAdmin's own data storage needs. This is done not to pollute FreeRADIUS' database with RadiusAdmin's own stuff.

(Planned) Features

  • Add, remove and edit users and groups
  • Manage user-group relations
  • Manage every user's or group's check and reply attributes
  • Manage clients (nasses)
  • Show statistics and graphs about accounting and post-auth data

Development status

Currently, RadiusAdmin is in a very early stage. Most features are not done yet, and it is thus not ready for use.

2015-6-21

Alpha 1 is released. The core framework is done. The only features that work are:

  • User management
  • Group management
  • Reply and check attributes

Used tools and libraries

RadiusAdmin uses the following server-side tools, languages and libraries:

  • Primary language: PHP
  • Database access layer: PDO
  • Templating engine: Smarty

In addition, RadiusAdmin also uses the following front-end frameworks:

  • Javascript library: jQuery
  • Front-end framework: Bootstrap
  • Bootstrap theme: Bootswatch Flatly
  • Icon packs: Glyphicons and Font Awesome

Screenshots

Installation

Requirements

Since the latest version uses scalar type hinting and return type hinting, it requires PHP 7. Older versions work on PHP 5.4. RadiusAdmin depends on Smarty, and dependencies are managed using Composer.

Databases

RadiusAdmin needs access to 2 databases: FreeRADIUS' database and RadiusAdmin's own database. These two database don't necessarily have to reside on the same server, although the example config file assumes they do.

The schema for FreeRADIUS' database can be found in raddb/mods-config/sql/main/*/schema.sql. RadiusAdmin's schema is radiusadmin.sql and should be in this directory.

RadiusAdmin is made with MySQL in mind, but can probably work with other RDBMSs as well by editing app/include/db.php.

Instructions

Download a stable release or clone the development branch (bleeding edge!). Put them somewhere where your webserver has access to them.

Now run composer install in the directory containing composer.json to let Composer download the dependencies for you. The directory structure should now look like this:

  • RadiusAdmin
    • app
    • public_html
    • tmp
    • vendor

As you might have guessed, the public_html directory is going to be the docroot. All the other directories shouldn't be publicly available. You webserver should have read+execute access to all 4 subdirectories. In addition, it needs write access to the tmp directory.

Create a database and user for RadiusAdmin and import the SQL file. Copy app/config.php.example to app/config.php and edit the file to reflect your database settings.

radiusadmin's People

Contributors

compizfox avatar davidebeatrici avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

radiusadmin's Issues

Abandoned?

Seems like a useful project was interested in what stats you planned to show.

problem post install

Hi, first time i navigate on the web interface, i have the folowing error:

Parse error: syntax error, unexpected ':', expecting ';' or '{' in /var/www/app/classes/BasePageidFinder.php on line 38

I don't know what to do for the moment,

Thanks to reply

Error while adding a user

PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'id' at row 1 in /var/www/intranet/radiusadmin/app/classes/RadEntityMapper.php:174\nStack trace:\n#0 /var/www/intranet/radiusadmin/app/classes/RadEntityMapper.php(174): PDOStatement->execute()\n#1 /var/www/intranet/radiusadmin/app/classes/RadEntityMapper.php(108): RadEntityMapper->saveAttrs('radreply', 'BockTablet', Array)\n#2 /var/www/intranet/radiusadmin/app/pages/users_edit.php(50): RadEntityMapper->save(Object(RadEntity))\n#3 /var/www/intranet/radiusadmin/public_html/index.php(44): include('/var/www/intran...')\n#4 {main}\n thrown in /var/www/intranet/radiusadmin/app/classes/RadEntityMapper.php on line 174, referer: http://<serverip>/radiusadmin/public_html/index.php?page=users_new

Any Ideas?

install on pfsense

Hi,
Thank you for sharing this good project.

is it possible to copy the public_html and app to pfsense and use it?

Regards,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.