TLS configuration
Matthew Newton
mcn4 at leicester.ac.uk
Tue Feb 28 03:33:00 CET 2012
Hi,
On Thu, Feb 09, 2012 at 04:42:31PM +0100, Alan DeKok wrote:
> Matthew Newton wrote:
> > If the tls config HAS to be called common_tls, inside the eap
> > module, then there's no need for the "tls=" entry any more - which
> > could be another way of doing it, albeit slightly less flexible.
>
> There may be use-cases where multiple virtual servers can share the
> same TLS configuration. Permitting a layer of indirection doesn't cost
> much, and is useful.
I've been a bit busy with other things, but have now got around to
doing this. There's a branch at the following URL with a set of
patches to do it.
https://github.com/mcnewton/freeradius-server/commits/patch-tls-option
Essentially they follow your helpful suggestions in the previous
e-mail. It's something like:
- Rejig config and eaptls_attach to move TLS specific options out
from EAP-TLS section
- update eaptls_initiate to just deal with EAP-TLS, moving
session code to libeap
- Add TLS config parsing to EAP-PEAP attach
- add an eappeap_initiate function
- ditto for EAP-TTLS
- remove the "Wild & crazy stuff" from eap.c :-)
- tidy the config a bit and add explanatory comments.
The code also has a fallback, so if the new tls= options are not
specified it will read the config as v2.x currently does (e.g.
tls{} must exist before peap and ttls will load).
There are still a few tiny bits that are duplicated between
TLS/PEAP/TTLS, but it's a close call whether these are worth
putting into some library function, or just leaving as-is for
clarity.
This lot now means that there should be no dependencies between
PEAP/TTLS and TLS, so they each stand on their own. I think from
the config perspective, it's also a lot cleaner as it's removed
the dependency where you need EAP-TLS, even though you don't
use it. It's tidied some switch()/if()s from the code, too.
> >> The HARD thing about this is now the TLS configuration will be loaded
> >> multiple times. Once each for EAP-TLS, TTLS, and PEAP. Finding a way
> >> to avoid that would be good.
> >
> > Agreed.
>
> I have a simple way. :) Get me a patch as suggested, and fixing the
> "loading certs twice" problem is another ~5 lines of code.
I did this by caching the result in tls_server_conf_parse - if
it's passed the same CONF_SECTION as the previous time, it returns
the same conf pointer. As the EAP sections are pretty much always
going to be called consecutively, this saves re-parsing each time.
It was about 5 lines of code - dunno if it was what you were
thinking or not ;-)
Cheers,
Matthew
--
Matthew Newton, Ph.D. <mcn4 at le.ac.uk>
Systems Architect (UNIX and Networks), Network Services,
I.T. Services, University of Leicester, Leicester LE1 7RH, United Kingdom
For IT help contact helpdesk extn. 2253, <ithelp at le.ac.uk>
More information about the Freeradius-Devel
mailing list