mysql radgroupcheck, deny access
Michael Bowe
mbowe at pipeline.com.au
Mon Oct 19 07:39:06 CEST 2009
I had some older Debian 4.0 (etch) servers, with freeradius v1.1.3 installed
from packages.
I then upgraded to Debian 5.0 (lenny), which comes with freeradius v2.0.4
After upgrading I ran into some problems with my radgroupcheck rules.
In radgroupcheck, I have some rules to restrict which NAS users are allowed
to connect to.
Here's an example :
mysql> select * from radcheck where username = 'mbowe-test';
+------+------------+----------------+----+---------------------------------
---+
| id | username | attribute | op | value
|
+------+------------+----------------+----+---------------------------------
---+
| 708 | mbowe-test | Crypt-Password | := | <SNIPPED> |
+------+------------+----------------+----+---------------------------------
---+
mysql> select * from radreply where username = 'mbowe-test';
Empty set (0.00 sec)
mysql> select * from radusergroup where username = 'mbowe-test';
+------------+----------------+----------+
| username | groupname | priority |
+------------+----------------+----------+
| mbowe-test | dialup-freedom | 1 |
+------------+----------------+----------+
mysql> select * from radgroupcheck where groupname = 'dialup-freedom';
+----+----------------+------------------+----+-----------------------------
+
| id | groupname | attribute | op | value
|
+----+----------------+------------------+----+-----------------------------
+
| 3 | dialup-freedom | NAS-IP-Address | !~ | ^111.222.333.(1|2|3|4|5|6)$
|
| 4 | dialup-freedom | Simultaneous-Use | := | 1
|
+----+----------------+------------------+----+-----------------------------
+
mysql> select * from radgroupreply where groupname = 'dialup-freedom';
+----+----------------+--------------------+----+---------------------+
| id | groupname | attribute | op | value |
+----+----------------+--------------------+----+---------------------+
| 9 | dialup-freedom | Service-Type | := | Framed-User |
| 10 | dialup-freedom | Framed-Protocol | := | PPP |
| 11 | dialup-freedom | Framed-IP-Address | = | 255.255.255.254 |
| 12 | dialup-freedom | Framed-IP-Netmask | := | 255.255.255.255 |
| 13 | dialup-freedom | Framed-Compression | := | Van-Jacobson-TCP-IP |
| 14 | dialup-freedom | Idle-Timeout | := | 1800 |
| 15 | dialup-freedom | Session-Timeout | := | 14400 |
| 16 | dialup-freedom | Port-Limit | := | 1 |
+----+----------------+--------------------+----+---------------------+
Under the older freeradius, if the mbowe-test user tried to connect to a NAS
with IP 111.222.333.1|2|3|4|5|6 then their access would be rejected.
However under the newer freeradius, the user can now get online OK. (The
group doesn't match so the 'dialup-freedom' attributes are not returned)
In my sql.conf I have read_groups = yes
I tried installing the freeradius 2.1.7 from source, and it gives the same
result as the 2.0.4 from packages (user can get online).
Am I doing something wrong? Let me know if you would like me to paste some
debugs.
Michael.
More information about the Freeradius-Users
mailing list