NEW Package: freeRADIUS 2.x
-
in freeradius2,
can i form groups and add users into groups and create groups rules? :D
and how to bind user to mac address? -
in freeradius2,
can i form groups and add users into groups and create groups rules? :D
This isn't possible from GUI at the moment. And I don't know if groups can be build without any SQL database. In SQL you can create a group and put users into this group.
Then you can add the following as "Additional RADIUS Attributes on the TOP of this entry":
DEFAULT Group == "disabled", Auth-Type := Reject
DEFAULT Group == "disabled": matches all users in the group "disabled"
Auth-Type := Reject: sets auth-type to reject and so rejects all users in this group.
You can work with:Fall-Through = yes
If other attributes should be assigned like VLAN and so on. But this isn't easy to handle from GUI so it would be perhaps easier to configure all attributes for every user.
http://wiki.freeradius.org/FAQ#How+do+I+deny+access+to+a+specific+user%2C+or+group+of+users%3F
-
coming back to AD with PAP
for me it is only one thing to change against webgui:
/usr/local/etc/raddb/sites-enabled/default:authenticate
{
Auth-Type LDAP {
ldap
}
} -
coming back to AD with PAP
for me it is only one thing to change against webgui:
/usr/local/etc/raddb/sites-enabled/default:authenticate
{
Auth-Type LDAP {
ldap
}
}I am not familar with AD or LDAP so perhaps it is possible for you to give the example - using the pfsense web GUI (Screenshot) or something else how you configured it for your domain :P
So that we know what you filled out for "Base DN" and so on ::)PS: Which samba package do we need ? Which version ? Link to freebsd ftp ?
I am thinking about to make a possibility to install samba and configure it this was but not installing samba by default when installing freeradius2 package. -
Hi Nachtfalke,
I am using the pfSense on an embedded device (ALIX board).
After system boot the file system (/) is mounted as read only.
When starting the freeradius server it reports following error mesages:Jan 26 20:38:50 radiusd[53305]: /usr/local/etc/raddb/modules/counter[71]: Instantiation failed for module "daily"
Jan 26 20:38:50 radiusd[53305]: /usr/local/etc/raddb/modules/counter[71]: Instantiation failed for module "daily"
Jan 26 20:38:50 radiusd[53305]: rlm_counter: Failed to open file /usr/local/etc/raddb/db.daily: Read-only file system
Jan 26 20:38:50 radiusd[53305]: rlm_counter: Failed to open file /usr/local/etc/raddb/db.daily: Read-only file systemDo you think it is possible to locate these file within the /var/.. or /tmp/… folder.
These folders are RAM drives (/dev/md[0|1]) which are mounted as read-write after system boot.
Could you be so kind to locate also other runtime/temporal files in these folders?Thanks a lot & best wishes
Hermel -
Hi Nachtfalke,
I am using the pfSense on an embedded device (ALIX board).
After system boot the file system (/) is mounted as read only.
When starting the freeradius server it reports following error mesages:Jan 26 20:38:50 radiusd[53305]: /usr/local/etc/raddb/modules/counter[71]: Instantiation failed for module "daily"
Jan 26 20:38:50 radiusd[53305]: /usr/local/etc/raddb/modules/counter[71]: Instantiation failed for module "daily"
Jan 26 20:38:50 radiusd[53305]: rlm_counter: Failed to open file /usr/local/etc/raddb/db.daily: Read-only file system
Jan 26 20:38:50 radiusd[53305]: rlm_counter: Failed to open file /usr/local/etc/raddb/db.daily: Read-only file systemDo you think it is possible to locate these file within the /var/.. or /tmp/… folder.
These folders are RAM drives (/dev/md[0|1]) which are mounted as read-write after system boot.
Could you be so kind to locate also other runtime/temporal files in these folders?Thanks a lot & best wishes
HermelHi Hermel,
I am not using an embedded device. Do you know if it is possible to installe pfsense embedded in a VM ?
If there is a way to virtualize this than I could spent some time on doing and testing this. Don't know how much work this will be.The "db.daily" is a database and needs to be persistent after a reboot.
You can test and edit freeradius.inc starting at line 2544 - 2674:
/usr/local/pkg/freeradius.inc
original:
counter daily { filename = \${raddbdir}/db.daily key = User-Name count-attribute = Acct-Session-Time reset = daily counter-name = Daily-Session-Time check-name = Max-Daily-Session reply-name = Session-Timeout cache-size = 5000 } counter weekly { filename = \${raddbdir}/db.weekly key = User-Name count-attribute = Acct-Session-Time reset = weekly counter-name = Weekly-Session-Time check-name = Max-Weekly-Session reply-name = Session-Timeout cache-size = 5000 } counter monthly { filename = \${raddbdir}/db.monthly key = User-Name count-attribute = Acct-Session-Time reset = monthly counter-name = Monthly-Session-Time check-name = Max-Monthly-Session reply-name = Session-Timeout cache-size = 5000 } counter forever { filename = \${raddbdir}/db.forever key = User-Name count-attribute = Acct-Session-Time reset = never counter-name = Forever-Session-Time check-name = Max-Forever-Session reply-name = Session-Timeout cache-size = 5000 } counter maxdailyupload { filename = \${raddbdir}/db.maxdailyupload key = User-Name count-attribute = Acct-Input-Octets reset = daily counter-name = Daily-Input-Octets check-name = Max-Daily-Input reply-name = Acct-Input-Octets cache-size = 5000 } counter maxdailydownload { filename = \${raddbdir}/db.maxdailydownload key = User-Name count-attribute = Acct-Output-Octets reset = daily counter-name = Daily-Output-Octets check-name = Max-Daily-Output reply-name = Acct-Output-Octets cache-size = 5000 } counter maxweeklyupload { filename = \${raddbdir}/db.maxweeklyupload key = User-Name count-attribute = Acct-Input-Octets reset = weekly counter-name = Weekly-Input-Octets check-name = Max-Weekly-Input reply-name = Acct-Input-Octets cache-size = 5000 } counter maxweeklydownload { filename = \${raddbdir}/db.maxweeklydownload key = User-Name count-attribute = Acct-Output-Octets reset = weekly counter-name = Weekly-Output-Octets check-name = Max-Weekly-Output reply-name = Acct-Output-Octets cache-size = 5000 } counter maxmonthlyupload { filename = \${raddbdir}/db.maxmonthlyupload key = User-Name count-attribute = Acct-Input-Octets reset = monthly counter-name = Monthly-Input-Octets check-name = Max-Monthly-Input reply-name = Acct-Input-Octets cache-size = 5000 } counter maxmonthlydownload { filename = \${raddbdir}/db.maxmonthlydownload key = User-Name count-attribute = Acct-Output-Octets reset = monthly counter-name = Monthly-Output-Octets check-name = Max-Monthly-Output reply-name = Acct-Output-Octets cache-size = 5000 } counter maxupload { filename = \${raddbdir}/db.maxforeverupload key = User-Name count-attribute = Acct-Input-Octets reset = never counter-name = Forever-Input-Octets check-name = Max-Forever-Input reply-name = Acct-Input-Octets cache-size = 5000 } counter maxdownload { filename = \${raddbdir}/db.maxforeverdownload key = User-Name count-attribute = Acct-Output-Octets reset = never counter-name = Forever-Output-Octets check-name = Max-Forever-Output reply-name = Acct-Output-Octets cache-size = 5000 }
this will save the db.daily and the other dbs in /tmp
counter daily { filename = /tmp/db.daily key = User-Name count-attribute = Acct-Session-Time reset = daily counter-name = Daily-Session-Time check-name = Max-Daily-Session reply-name = Session-Timeout cache-size = 5000 } counter weekly { filename = /tmp/db.weekly key = User-Name count-attribute = Acct-Session-Time reset = weekly counter-name = Weekly-Session-Time check-name = Max-Weekly-Session reply-name = Session-Timeout cache-size = 5000 } counter monthly { filename = /tmp/db.monthly key = User-Name count-attribute = Acct-Session-Time reset = monthly counter-name = Monthly-Session-Time check-name = Max-Monthly-Session reply-name = Session-Timeout cache-size = 5000 } counter forever { filename = /tmp/db.forever key = User-Name count-attribute = Acct-Session-Time reset = never counter-name = Forever-Session-Time check-name = Max-Forever-Session reply-name = Session-Timeout cache-size = 5000 } counter maxdailyupload { filename = /tmp/db.maxdailyupload key = User-Name count-attribute = Acct-Input-Octets reset = daily counter-name = Daily-Input-Octets check-name = Max-Daily-Input reply-name = Acct-Input-Octets cache-size = 5000 } counter maxdailydownload { filename = /tmp/db.maxdailydownload key = User-Name count-attribute = Acct-Output-Octets reset = daily counter-name = Daily-Output-Octets check-name = Max-Daily-Output reply-name = Acct-Output-Octets cache-size = 5000 } counter maxweeklyupload { filename = /tmp/db.maxweeklyupload key = User-Name count-attribute = Acct-Input-Octets reset = weekly counter-name = Weekly-Input-Octets check-name = Max-Weekly-Input reply-name = Acct-Input-Octets cache-size = 5000 } counter maxweeklydownload { filename = /tmp/db.maxweeklydownload key = User-Name count-attribute = Acct-Output-Octets reset = weekly counter-name = Weekly-Output-Octets check-name = Max-Weekly-Output reply-name = Acct-Output-Octets cache-size = 5000 } counter maxmonthlyupload { filename = /tmp/db.maxmonthlyupload key = User-Name count-attribute = Acct-Input-Octets reset = monthly counter-name = Monthly-Input-Octets check-name = Max-Monthly-Input reply-name = Acct-Input-Octets cache-size = 5000 } counter maxmonthlydownload { filename = /tmp/db.maxmonthlydownload key = User-Name count-attribute = Acct-Output-Octets reset = monthly counter-name = Monthly-Output-Octets check-name = Max-Monthly-Output reply-name = Acct-Output-Octets cache-size = 5000 } counter maxupload { filename = /tmp/db.maxforeverupload key = User-Name count-attribute = Acct-Input-Octets reset = never counter-name = Forever-Input-Octets check-name = Max-Forever-Input reply-name = Acct-Input-Octets cache-size = 5000 } counter maxdownload { filename = /tmp/db.maxforeverdownload key = User-Name count-attribute = Acct-Output-Octets reset = never counter-name = Forever-Output-Octets check-name = Max-Forever-Output reply-name = Acct-Output-Octets cache-size = 5000 }
Give it a try.
-
i want to limit bandwith for one user, I enter bandwith limit(upload&downlaod) for
user account but it isnt working, I tried also for MAC address but it dont work, do I
have to enable some rule or? -
Hi Nachtfalke,
I have tested the changes you proposed and after a reboot, the server has the status "running"
But root (/) is not mounted as read only.
I currently do not know why.
The only log entries which could relate on this topic are:Jan 27 00:55:32 php: : freeRADIUS: Switched to pfSense Cert-Manager. Creating new DH and random file in /usr/local/etc/raddb/certs
Jan 27 00:55:29 php: : FreeRADIUS: Restoring the original file from /usr/local/etc/raddb/policy.conf.backup and /usr/local/etc/raddb/files.backup
Jan 27 00:55:28 php: : FreeRADIUS: Restoring the original file from /usr/local/etc/raddb/policy.conf.backup and /usr/local/etc/raddb/files.backupBut today it is too late to make a more detailed analysis and at the weekend I will not be at home, thus I have to shift this topic to next week.
However finally I would like to reply to your comments/questions:
I am not using an embedded device. Do you know if it is possible to installe pfsense embedded in a VM ?
So far as I know this is not possible.The "db.daily" is a database and needs to be persistent after a reboot.
Well if my understanding is corret, then the files have to be stored at shutdown and restored at boot.
This may be quite complex … I am open minded to support you at the development - also if I do not have too much time.Have a good time
Hermel -
Updates pkg v1.5.6:
-
fixed: a bug when the shortname of a NAS contains whitespace(s).
-
Updated FreeRADIUS 2.x package documentation (FreeRADIUS + CaptivePortal - hints)
================================================================
@Hermel:Hi Nachtfalke,
I have tested the changes you proposed and after a reboot, the server has the status "running"
But root (/) is not mounted as read only.
I currently do not know why.
The only log entries which could relate on this topic are:Jan 27 00:55:32 php: : freeRADIUS: Switched to pfSense Cert-Manager. Creating new DH and random file in /usr/local/etc/raddb/certs
Jan 27 00:55:29 php: : FreeRADIUS: Restoring the original file from /usr/local/etc/raddb/policy.conf.backup and /usr/local/etc/raddb/files.backup
Jan 27 00:55:28 php: : FreeRADIUS: Restoring the original file from /usr/local/etc/raddb/policy.conf.backup and /usr/local/etc/raddb/files.backupBut today it is too late to make a more detailed analysis and at the weekend I will not be at home, thus I have to shift this topic to next week.
However finally I would like to reply to your comments/questions:
I am not using an embedded device. Do you know if it is possible to installe pfsense embedded in a VM ?
So far as I know this is not possible.The "db.daily" is a database and needs to be persistent after a reboot.
Well if my understanding is corret, then the files have to be stored at shutdown and restored at boot.
This may be quite complex … I am open minded to support you at the development - also if I do not have too much time.Have a good time
HermelHi Hermel,
Jan 27 00:55:32 php: : freeRADIUS: Switched to pfSense Cert-Manager. Creating new DH and random file in /usr/local/etc/raddb/certs
This error ist related on the certificates which are located in /usr/local/etc/raddb/certs/
So it wouldn't be possible to create and import new certs to freeradius2 because the directory is write-protected. We only need write access if we store there the new certs after this it is ok for "read-only". I think I can fix this idependent from pfsense version (embedded or install).Jan 27 00:55:29 php: : FreeRADIUS: Restoring the original file from /usr/local/etc/raddb/policy.conf.backup and /usr/local/etc/raddb/files.backup Jan 27 00:55:28 php: : FreeRADIUS: Restoring the original file from /usr/local/etc/raddb/policy.conf.backup and /usr/local/etc/raddb/files.backup
This error is related to the fact that you can switch between the "normal" 802.1X auth (default) or the possibility to enable "Plain-MAC-Auth" in "Settings". I made this because I do not know if there are site-effects when enabling this but as far as I can see that there is no problem. So there shouldn't be a problem for embedded devices.
On weekend I will give thought to this and try to find a solution.
But the basic features of freeradius2 should work so give it some more tests if you found time and post problems.
i want to limit bandwith for one user, I enter bandwith limit(upload&downlaod) for
user account but it isnt working, I tried also for MAC address but it dont work, do I
have to enable some rule or?Bandwidth-Limit needs - as most of the settings - support of your NAS. The NAS can be your switch, access-point or pfSense Captive Portal.
The attributes the NAS must understand are the following:WISPr-Bandwidth-Max-Up WISPr-Bandwidth-Max-Down
Check your NAS documentation or post the NAS then we perhaps can find out how to handle this.
When using Captive Portal on pfSense then take a look here:
http://doc.pfsense.org/index.php/FreeRADIUS_2.x_package#Amount_of_Bandwidth -
-
i want to limit bandwith for one user, I enter bandwith limit(upload&downlaod) for
user account but it isnt working, I tried also for MAC address but it dont work, do I
have to enable some rule or?Bandwidth-Limit needs - as most of the settings - support of your NAS. The NAS can be your switch, access-point or pfSense Captive Portal.
The attributes the NAS must understand are the following:WISPr-Bandwidth-Max-Up WISPr-Bandwidth-Max-Down
Check your NAS documentation or post the NAS then we perhaps can find out how to handle this.
When using Captive Portal on pfSense then take a look here:
http://doc.pfsense.org/index.php/FreeRADIUS_2.x_package#Amount_of_Bandwidthhm, do I have to put just this in CP index?
count-attribute = WISPr-Bandwidth-Max-Down
count-attribute = WISPr-Bandwidth-Max-Upthis is my index code
<title>Welcome to network</title> <form method="post" action="$PORTAL_ACTION$"> **![](captiveportal-header.png) ![](captiveportal-network_logo.png)** Welcome to network wirelless. Username i password "free" Username i passwordticket / Voucher **Username** **Password** **Ticket / Voucher** for assistence write to: [network@mail.com](mailto:network@mail.com) ![](captiveportal-ios_ikone.png) ![](captiveportal-Centar.png) network © 2012 ł Design by networkł Powered by pfSense </form>
-
The attributes in my documentation are only to show which attributes are needed for this to work. If the NAS does not support these attributes than bandwidth limit will not work. But Captive Portal can do this.
What you have to do is:
Go to:
SERVICES => CAPTIVE PORTAL
scroll down and enable "Per-user bandwidth restriction"
leave bothe fields empty (so all users have unlimited bandwidth).Go to:
SERVICES => FreeRADIUS => USERS
there you create all users you want. For the one user you want to limit its bandwidth scroll down to:
"Maximum Download Bandwidth" and "Maximum Upload Bandwidth".
There you have to enter the bandwidth limit for the user.
Important: You have to enter "BIT per second"….8Bit = 1Byte and 1024Byte = 1KilobyteAfter you have changed bandwidth limits for a user AND this user is connected while you changed the settings than the will not take effect. So make sure that you disconnect the user after you made changes so that the user needs to reconnect.
PS: Not sure if it works 100% because there seems to be a bug in CP and/or ipfw which counts sometimes different. For example when using "Amount of traffic" then if in real 1MB passes CP than CP sends back 6MB to the RADIUS server.
So do some tests and try to find out how it works.
-
I've done all you saied ant got this with radtest:
$ radtest test test 172.16.0.1:1812 0 ldskfjldskdfjslkf4
Sending Access-Request of id 16 to 172.16.0.1 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 172.16.0.1
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 172.16.0.1 port 1812, id=16, length=44
WISPr-Bandwidth-Max-Up = 81920
WISPr-Bandwidth-Max-Down = 819200is that OK?
-
I've done all you saied ant got this with radtest:
$ radtest test test 172.16.0.1:1812 0 ldskfjldskdfjslkf4
Sending Access-Request of id 16 to 172.16.0.1 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 172.16.0.1
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 172.16.0.1 port 1812, id=16, length=44
WISPr-Bandwidth-Max-Up = 81920
WISPr-Bandwidth-Max-Down = 819200is that OK?
Yes it is.
-
Updates pkg v1.5.7:
-
Added: checks for CA, certs when using EAP-TLS
-
Added: ability to export certs in .p12 format which can be used on windows systems when using EAP-TLS
-
Fixed: a bug when NAS shortname contains whitespace(s)
-
I will update FreeRADIUS 2.x package documentation: How-to for EAP-TLS (LAN), EAP-PEAP (LAN), match common name, match issuer
-
-
Hi Nachtfalke,
I've received a patch from freeradius maintainer to compile it with heimdal instead of krb5.
I'll test compiling it but as usual I need help on testing.
:)
-
Hi Nachtfalke,
I've received a patch from freeradius mainteinet to compile it with heimdal instead of krb5.
I'll test compiling it but as usual I need help on testing.
:)
Of course I'll do that :)
But help me - I forgot it - what will heimdal improve/change instead of using kerberos ? ???
-
what will heimdal improve/change instead of using kerberos ? ???
Some pages ago, to get kerberos working, we need to force heimdal(A popular BSD-licensed implementation of Kerberos 5) package install.
-
The issue about VM is not woking with CP. I think I had found a solution here.
In the past, VM is running a Debian and I assigned the IP in manual.
allow-hotplug eth0 iface eth0 inet static address 192.168.1.25 netmask 255.255.255.0 gateway 192.168.1.1
Today, I tired to let Debian get the IP from PF's DHCP and then add its MAC to pass list.
auto lo eth0 iface lo inet loopback iface eth0 inet dhcp
Then it works. Both the host and VM can access the Internet without any trouble.
I will do some further testing later and post the result here.
;) -
Thanky for feedback and nice to hear that :D
But we both thought that it probably would be a problem of VMware/interfaces and not directly CP and/or freeradius2. -
Updates pkg v1.5.8:
-
Added: option to disable weak EAP types for authentication
-
Added: some checks if it is really neccessary to create new DH and random file
-
Fixed: description in EAP
-