How to handle multiple NAS's, auth requirements, etc.

John Dennis jdennis at redhat.com
Fri Aug 21 19:47:05 CEST 2009


On 08/21/2009 11:33 AM, Gary Gatten wrote:
> Hello, so for the BASIC question!  First, is there any docs that explain
> the concepts of how all the various pieces of FR tie together? I’ve read
> a bunch of stuff and am making some headway, but some of the
> architecture and process flow still escapes me. If I can gain a better
> understanding of the internals I could probably resolve most of my own
> questions and better contribute to the community as well!
>
> Now, the question:
>
> We have various environments that need to authenticate and authorize
> using FR: VPN connections with something like (if member of “VPNGroup”
> then permit, else deny); vty login to network gear with (if member of
> “NetEngGroup” then permit, else deny); and 802.1x with dynamic VLAN
> assignment. I plan to use ntlm_auth for all of these to hit AD on the
> backend.
>
> The problem I’m having is grasping how I can do this? Do I need separate
> instances of FR? A bunch of “if then/else” clauses somewhere? How does
> FR know what type of auth is required? Am I making this more complicated
> than it really is?

You'll want to assign users into a group. You have a lot of flexibility 
on how you do that. Probably the easiest way to manage things is using a 
SQL backend. You can declare groups and assign users to them in the SQL 
tables. Or you can dynamically decide a user is in a particular group 
based on a variety of factors and insert the group name into the request 
(use unlang for this) so the group test can see it. Or you can put 
someone in a group based on how they're connecting (e.g. from specific 
NAS's), these are called huntgroups. There is a HowTo on the wiki 
explaining how to do this with SQL.

You do not need separate instances of FR.

FR knows what type of auth to perform based on what the client sends and 
how you've set up the authentication section of the config. Basically 
each authentication module in priority order is given a chance to look 
at the request. If the module thinks it has enough information to 
process the request it does so.

-- 
John Dennis <jdennis at redhat.com>

Looking to carve out IT costs?
www.redhat.com/carveoutcosts/



More information about the Freeradius-Users mailing list