I've heared openradius can do that. But I don't know much about it.
-- -----BEGIN GEEK CODE BLOCK-----
Version: 3.1 GCS d(-) s:- a--- C++(+++)$>++++$ UL$>++++$ P+? L++$>$ !E--- W++ !N !o !K-- w !O M !V PS PE !Y PGP t 5 X R tv b DI D G e h r y ------END GEEK CODE BLOCK------