New build path variable
[freeradius.git] / dialup_admin / README
1 dialup_admin is a web based administration interface for the freeradius radius server.
2 It is written in PHP4 (although the files have an extension of php3 for historical reasons).
3 It is modular and right now it assumes that user information is stored in an ldap server
4 or an sql database and accounting in an sql server.
5
6 Extra documentation from Stadler Karel (<Karel.Stadler@psi.ch>):
7 http://kstadler.ch/index.php?topgroupid=1&subgroupid=14&groupid=11
8
9 There is also a nice HOWTO in the doc folder
10
11
12 INSTALLATION:
13
14 Put dialup_admin in /usr/local/dialupadmin
15 Create a link from your htdocs directory to /usr/local/dialupadmin/htdocs
16 Edit /usr/local/dialupadmin/conf/* files to match your needs
17
18
19 There are also a few more things included:
20
21 * sql/badusers.sql: It will create a table named badusers which can be used to hold the
22   history for badusers (date,action)
23 * sql/userinfo.sql: It will create a table named userinfo which contains personal information
24   for users stored in the sql database. This can be used if a sql database is used to store user profiles
25   (not ldap).
26 * bin/log_badlogins: It will constantly check the radiusd.log file and add all login-incorrect,
27   invalid-user, outside of allowed login time  and multiple-login cases to the radacct table with
28   acctstarttime=acctstoptime, acctsessiontime=0 and acctterminatecause containing the reason.
29   If the failing module sent back a module message then it will also appear in the terminate cause.
30   You will need to setup the $mysql and $tmpfile variables to suite your mysql installation and needs.
31   Perl module Date::Manip is needed by the script.
32 * bin/clean_radacct: It will delete all entries in the radacct table with a starttime > 1 day and
33   stoptime = 0. It will not do an harm even if it deletes valid entries since radiusd will fall
34   back to insert if update fails.
35 * bin/truncate_radacct: It will delete sessions from the radacct table which are older than a configurable
36   number of days
37 * bin/tot_stats: Update the totacct table with aggregated daily accounting information for each user.
38   We keep a row per user for each day.
39 * bin/monthly_tot_stats: Log in the mtotacct table aggregated accounting information for each user spaning
40   in one month period. If the current month has not ended it will log information up to the current month day
41
42
43
44
45 The structure of the tree is:
46
47 conf:: Contains various configuration files.
48 conf::admin.conf=>
49         The main configuration file. The directives used should be easily
50         understood
51 conf::config.php3=>
52         Just a helper php4 for reading the admin.conf file.
53 conf::default.vals=>
54         Contains the default values for check and reply items. If you also use the users
55         file except for the ldap/sql databases fill in the default values you have inserted
56         for the users.Else comment them out.
57 conf::sql.attrs=>
58         Contains inmformation about the sql attributes. This is used by the accounting
59         report generator (accounting.php3).
60 conf::user_edit.attrs=>
61         Contains the attributes that user_edit.php3 will show. Just uncomment those
62         which you want to be displayed.
63 conf::extra.ldap-attrmap=>
64         Contains a few items not included in ldap.attrmap which are used only by dialup_admin
65         Things like User-Password and Dialup-Lock-Msg. Use none for attributes that are not known
66         by the radius or ldap server.
67 conf::sql.attrmap=>
68         Contains the Attribute map for the sql database. Use none for attributes that are not known by
69         the radius server.
70 conf::auth.request=>
71         Contains value pairs sent in the test packets which are sent from the test user/server pages.
72
73 htdocs:: Contains the basic php files
74 htdocs::index.html=>
75         The main index file. Just contains the frames tags
76 htdocs::content.html=>
77         Change this file to include the greeting of your choise
78 htdocs::buttons.php3=>
79         This will open the corresponding buttons html file in the html/buttons folder
80 htdocs::style.css=>
81         CSS style file. Change it to match your preferences
82 htdocs:: user_state.php3 =>
83         It can be used by outside pages to get a quick
84         overview of the status of a user. It will return the following fields
85         separated by new lines:
86         account_status(active or inactive),lock message,weekly limit,daily limit,
87         weekly used,weekly connections,daily used,daily connections,
88         active sessions number,active sessions time
89 htdocs:: user_finger.php3 =>
90         It will finger the nas(es) and show the logged in users. If an argument server is passed then
91         it will only show users for the specific access server.
92         If an argument usage_summary is passed then it will only show a line like:
93         "Online: <num> Free: <num>" which can be used by other pages
94 htdocs::failed_logins.php3 =>
95         It will show all the failed logins as logged in the radacct table by the log_badlogins script
96
97 html:: Contains the html code for a few pages 
98 html::user_admin.html.php3 =>
99         html code for the user_admin page
100 html::stats.html.php3 =>
101         html code for the stats page
102 html::user_toolbar.html.php3 =>
103         the user toolbar (show,edit,accounting...) which appears in almost all pages
104 html::group_toolbar.html.php3 =>
105         the toolbar shown in the group manipulation pages
106 html::/buttons
107         contains a folder default which contains a buttons.html.php3 file. When a user is connecting
108         with http authentication we first try to open the file in the folder <username>. If that fails
109         we open the file in the default folder. That way each admin can have a different view of the buttons
110         bar (for example see different finger pages).
111
112 lib::   Contains the library items
113 lib::ldap=>
114         The ldap files
115 lib::lang=>
116         Allow for multiple languages to be supported
117 lib::crypt=>
118         Allow for multiple encryption schemes (for user passwords)
119 lib::sql=>
120         Contains the sql library files. There is also a directory drivers
121         which contains functions for various sql databases (mysql and
122         postgresql for the time being).
123
124 The rest: The rest are the php4 files. Normally, you should not need to change anything in them.