Freeradius 3 DHCP server with SQL and 'anty dos' protection, how?
Alan DeKok
aland at deployingradius.com
Tue Jun 25 17:58:59 CEST 2019
On Jun 25, 2019, at 11:11 AM, Kamil de Bardon <kamil at forweb.pl> wrote:
>
> Hello, I configure freeradius to be a unicast dhcp server for working with Cisco ASR.
That's good.
> This is working, but my concern is, if client's mac adres is not in the database, they dhcp client will send dhcp-discovery all the time, and one discovery = one sql query.
>
> Is there any way to prevent that? Some cache or so?
See the cache module:
https://github.com/FreeRADIUS/freeradius-server/blob/v3.0.x/raddb/mods-available/cache
It's not trivial to set up, but it works. Basically:
* set a cache back-end (rbtree is usually good enough)
* configure the "update" section in mods-available/cache to cache the MAC address
* enable the module in mods-enabled
In DHCP discover, when you're rejecting bad users, do:
# cache bad users
update control {
Cache-TTL = 3600 # cache for one hour
}
cache
update reply {
&DHCP-Message-Type = DHCP-Do-Not-Respond
}
reject
# bad users
Then *before* the SQL lookup, do:
# check the cache
update control {
Cache-Status-Only := yes
}
cache
if (ok) {
update reply {
&DHCP-Message-Type = DHCP-Do-Not-Respond
}
reject
}
# check the cache before SQL
That *should* work. I haven't tested it, but the basic idea is there.
Alan DeKok.
More information about the Freeradius-Users
mailing list