Press Releases

30 September 2011 - Version 2.1.12 has been released.

The focus of this release is stability.

Feature improvements

  • Updates to dictionary.erx, dictionary.siemens, dictionary.starent, dictionary.starent.vsa1, dictionary.zyxel, added dictionary.symbol
  • Added support for PCRE from Phil Mayers
  • Configurable file permission in rlm_linelog
  • Added "relaxed" option to rlm_attr_filter. This copies attributes if at least one match occurred.
  • Added documentation on dynamic clients. See raddb/modules/dynamic_clients.
  • Added support for elliptical curve cryptography. See ecdh_curve in raddb/eap.conf.
  • Added support for 802.1X MIBs in checkrad
  • Added support for %{rand:...}, which generates a uniformly distributed number between 0 and the number you specify.
  • Created "man" pages for all installed commands, and documented options for all commands. Patch from John Dennis.
  • Allow radsniff to decode encrypted VSAs and CoA packets. Patch from Bjorn Mork.
  • Always send Message-Authenticator in radtest. Patch from John Dennis. radclient continues to be more flexible.
  • Updated Oracle schema and queries
  • Added SecurID module. See src/modules/rlm_securid/README

Bug fixes

  • Fix memory leak in rlm_detail
  • Fix "failed to insert event"
  • Allow virtual servers to be reloaded on HUP. It no longer complains about duplicate virtual servers.
  • Fix %{string:...} expansion
  • Fix "server closed socket" loop in radmin
  • Set ownership of control socket when starting up
  • Always allow root to connect to control socket, even if "uid" is set. They're root. They can already do anything.
  • Save all attributes in Access-Accept when proxying inner-tunnel EAP-MSCHAPv2
  • Fixes for DHCP relaying.
  • Check certificate validity when using OCSP.
  • Updated Oracle "configure" script
  • Fixed typos in dictionary.alvarion
  • WARNING on potential proxy loop.
  • Be more aggressive about clearing old requests from the internal queue
  • Don't open network sockets when using -C

20 June 2011 - Version 2.1.11 has been released.

The focus of this release is stability.

Feature improvements

  • Added doc/rfc/rfc6158.txt: RADIUS Design Guidelines. All vendors need to read it and follow its directions.
  • Microsoft SoH support for PEAP from Phil Mayers. See doc/SoH.txt
  • Certificate "bootstrap" script now checks for certificate expiry. See comments in raddb/eap.conf, and then "make_cert_command".
  • Support for dynamic expansion of EAP-GTC challenges. Patch from Alexander Clouter.
  • OCSP support from Alex Bergmann. See raddb/eap.conf, "ocsp" section.
  • Updated dictionary.huawei, dictionary.3gpp, dictionary.3gpp3.
  • Added dictionary.eltex, dictionary.motorola, and dictionary.ukerna.
  • Experimental redis support from Gabriel Blanchard. See raddb/modules/redis and raddb/modules/rediswho
  • Add "key" to rlm_fastusers. Closes bug #126.
  • Added scripts/radtee from original software at http://horde.net/~jwm/software/misc/comparison-tee
  • Updated radmin "man" page for new commands.
  • radsniff now prints the hex decoding of the packet (-x -x -x)
  • mschap module now reloads its configuration on HUP
  • Added experimental "replicate" module. See raddb/modules/replicate
  • Policy "foo" can now refer to module "foo". This lets you over-ride the behavior of a module.
  • Policy "foo.authorize" can now over-ride the behavior of module "foo", "authorize" method.
  • Produce errors in more situations when the configuration files have invalid syntax.

Bug fixes

  • Ignore pre/post-proxy sections if proxying is disabled.
  • Add configure checks for pcap_fopen*.
  • Fix call to otp_write in rlm_otp
  • Fix issue with Access-Challenge checking from 2.1.10, when the debug flag was set after server startup. Closes #116 and #117.
  • Fix typo in zombie period start time.
  • Fix leak in src/main/valuepair.c. Patch from James Ballantine.
  • Allow radtest to use spaces in shared secret. Patch from Cedric Carree.
  • Remove extra calls to HMAC_CTX_init() in rlm_wimax, fixing leak. Patch from James Ballantine.
  • Remove MN-FA key generation. The NAS does this, not AAA. Patch from Ben Weichman.
  • Include dictionary.mikrotik by default. Closes bug #121.
  • Add group membership query to MS-SQL examples. Closes bug #120.
  • Don't cast NAS-Port to integer in Postgresql queries. Closes bug #112.
  • Fixes for libtool and autoconf from Sam Hartman.
  • radsniff should read the dictionaries in more situations.
  • Use fnmatch to check for detail file reader==writer. Closes bug #128.
  • Check for short writes (i.e. disk full) in rlm_detail. Closes bug #130. Patches and testing from John Morrissey.
  • Fix typo in src/lib/token.c. Closes bug #124
  • Allow workstation trust accounts to use MS-CHAP. Closes bug #123.
  • Assigning foo=`/bin/echo hello` now produces a syntax error if it is done outside of an "update" section.
  • Fix "too many open file descriptors" problem when using "verify client" in eap.conf.
  • Many fixes to dialup_admin for PHP5, by Stefan Winter.
  • Allow preprocess module to have "hints = " and "huntgroups =", which allows them to be empty or non-existent.
  • Renamed "php3" files to "php" in dialup_admin/
  • Produce error when sub-TLVs are used in a dictionary. They are supported only in the "master" branch, and not in 2.1.x.
  • Minor fix in dictionary.redback. Closes bug #138.
  • Fixed MySQL "NULL" issues in ippool.conf. Closes bug #129.
  • Fix to Access-Challenge warning from Ken-ichirou Matsuzawa. Closes bug #118.
  • DHCP fixes to send unicast packets in more situations.
  • Fix to udpfromto, to enable it to work on IPv6 networks.
  • Fixes to the Oracle accounting_onoff_query.
  • When using both IPv4 and IPv6 home servers, ensure that we use the correct local socket for proxying. Closes bug #143.
  • Suppress messages when thread pool is nearly full, all threads are busy, and we can't create new threads.
  • IPv6 is now enabled for udpfromto. Closes bug #141
  • Make sqlippool query buffer the same size as sql module. Closes bug #139.
  • Make Coa / Disconnect proxying work again.
  • Configure scripts for rlm_caching from Nathaniel McCallum
  • src/lib/dhcp.c and src/include/libradius.h are LGPL, not GPL.
  • Updated password routines to use time-insensitive comparisons. This prevents timing attacks (though none are known).
  • Allow sqlite module to do normal SELECT queries.
  • rlm_wimax now has a configure script
  • Moved Ascend, USR, and Motorola "illegal" dictionaries to separate files. See share/dictionary for explanations.
  • Check for duplicate module definitions in the modules{} section, and refuse to start if duplicates are found.
  • Check for duplicate virtual servers, and refuse to start if duplicates are found.
  • Don't use udpfromto if source is INADDR_ANY. Closes bug #148.
  • Check pre-conditions before running radmin "inject file".
  • Don't over-ride "no match" with "match" for regexes. Closes bug #152.
  • Make retry and error message configurable in mschap. See raddb/modules/mschap
  • Allow EAP-MSCHAPv2 to send error message to client. This change allows some clients to prompt the user for a new password. See raddb/eap.conf, mschapv2 section, "send_error".
  • Load the default virtual server before any others. This matches what users expect, and reduces confusion.
  • Fix configure checks for udpfromto. Fixes Debian bug #606866
  • Definitive fix for bug #35, where the server could crash under certain loads. Changes src/lib/packet.c to use RB trees.
  • Updated "configure" checks to allow IPv6 udpfromto on Linux.
  • SQL module now returns NOOP if the accounting start/interim/stop queries don't do anything.
  • Allow %{outer.control: ... } in string expansions
  • home_server coa config now matches raddb/proxy.conf
  • Never send a reply to a DHCP Release.

28 September 2010 - Version 2.1.10 has been released.

The focus of this release is stability.

Feature improvements

  • Install the "radcrypt" program.
  • Enable radclient to send requests containing MS-CHAPv1 Send packets with: MS-CHAP-Password = "password". It will be automatically converted to the correct MS-CHAP attributes.
  • Added "-t" command-line option to radtest. You can use "-t pap", "-t chap", "-t mschap", or "-t eap-md5". The default is "-t pap"
  • Make the "inner-tunnel" virtual server listen on 127.0.0.1:18120 This change and the previous one makes PEAP testing much easier.
  • Added more documentation and examples for the "passwd" module.
  • Added dictionaries for RFC 5607 and RFC 5904.
  • Added note in proxy.conf that we recommend setting "require_message_authenticator = yes" for all home servers.
  • Added example of second "files" configuration, with documentation. This shows how and where to use two instances of a module.
  • Updated radsniff to have it write pcap files, too. See '-w'.
  • Print out large WARNING message if we send an Access-Challenge for EAP, and receive no follow-up messages from the client.
  • Added Cached-Session-Policy for EAP session resumption. See raddb/eap.conf.
  • Added support for TLS-Cert-* attributes. For details, see raddb/sites-available/default, "post-auth" section.
  • Added sample raddb/modules/{opendirectory,dynamic_clients}
  • Updated Cisco and Huawei, HP, Redback, and ERX dictionaries.
  • Added RFCs 5607, 5904, and 5997.
  • For EAP-TLS, client certificates can now be validated using an external command. See eap.conf, "validate" subsection of "tls".
  • Made rlm_pap aware of {nthash} prefix, for compatibility with legacy RADIUS systems.
  • Add Module-Failure-Message for mschap module (ntlm_auth)
  • made rlm_sql_sqlite database configurable. Use "filename" in sql{} section.
  • Added %{tolower: ...string ... }, which returns the lowercase version of the string. Also added %{toupper: ... } for uppercase.

Bug fixes

  • Fix endless loop when there are multiple sub-options for DHCP option 82.
  • More debug output when sending / receiving DHCP packets.
  • EAP-MSCHAPv2 should return the MPPE keys when used outside of a TLS tunnel. This is needed for IKE.
  • Added SSL "no ticket" option to prevent SSL from creating sessions without IDs. We need the IDs, so this option should be set.
  • Fix proxying of packets from inside a TTLS/PEAP tunnel. Closes bug #25.
  • Allow IPv6 address attributes to be created from domain names Closes bug #82.
  • Set the string length to the correct value when parsing double quotes. Closes bug #88.
  • No longer look users up in /etc/passwd in the default configuration. This can be reverted by enabling "unix" in the "authorize" section.
  • More #ifdef's to enable building on systems without certain features.
  • Fixed SQL-Group comparison to register only if the group query is defined.
  • Fixed SQL-Group comparison to register -SQL-Group, just like rlm_ldap. This lets you have multiple SQL group checks.
  • Fix scanning of octal numbers in "unlang". Closes bug #89.
  • Be less aggressive about freeing "stuck" requests. Closes bug #35.
  • Fix example in "originate-coa" to refer to the correct packet.
  • Change default timeout for dynamic clients to 1 hour, not 1 day.
  • Allow passwd module to map IP addresses, too.
  • Allow passwd module to be used for CoA packets
  • Put boot filename into DHCP header when DHCP-Boot-Filename is specified.
  • raddb/certs/Makefile no longer has certs depend on index.txt and serial. Closes bug #64.
  • Ignore NULL errorcode in PostgreSQL client. Closes bug #39
  • Made Exec-Program and Exec-Program-Wait work in accounting section again. See sites-available/default.
  • Fix long-standing memory leak in esoteric conditions. Found by Jerry Nichols.
  • Added "Password-With-Header == userPassword" to raddb/ldap.attrmap This will automatically convert more passwords.
  • Updated rlm_pap to decode Password-With-Header, if it was base64 encoded, and to treat the contents as potentially binary data.
  • Fix Novell eDir code to use the right function parameters. Closes bug #86.
  • Allow spaces to be escaped when executing external programs. Closes bug #93.
  • Be less restrictive about checking permissions on control socket. If we're root, allow connecting to a non-root socket.
  • Remove control socket on normal server exit. If the server isn't running, the control socket should not exist.
  • Use MS-CHAP-User-Name as Name field from EAP-MSCHAPv2 for MS-CHAP calculations. It *MAY* be different (upper / lower case) from the User-Name attribute. Closes bug #17.
  • If the EAP-TLS methods have problems, more SSL errors are now available in the Module-Failure-Message attribute.
  • Update Oracle configure scripts. Closes bug #57.
  • Added text to DESC fields of doc/examples/openldap.schema
  • Updated more documentation to use "Restructured Text" format. Thanks to James Lockie.
  • Fixed typos in raddb/sql/mssql/dialup.conf. Closes bug #11.
  • Return error for potential proxy loops when using "-XC"
  • Produce better error messages when slow databases block the server.
  • Added notes on DHCP broadcast packets for FreeBSD.
  • Fixed crash when parsing some date strings. Closes bug #98
  • Improperly formatted Attributes are now printed as "Attr-##". If they are not correct, they should not use the dictionary name.
  • Fix rlm_digest to be check the format of the Digest attributes, and return "noop" rather than "fail" if they're not right.
  • Enable "digest" in raddb/sites-available/default. This change enables digest authentication to work "out of the box".
  • Be less aggressive about marking home servers as zombie. If they are responding to some packets, they are still alive.
  • Added Packet-Transmit-Counter, to track detail file retransmits. Closes bug #13.
  • Added configure check for lt_dladvise_init(). If it exists, then using it solves some issues related to libraries loading libraries.
  • Added indexes to the MySQL IP Pool schema.
  • Print WARNING message if too many attributes are put into a packet.
  • Include dhcp test client (not built by default)
  • Added checks for LDAP constraint violation. Closes bug #18.
  • Change default raddebug timeout to 60 seconds.
  • Made error / warning messages more consistent.
  • Correct back-slash handling in variable expansion. Closes bug #46. You SHOULD check your configuration for backslash expansion!
  • Fix typo in "configure" script (--enable-libltdl-install)
  • Use local libltdl in more situations. This helps to avoid
  • compile issues complaining about lt__PROGRAM__LTX_preloaded_symbols.
  • Fix hang on startup when multiple home servers were defined with src_ipaddr field.
  • Fix 32/64 bit issue in rlm_ldap. Closes bug #105.
  • If the first "listen" section defines 127.0.0.1, don't use that as a source IP for proxying. It won't work.
  • When Proxy-To-Realm is set to a non-existent realm, the EAP module should handle the request, rather than expecting it to be proxied.
  • Fix IPv4 issues with udpfromto. Closes bug #110.
  • Clean up child processes of raddebug. Closes bug #108 and bug #109
  • retry OTP if the OTP daemon fails. Closes bug #58.
  • Multiple calls to ber_printf seem to work better. Closes bug #106.
  • Fix "unlang" so that "attribute not found" is treated as a "false" comparison, rather than a syntax error in the configuration.
  • Fix issue with "Group" attribute.

24 May 2010 - Version 2.1.9 has been released.

The focus of this release is stability.

Feature improvements

  • Add radmin command "stats detail " to see what is going on inside of a detail file reader.
  • Added documentation for CoA. See raddb/sites-available/coa
  • Add sub-option support for Option 82. See dictionary.dhcp
  • Add "server" field to default SQL NAS table, and documented it.

Bug fixes

  • Reset "received ping" counter for Status-Server checks. In some corner cases it was not getting reset.
  • Handle large VMPS attributes.
  • Count accounting responses from a home server in SNMP / statistics code.
  • Set EAP-Session-Resumed = Yes, not "No" when session is resumed.
  • radmin packet counter statistics are now unsigned, for numbers 2^31..2^32. After that they roll over to zero.
  • Be more careful about expanding data in PAP and MS-CHAP modules. This prevents login failures when passwords contain '{'.
  • Clean up zombie children if there were many "exec" modules being run for one packet, all with "wait = no".
  • re-open log file after HUP. Closes bug #63.
  • Fix "no response to proxied packet" complaint for Coa / Disconnect packets. It shouldn't ignore replies to packets it sent.
  • Calculate IPv6 netmasks correctly. Closes bug #69.
  • Fix SQL module to re-open sockets if they unexpectedly close.
  • Track scope for IPv6 addresses. This lets us use link-local addresses properly. Closes bug #70.
  • Updated Makefiles to no longer use the shell for recursing into subdirs. "make -j 2" should now work.
  • Updated raddb/sql/mysql/ippool.conf to use "= NULL". Closes bug #75.
  • Updated Makefiles so that "make reconfig" no longer uses the shell for recursing into subdirs, and re-builds all "configure" files.
  • Used above method to regenerate all configure scripts. Closes bug #34.
  • Updated SQL module to allow "server" field of "nas" table to be blank: "". This means the same as it being NULL.
  • Fixed regex realm example. Create Realm attribute with value of realm from User-Name, not from regex. Closes bug #40.
  • If processing a DHCP Discover returns "fail / reject", ignore the packet rather than sending a NAK.
  • Allow '%' to be escaped in sqlcounter module.
  • Fix typo internal hash table.
  • For PEAP and TTLS, the tunneled reply is added to the reply, rather than integrated via the operators. This allows multiple VSAs to be added, where they would previously be discarded.
  • Make request number unsigned. This changes nothing other than the debug output when the server receives more than 2^31 packets.
  • Don't block when reading child output in 'exec wait'. This means that blocked children get killed, instead of blocking the server.
  • Enabled building without any proxy functionality
  • radclient now prefers IPv4, to match the default server config.
  • Print useful error when a realm regex is invalid
  • relaxed rules for preprocess module "with_cisco_vsa_hack". The attributes can now be integer, ipaddr, etc. (i.e. non-string)
  • Allow rlm_ldap to build if ldap_set_rebind_proc() has only 2 arguments.
  • Update configure script for rlm_python to avoid dynamic linking problems on some platforms.
  • Work-around for bug #35
  • Do suid to "user" when running in debug mode as root
  • Make "allow_core_dumps" work in more situations.
  • In detail file reader, treat bad records as EOF. This allows it to continue working when the disk is full.
  • Fix Oracle default accounting queries to work when there are no gigawords attributes. Other databases already had the fix.
  • Fix rlm_sql to show when it opens and closes sockets. It already says when it cannot connect, so it should say when it can connect.
  • "chmod -x" for a few C source files.
  • Pull update spec files, etc. from RedHat into the redhat/ directory.
  • Allow spaces when parsing integer values. This helps people who put "too much" into an SQL value field.

Older Press Releases

2009, 2008, 2007, 2006, 2005.