(RADIATOR) PreProcessingHook to bypass further processing

Hugh Irvine hugh at open.com.au
Tue Feb 10 20:53:20 CST 2004


Hello Kwang -

Yes I think what you show below should work.

Of course you will need to test it thoroughly to verify correct 
operation.

BTW - you can specify multiple check items and use regular expressions 
in Handlers:

<Handler SomeThing = /some_regexp/, AnotherThing = /anotherregexp/, 
.....>
	....
</Handler>

regards

Hugh


On 11 Feb 2004, at 11:13, Kwang Moon wrote:

> Hi Hugh,
>
> Yes I had thought about using an AuthBy INTERNAL clause, but with a
> RequestHook but wasn't sure if what I wanted to do would work.  What 
> do you
> think:
>
> <AuthBy INTERNAL>
>    Identifier IntAuth
>    RequestHook file: "reqhook.pl"
>    DefaultResult ACCEPT
> <\AuthBy>
>
> <AddressAllocator SQL>
>    Identifier AddrAlloc
>    ...
> <\AddressAllocator>
>
> <AuthBy DYNADDRESS>
>    Identifier DynAddrAuth
>    AddressAllocator AddrAlloc
>    PoolHint %N-%{NAS-Identifier}
>    ...
> <\AuthBy>
>
> <Handler Request-Type=Access-Request>
>    AuthByPolicy ContinueUntilReject
>    AuthBy IntAuth
>    AuthBy DynAddrAuth
>    ...
> <\Handler>
>
> reqhook.pl would look something like this:
> Sub {
>    do something
>    $somevar = ({$_[0]}->get_attr('some attribute');
>    if $($somevar eq 'aaa')  {
>       $({$_[0]}->add_attr('PoolHint', $somevar);
>       return $main::ACCEPT;
>    } else if $($somevar eq 'bbb')  {
>       $({$_[0]}->add_attr('PoolHint', $somevar);
>       return $main::ACCEPT;
>    } else {
>       return $main::REJECT;
>    }
> }
>
> So based on the above, if I returned an ACCEPT in the hook, would the 
> next
> AuthBy clause be invoked (in accordance to the AuthByPolicy), and 
> similary
> if I returned a REJECT, then would an Access-Reject be sent to the 
> client
> without the next AuthBy clause being invoked?
>
> As for the default handler you mentioned - we can't really use this as 
> we
> use the handler check item value as a variable to the PoolHint, so we 
> need
> to be certain that it's correct (ie not misspelt, missing etc.)  If the
> above config works, then it will acheive the same result, albeit in a 
> not so
> friendly way.  That's why a feature like that of IdenticalClients, but 
> for a
> handler would be really useful.
>
>
> Cheers,
> Kwang
>
>
>
>
> ----- Original Message -----
> From: "Hugh Irvine" <hugh at open.com.au>
> To: "Kwang Moon" <kwang.moon at O2.com>
> Cc: <radiator at open.com.au>
> Sent: Tuesday, February 10, 2004 10:02 PM
> Subject: Re: (RADIATOR) PreProcessingHook to bypass further processing
>
>
>>
>> Hello Kwang -
>>
>> The usual way to do what you describe is to use an AuthBy INTERNAL
>> clause followed by a PostAuthHook.
>>
>> For your question about Handlers, it is more usual to specify a final
>> <Handler> to catch "everything else".
>>
>> # deal with something specific
>>
>> <Handler ......>
>> .....
>> </Handler>
>>
>> # deal with everything else
>>
>> <Handler>
>> .....
>> </Handler>
>>
>>
>> regards
>>
>> Hugh
>>
>>
>> On 11 Feb 2004, at 01:57, Kwang Moon wrote:
>>
>>> Hi,
>>>
>>> Does anyone know if it's possible to carry out some checks in a
>>> PreProcessingHook, and based on the results to immediately halt the
>>> handling
>>> process and send back a $main::REJECT to the client?
>>>
>>> The reason I want to do this is because I have heaps of handlers (all
>>> pretty
>>> much doing the same thing), the only difference being the handler 
>>> check
>>> item.  So, what I want to do is create one handler to deal with say
>>> Access-Request packets and then verify the check item within the say 
>>> a
>>> PreProcessingHook (ie if it doesn't match then somehow send a reject
>>> immediately without further processing, and if it passes then 
>>> continue
>>> with
>>> hook and return back to the handler).
>>>
>>> There was a posting earlier last year:
>>> http://www.open.com.au/archives/radiator/2003-05/msg00147.html
>>> asking a very similar question, however, there didn't appear to be a
>>> resolution.
>>>
>>> If this is not possible, then (a question to Mike or Hugh) what's the
>>> likelihood of getting a feature added to the handler clause similar 
>>> to
>>> the
>>> IdenticalClients.  It could look something like:
>>> IdenticalHandlers <attribute=value, attribute=value, ...>
>>>
>>>
>>> Cheers,
>>> Kwang
>>>
>>>
>>>
>>> ===
>>> Archive at http://www.open.com.au/archives/radiator/
>>> Announcements on radiator-announce at open.com.au
>>> To unsubscribe, email 'majordomo at open.com.au' with
>>> 'unsubscribe radiator' in the body of the message.
>>>
>>>
>>
>> NB: have you included a copy of your configuration file (no secrets),
>> together with a trace 4 debug showing what is happening?
>>
>> -- 
>> Radiator: the most portable, flexible and configurable RADIUS server
>> anywhere. Available on *NIX, *BSD, Windows, MacOS X.
>> -
>> Nets: internetwork inventory and management - graphical, extensible,
>> flexible with hardware, software, platform and database independence.
>> -
>> CATool: Private Certificate Authority for Unix and Unix-like systems.
>>
>
> ===
> Archive at http://www.open.com.au/archives/radiator/
> Announcements on radiator-announce at open.com.au
> To unsubscribe, email 'majordomo at open.com.au' with
> 'unsubscribe radiator' in the body of the message.
>
>

NB: have you included a copy of your configuration file (no secrets),
together with a trace 4 debug showing what is happening?

-- 
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows, MacOS X.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.
-
CATool: Private Certificate Authority for Unix and Unix-like systems.

===
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.


More information about the radiator mailing list