rlm_exec use

Doug Hardie bc979 at lafn.org
Wed Mar 19 20:27:03 CET 2008


On Mar 19, 2008, at 11:34, T Kid82 wrote:
>> You have put significant effort into butchering the default
> configuration.  Why?
>
> I got this from the comments in exec-program-wait (which has been
> deprecated) where it explains how to use rlm_exec. It says,
>
> "An entry for the module 'rlm_exec' must be added to the file
> 'radiusd.conf' with the path of the script."
>
> authorize {
> 	...
> 	exec
> 	...
> }
>
> I also added
>
> exec {
>            program = "/usr/local/etc/raddb/authenticate"
> 		wait = yes
> 	        input_pairs = request
> 		output_pairs = reply
>        }
>
> to my radiusd.conf which is also from the comments in exec-program- 
> wait
>
>
>> Why would this let all users through?
> I thought that since I am always returning 3 to the server, that this
> would let all users pass through.
>
>> you didn't set Auth-Type
> Where do I set the Auth-Type. Can you provide a sample code snippet on
> how to do this? Or perhaps a link to the doc.
>
>> If you think this isn't necessary, then you need to spend more time  
>> understanding how the server works.
> I dont know either way. Thats why I decided to mail the list. I have
> looked through quite a bit of documentation but I didnt find much on
> this particular module


Its not obvious what you are really trying to accomplish.  However, I  
suspect you would like to use your own special criteria for  
determining if access should be permitted.  rlm_exec is a very  
inefficent way to do that.  You can make it work, but it will require  
extensive forks and perform rather poorly.  rlm_perl works a whole lot  
better.  However, if you are really concerned about performance, you  
should consider rolling your own module.  There is an example of how  
to do that in the wiki.  That will give you the best performance as  
you will not incur the perl overhead either.

There is a really big difference between authorization and  
authentication modules.  Creating an authorization module is probably  
all you need to do.  Authentication modules require much more than  
just including them in the list of authentication modules.  I  
understand that you also might have to modify the base radiusd code  
for them in addition to creating a module that requires some very  
special structuring.  Freeradius separates the concepts of  
authentication from authorization to relieve you of the details of  
some of the very complex authentication schemes.  Generally all you  
need to deal with is authorization.  If you use the default  
authentication setup, radiusd will figure out which method to use and  
take care of it.

If you are going to make major mods to the configuration, you will  
need to start reading the source code.  There just isn't that much  
documented beyond that.



More information about the Freeradius-Users mailing list