NEW Package: freeRADIUS 2.x
-
Hi again,
I did and upgrade of an "old" pfsense 2.1-BETA0 with freeradius2.1.12 to todays pfsense snapshot and freeradius2.2.0
Service started and no problems with high CPU usage.
But nevertheless there is something which needs to be corrected and please make sure you did that.Edit the freeradius.inc file:
vi /usr/local/pkg/freeradius.inc
Remove this line 83:
exec("chown -R root:wheel " . FREERADIUS_BASE . "/etc/raddb && chown -R root:wheel " . FREERADIUS_BASE . "/lib/freeradius-2.1.12 && chown -R root:wheel /var/log/radacct");
With this line:
[code]exec("chown -R root:wheel " . FREERADIUS_BASE . "/etc/raddb && chown -R root:wheel " . FREERADIUS_BASE . "/lib/freeradius-2.2.0 && chown -R root:wheel /var/log/radacct");[/code]
Remove this line 216:
libdir = \${exec_prefix}/lib/freeradius-2.1.12
with this line:
libdir = \${exec_prefix}/lib/freeradius-2.2.0
Save the freeradius.inc
Now go to Diagnoctics –> Command Prompt and put the following into the PHP Execute:
require_once('/usr/local/pkg/freeradius.inc'); freeradius_install_command();
This command will take some time. It will recreate all folders and config files and restart freeradius service.
After that try again if it is working.Question:
Do you "just" have problems with high CPU usage or do you have problems with freeradius at all? Does it show you "Ready to process requests" ?PS: No need to SSH and no need to pay money. Use your money for usefull things or donate to pfsense but not to me ;-)
-
No, it's not just high CPU usage, it doesn't work, never gets to ready to process. I sent you exactly what it does :) I edited those files but I never ran that command you told me to, just did that. It still gets stuck on the same line (add defaults: start). Here's the radiusd thread causing the 25% CPU use:
59445 root 119 0 34040M 9348K CPU1 1 1:13 100.00% radiusd
100% use on that virtual core, it's like it's pegging it out in some kind of loop. Always worked fine on 32-bit. Maybe a complete system reinstall as 64-bit is in order, but it won't be able to happen for a month or so (though the RADIUS is only needed for youth camps come summer, right now it's all rental groups that don't get to bypass the proxy server :) )
-
Perhaps just try with a complete fresh install.
Do not mix architectures between snapshots. Just start with amd64 and stay on amd64 or do a fresh install.
And after you installed the freeradius2 package again, do the changes, run the command I wrote and then try again :-) -
Yeah, but I can't do a fresh install for about three weeks :) Going to just do that!
-
Is freeradius2 starting if you remove all config entries from config.xml file and do a fresh freeradius2 installation ?
The only thing you need to configure is a listening interface and then freeradius must start. If it starts it could be an config problem - some special char or some syntax error.Just a suggestion.
-
Nope, I tried that already, no luck. I actually deleted my entire configuration and started over. Thus why there's no users except the one test user…
-
Try to install and….
$ pkg_add -r http://files.pfsense.org/packages/8/All/freeradius-2.1.12_1.tbz tar: Failed to set default locale tar: Failed to set default locale tar: tar: Failed to set default locale Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale ************************************************************ The OpenLDAP client package has been successfully installed. Edit /usr/local/etc/openldap/ldap.conf to change the system-wide client defaults. Try `man ldap.conf' and visit the OpenLDAP FAQ-O-Matic at http://www.OpenLDAP.org/faq/index.cgi?file=3 for more information. ************************************************************ tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale ==== Note that some of the standard modules are provided as separate ports since they require extra dependencies: bsddb databases/py-bsddb gdbm databases/py-gdbm sqlite3 databases/py-sqlite3 tkinter x11-toolkits/py-tkinter Install them as needed. ==== tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale Removing stale symlinks from /usr/bin... Skipping /usr/bin/perl Skipping /usr/bin/perl5 Removing /usr/local/bin/perl5.14.2 installed by an older perl port Done. Creating various symlinks in /usr/bin... Symlinking /usr/local/bin/perl5.12.4 to /usr/bin/perl Symlinking /usr/local/bin/perl5.12.4 to /usr/bin/perl5 Done. cd: can't cd to /usr/include Cleaning up /etc/make.conf... Done. Spamming /etc/make.conf... Done. tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale pkg_add: warning: package 'libxml2-2.7.8_3' requires 'libiconv-1.14', but 'libiconv-1.13.1_1' is installed tar: Failed to set default locale tar: Failed to set default locale tar: Failed to set default locale pkg_add: warning: package 'postgresql-client-8.4.12' requires 'libiconv-1.14', but 'libiconv-1.13.1_1' is installed The PostgreSQL port has a collection of "side orders": postgresql-docs For all of the html documentation p5-Pg A perl5 API for client access to PostgreSQL databases. postgresql-tcltk If you want tcl/tk client support. postgresql-jdbc For Java JDBC support. postgresql-odbc For client access from unix applications using ODBC as access method. Not needed to access unix PostgreSQL servers from Win32 using ODBC. See below. ruby-postgres, py-PyGreSQL For client access to PostgreSQL databases using the ruby & python languages. postgresql-plperl, postgresql-pltcl & postgresql-plruby For using perl5, tcl & ruby as procedural languages. postgresql-contrib Lots of contributed utilities, postgresql functions and datatypes. There you find pg_standby, pgcrypto and many other cool things. etc... ===> Setting user and group in radiusd.conf ===> Creating users and/or groups. Using existing group 'freeradius'. Using existing user 'freeradius'. ===> Bootstrapping default certificates, please wait... tar: tar: Failed to set default localeFailed to set default locale ===> Adjusting ownership of directory /usr/local/etc/raddb ===> Adjusting ownership of directory /var/log/radacct ===> Adjusting ownership of directory /var/run/radiusd ===> Adjusting ownership of /var/log/radius.log ===> Adjusting ownership of /var/log/radutmp ===> Adjusting ownership of /var/log/radwtmp ===> Updating libdir in /usr/local/etc/raddb/radiusd.conf pkg_add: warning: package 'freeradius-2.1.12_1' requires 'libiconv-1.14', but 'libiconv-1.13.1_1' is installed =============================================================================== To enable FreeRADIUS, put the following line in /etc/rc.conf radiusd_enable="YES" The sample configuration can be found at /usr/local/share/examples/freeradius/raddb If you are upgrading FreeRADIUS, you are advised to use this as a reference for updating your configuration. FreeRADIUS will look for its configuration directory at /usr/local/etc/raddb by default. If you did not already have a configuration at this location, the sample configuration has been copied to this location and has been bootstrapped. If you wish to point FreeRADIUS to a configuration at a different location, put the following line in /etc/rc.conf radiusd_flags="-d /path/to/raddb" To start the server in normal (daemon) mode, run: /usr/local/etc/rc.d/radiusd start and to stop the server, run: /usr/local/etc/rc.d/radiusd stop To start the server in debugging mode, run: /usr/local/etc/rc.d/radiusd debug You are advised to make cautious changes to the configuration, and to test frequently, using debugging mode where necessary. Try to resist the temptation to disable or delete things that you don't understand - you may well break things! The documentation has been installed at /usr/local/share/doc/freeradius Useful configuration advice can be found in the FreeRADIUS Wiki at http://wiki.freeradius.org ===============================================================================
-
Try to install and….
$ pkg_add -r http://files.pfsense.org/packages/8/All/freeradius-2.1.12_1.tbz (...)
What do you want to do?
If you want to use freeradius2 package on pfsense then just go to
System –> Package Manager --> Available Packages
and install freeradius2No need to do that manual from the console and it will not work.
-
Try to install and….
$ pkg_add -r http://files.pfsense.org/packages/8/All/freeradius-2.1.12_1.tbz (...)
What do you want to do?
If you want to use freeradius2 package on pfsense then just go to
System –> Package Manager --> Available Packages
and install freeradius2No need to do that manual from the console and it will not work.
System –> Package Manager --> Available Packages
and install freeradius2
But dont RUN :(I tried all ways to install ... but this package does not want to start
$ radiusd -X FreeRADIUS Version 2.2.0, for host i386-portbld-freebsd8.3, built on Dec 20 2012 at 23:43:04 Copyright (C) 1999-2012 The FreeRADIUS server project and contributors. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License v2\. Starting - reading configuration files ... including configuration file /usr/pbi/freeradius-i386/etc/raddb/radiusd.conf including configuration file /usr/pbi/freeradius-i386/etc/raddb/clients.conf including files in directory /usr/pbi/freeradius-i386/etc/raddb/modules/ including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/wimax including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/always including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/attr_filter including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/attr_rewrite including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/cache including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/chap including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/checkval including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/counter including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/cui including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/detail including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/detail.example.com including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/detail.log including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/dhcp_sqlippool including configuration file /usr/pbi/freeradius-i386/etc/raddb/sql/mysql/ippool-dhcp.conf including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/digest including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/dynamic_clients including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/echo including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/etc_group including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/exec including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/expiration including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/expr including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/files including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/inner-eap including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/ippool including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/krb5 including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/ldap including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/linelog including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/otp including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/logintime including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/mac2ip including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/mac2vlan including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/mschap including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/ntlm_auth including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/opendirectory including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/pam including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/pap including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/passwd including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/perl including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/policy including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/preprocess including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/radrelay including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/radutmp including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/realm including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/redis including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/rediswho including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/replicate including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/smbpasswd including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/smsotp including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/soh including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/sql_log including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/sqlcounter_expire_on_login including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/sradutmp including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/unix including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/acct_unique including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/motp including configuration file /usr/pbi/freeradius-i386/etc/raddb/modules/datacounter_acct including configuration file /usr/pbi/freeradius-i386/etc/raddb/eap.conf including configuration file /usr/pbi/freeradius-i386/etc/raddb/policy.conf including files in directory /usr/pbi/freeradius-i386/etc/raddb/sites-enabled/ including configuration file /usr/pbi/freeradius-i386/etc/raddb/sites-enabled/default main { allow_core_dumps = no } including dictionary file /usr/pbi/freeradius-i386/etc/raddb/dictionary main { name = "radiusd" prefix = "/usr/pbi/freeradius-i386" localstatedir = "/var" sbindir = "/usr/pbi/freeradius-i386/sbin" logdir = "/var/log" run_dir = "/var/run" libdir = "/usr/pbi/freeradius-i386/lib/freeradius-2.1.12" radacctdir = "/var/log/radacct" hostname_lookups = yes max_request_time = 30 cleanup_delay = 5 max_requests = 1024 pidfile = "/var/run/radiusd.pid" checkrad = "/usr/pbi/freeradius-i386/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = yes auth = yes auth_badpass = yes auth_goodpass = yes msg_badpass = "" msg_goodpass = "" } security { max_attributes = 200 reject_delay = 1 status_server = no } } radiusd: #### Loading Realms and Home Servers #### radiusd: #### Loading Clients #### client system { ipaddr = 192.168.1.1 require_message_authenticator = no secret = "*******" shortname = "system" nastype = "other" } radiusd: #### Instantiating modules #### instantiate { Module: Linked to module rlm_exec Module: Instantiating module "exec" from file /usr/pbi/freeradius-i386/etc/raddb/modules/exec exec { wait = no input_pairs = "request" shell_escape = yes } Module: Linked to module rlm_expr Module: Instantiating module "expr" from file /usr/pbi/freeradius-i386/etc/raddb/modules/expr Module: Linked to module rlm_counter Module: Instantiating module "daily" from file /usr/pbi/freeradius-i386/etc/raddb/modules/counter counter daily { filename = "/var/log/radacct/timecounter/db.daily" key = "User-Name" reset = "daily" count-attribute = "Acct-Session-Time" counter-name = "Daily-Session-Time" check-name = "Max-Daily-Session" reply-name = "Session-Timeout" cache-size = 5000 } rlm_counter: Counter attribute Daily-Session-Time is number 11273 rlm_counter: Current Time: 1364223550 [2013-03-25 16:59:10], Next reset 1364248800 [2013-03-26 00:00:00] gdbm fatal: read error
-
gdbm fatal: read error
I saw this problem several times in other threads. In most cases it was a problem with the pfsense installation.
Can you try to do a fresh installation of pfsense and try the package again ?In general freeradius2 should start after you setup a listening interface.
-
Thanks for this great contribution.
I am currently testing pfsense 2.0.3 with freeradius2 in appliance only mode.
I think I've found a small bug, if a radius user is created with an email address .i.e "tom@example.com" and "Amount of traffic" is set, this user is unable to login.
I've added "@" to /usr/local/etc/raddb/scripts/datacounter_*.sh files on the line
USERNAME=`echo -n "$1" | sed 's/[^0-9a-zA-Z.:_-[color=red]@]/X/g'
I am able to log on with "tom@example.com", however traffic accounting completely stops, for all users not just ones with @ in their names, if I remove my changes from /usr/local/etc/raddb/scripts/datacounter_acct.sh, accounting works again but not for @ usernames.
Any help?
-
You probably need to modify that on both functions:
freeradius_datacounter_auth_resync() freeradius_datacounter_acct_resync()
Further you need to restart pfsense to recreate the .sh files.
Or you go to diagnostics –> command prompt:
require_once("/usr/local/pkg/freeradius.inc");
freeradius_datacounter_auth_resync();
freeradius_datacounter_acct_resync(); -
Thanks.
I had the same results, I even commented out the realms section where it denies @ logins, still nothing.
-
@Abdsalem:
Thanks.
I had the same results, I even commented out the realms section where it denies @ logins, still nothing.
Hmm, I am no coding expert so I am not sure why this is happening but I found the follwoing:
http://php.net/manual/de/language.operators.php
So it seems that @ is an operator in PHP.And in function:
function freeradius_modulesdatacounter_resync()
we need the username (%{request:User-Name}) from freeradius and this could perhaps cause problems.Is there a way to just get the value of %{request:User-Name} without doing any special with it ?
-
Thanks, Im no coder either :0)
It could be my regex skills are also crap, but I thought I'd mention it as I noticed 1 or 2 posts on this thread pointing to this symptom, Ive since moved to an external radius server, just need to work out all the correct configs for it.
But without @ username, the pfsense package worked great, I had 2 pfsense fr2 syncing with eachother with no problems.
Cheers
-
hello,
first @ is not operator in php.
second, both functions You mentioned are bash scripts, so it doesn't matter.USERNAME=`echo -n "\$1" | sed 's/[^0-9a-zA-Z.:_-@]/X/g' ```this changes special characters to X. But finally it's just name of file so it doesn't matter if you save it with X as tomXmail.com or tom@mail.com. I don't use this function, but I'll try to help: 1\. Do You have only one backslash before $1 in USERNAME? 2\. Give me ouput (You can cut it, but I need sample name of username file (path /var/log/radacct/datacounter/\$TIMERANGE/max-octets-\$USERNAME"): You can do this command and paste somewhere.
ls -lar /var/log/radacct/datacounter/ > /root/datacounterlist
3\. As Nachtfalke wrote it could be problem in other function. We need to look into it: in function freeradius_modulesdatacounter_resync we need to change $conf variable a little. change only exec datacounterdaily
exec datacounterdaily {
wait = yes
program = "/bin/sh $varFREERADIUS_BASE/etc/raddb/scripts/datacounter_acct.sh %{request:User-Name} daily %{request:Acct-Input-Octets} %{request:Acct-Output-Octets} && /bin/sh echo %{request:User-Name} >> /root/usernames"
}
...maybe we would know something more with those files ;)
-
Thanks very much guys for offering to help and sorry I have not got back to this asap, been a bit busy as I have migrated my entire setup to pfsense 2.1 (radius accounting works great btw), I've setup an external radius server that sits on my dmz and its authenticating and accouting correctly with all my users, including "@" usernames.
I am a little free now to help fix this problem for the community because its ideal and more practical in some cases to give users the option to sign up with their email addresses with the pfSense FR2 package.
I have also worked out how to give users custom replies for my own setup if they fail authentication for what ever reason, I know a few people were looking for this as the default gave inconsistant replies for their setup .i.e "You have entered the wrong credentials" for a user who has used up their data allowance, instead of something liike this "You have used up your data allowance for this month".
Ill setup another vm with pfsense 2.0.3 soon (I cant find where FR2 pkg resides on 2.1) and post the result of the commands pszafer wrote.
TIA
-
Maybe better to test it on pfSense 2.1, so possible problem will no be reproduced in the newest version.
-
Good news for those that use this package with eap-tls. Current version now includes certificate revocation list(CRL) on eap Tab.
Once you revoke a client certificate, it will not be able to login anymore. :) -
Hey guys having a funny issue…with freeradius . It doesn't want to seem to start the freeradius daemon?