On Sun, Jan 02, 2005 at 10:51:11PM +0100, Nicolas Baradakis wrote:
> Pasi K�rkk�inen wrote:
> 
> > I need to add Post-Proxy-Type based on realm of the proxied
> > request.
> >
> > I can't figure out how to express this with the sql tables:
> > "DEFAULT Realm == "foo.net", Post-Proxy-Type := post.proxy.foo"
> >
> > There's no Realm field in the sql..
> 
> I don't understand why you absolutely want to manage the settings for
> the realm in a SQL database. (although it is possible) The home server
> does SQL requests because it authenticates the users and stores
> accounting tickets, but the proxy usually doesn't do SQL at all.
>

Sorry for a long delay in the answer.

In this case the radius server was acting as both proxy and home server..
for different realms.
 
> Unless you have many realms and they often change and you can't afford
> to add/remove a realm from your configuration without restarting
> radiusd, your proxy doesn't need to do SQL requests. Moreover,
> querying the SQL server for each request costs a big performance
> penalty, therefore you should put the Post-Proxy-Type in the users
> file unless you have good reasons.
> 
> If you really want to add the Post-Proxy-Type attribute from a
> database, below is the main idea of how to do this. (I didn't test
> it and perhaps you'll need some minor changes)
> 
> You change "UserName" by "Realm" in the SQL schema.
> 
> CREATE TABLE radcheck (
>   id int(11) unsigned NOT NULL auto_increment,
>   Realm varchar(64) NOT NULL default '',
>   Attribute varchar(32)  NOT NULL default '',
>   op char(2) NOT NULL DEFAULT '==',
>   Value varchar(253) NOT NULL default '',
>   PRIMARY KEY  (id),
>   KEY UserName (UserName(32))
> ) ;
> 
> Then you insert the Post-Proxy-Type definition in the radcheck table:
> 
> INSERT INTO radcheck (Realm,Attribute,op,Value) VALUES ('foo.net', 
> 'Post-Proxy-Type', '=', 'post.proxy.foo');
> INSERT INTO radcheck (Realm,Attribute,op,Value) VALUES ('bar.com', 
> 'Post-Proxy-Type', '=', 'post.proxy.bar');
> 
> Finally you write the adequate query in sql.conf. (and comment other
> auth queries)
> 
> authorize_check_query = "SELECT id,Realm,Attribute,Value,op FROM radcheck 
> WHERE Realm = '%{Realm}'"
>

That was not possible because I needed the username fields in SQL..

 
> > Could I use rlm_attr_filter to add Post-Proxy-Type? rlm_attr_filter is
> > processed for the proxy replies and you can match realms there.. so it
> > seems like a right place to do this.. I'll try this and see what happens.
> 
> You can't add a check item with this module, so there is no way you
> can set Post-Proxy-Type there. However, perhaps you can try to add the
> Pool-Name attribute in the attrsfile:
> 
> foo.net
>       Pool-Name := "foo_ippool",
>       Fall-Through = Yes
> 
> bar.com
>       Pool-Name := "bar_ippool",
>       Fall-Through = Yes
> 
> DEFAULT
>       Put here all other attributes you need otherwise they'll
>       be removed from the packet
>

This doesn't work.. 

/attrs]:84 WARNING! Check item "Pool-Name" ?found in filter list for realm 
"foo.com"
 
And ip-pool-module later complains that it cannot find Pool-Name in the request.

> This is an alternate approach. It may work, too. And finally you will
> get not one, but two solutions to setup you FreeRADIUS proxy !
> 

Unfortunately either of them do work :(

I'm going to install proxy and home servers on different machines (or at
least on different freeradius server instances) to try to make this work..

Thanks!

-- Pasi K�rkk�inen
       
                                   ^
                                .     .
                                 Linux
                              /    -    \
                             Choice.of.the
                           .Next.Generation.

-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to