Fixed a denial-of-service vulnerability triggered by specific XAuth usernames and EAP identities (since 5.0.3), and PEM files (since 4.1.11). The crash was caused by insufficient error handling in the is_asn1() function. The vulnerability has been registered as CVE-2013-5018. Refer to our blog for details.
The new charon-cmd command line IKE client can establish road warrior connections using IKEv1 or IKEv2 with different authentication profiles. It does not depend on any configuration files (no ipsec.conf nor ipsec.secrets but may use strongswan.conf options) and can be configured using a few simple command line options.
The kernel-pfroute networking backend has been greatly improved. It now can install virtual IPs on TUN devices on Mac OS X and FreeBSD, allowing these systems to act as a client in common road warrior scenarios.
The new kernel-libipsec plugin uses TUN devices and libipsec to provide IPsec processing in userland on Linux, FreeBSD and Mac OS X.
The eap-radius plugin can now serve as an XAuth backend called xauth-radius, directly verifying XAuth credentials using RADIUS User-Name/User-Password attributes. This is more efficient than the existing xauth-eap + eap-radius combination, and allows RADIUS servers without EAP support to act as AAA backend for IKEv1.
The new osx-attr plugin installs configuration attributes (currently DNS servers) via SystemConfiguration on Mac OS X. The keychain plugin provides certificates from the OS X keychain service.
The sshkey plugin parses SSH public keys, which, together with the --agent option for charon-cmd, allows the use of ssh-agent for authentication. To configure SSH keys in ipsec.conf the left|rightrsasigkey options are replaced with left|rightsigkey, which now take public keys in one of three formats: SSH (RFC 4253, ssh: prefix), DNSKEY (RFC 3110, dns: prefix), and PKCS#1 (the default, no prefix).
Extraction of certificates and private keys from PKCS#12 files is now provided by the new pkcs12 plugin or the openssl plugin. charon-cmd (--p12) as well as charon (via P12 token in ipsec.secrets) can make use of this.
IKEv2 can now negotiate transport mode and IPComp in NAT situations.
IKEv2 exchange initiators now properly close an established IKE or CHILD_SA on error conditions using an additional exchange, keeping state in sync between peers.
Using a SQL database interface a Trusted Network Connect (TNC) Policy Manager can generate specific measurement workitems for an arbitrary number of Integrity Measurement Verifiers (IMVs) based on the history of the VPN user and/or device.
The new strongTNC web application provides a frontend to manage such databases. This project was started by Stefan Rohner and Marco Tanner as part of their Bachelor Thesis.
Several core classes in libstrongswan are now tested with unit tests. These can be enabled with --enable-unit-tests and run withmake check. Coverage reports can be generated with --enable-coverage andmake coverage(this disables any optimization, so it should not be enabled when building production releases).
The leak-detective developer tool has been greatly improved. It works much faster/stabler with multiple threads, does not use deprecated malloc hooks anymore and has been ported to OS X.
chunk_hash()is now based on SipHash-2-4 with a random key. This provides better distribution and prevents hash flooding attacks when used with hashtables. To generate reproducible hashes thechunk_hash_static()function can be used.
All default plugins implement theget_features()method to define features and their dependencies. The plugin loader has been improved, so that plugins in a custom load statement can be ordered freely or to express preferences without being affected by dependencies between plugin features.
A centralized thread can take care for watching multiple file descriptors concurrently. This removes the need for a dedicated listener threads in various plugins. The number of "reserved" threads for such tasks has been reduced to about five, depending on the plugin configuration.
Plugins that can be controlled by a UNIX socket IPC mechanism gained network transparency. Third party applications querying these plugins now can use TCP connections from a different host. See the respective socket options in strongswan.conf.
Protocol and port can be specified for each individual subnet specified with the left|rightsubnetipsec.conf options.
The closeactionipsec.conf option is now also supported for IKEv1 (thanks to Oliver Smith for the initial patch).
libipsec now supports AES-GCM.
By replacing several linked lists that exist during the full lifetime of an SA with a simple array implementation the memory usage per tunnel is reduced by 5 KB or more.
Responders reuse reqids of trapped policies, making auto=route on both sides more reliable.
Instead of silently replacing a policy if the reqid changes, the kernel-netlink plugin now rejects such requests. This has consequences e.g. if two clients behind the same NAT use transport mode (see #365).
Capability dropping has been improved. Every plugin verifies that the capabilities it requires are actually held and requests to keep only those that are really required at runtime.
Support for silent rules was added to the build system, they can be enabled with --enable-silent-rules.make V=0orV=1can be used to build with a different verbosity than configured.
The unique identifier of an IKE_SA is passed as PLUTO_UNIQUEID to the updown script.
Whether the socket-default plugin uses IPv4 and/or IPv6 can be configured via strongswan.conf.
Fixed a race-condition if the DELETE for a redundant CHILD_SA created by a responder during a CHILD_SA rekey collision arrives before the responder's answer to the initiator's winning CREATE_CHILD_SA request.
The X.509 certificate decoder provided by the openssl plugin supports IP address blocks (patch by Michael Rossberg).
scepclient can use a specific source address configured with the new --bind option.
Negotiation of IKEv1 DPD with Cisco IOS devices has been fixed, if they do not send the DPD vendor ID in the first message.
The ipsec strokeexportconncert and exportconnchain commands can be used to export either a single end entity certificate or the full trust chain for a specific connection.
The ipsec strokeup-nb and down-nb commands do the same as up and down, respectively, but they do not block until the command has finished.
StrongSwan 5.1.0 发布,Linux 的 IPsec 项目
StrongSwan是一个完整的2.4和2.6的Linux内核下的IPsec和IKEv1 的实现。它也完全支持新的IKEv2协议的Linux 2.6内核。结合IKEv1和IKEv2模式与大多数其他基于IPSec的VPN产品。并且支持Radius.重点项目是strongSwan强认证机制,使用X.509公 开密钥证书和可选的安全储存私钥对智能卡通过一个标准化的PKCS # 11接口。一个特点是使用的X.509属性证书实现了先进的访问控制方案的基础上组的成员。
StrongSWAN 5.1.0发布。2013-08-01。它和OpenSWAN是以前已经停止开发的FreeSWAN的后续版本。这是一个新的更新产品系列。之前版本是 2013-04-30的5.0.4.
完全改进:
Version 5.1.0
and EAP identities (since 5.0.3), and PEM files (since 4.1.11). The crash
was caused by insufficient error handling in the is_asn1() function.
The vulnerability has been registered as CVE-2013-5018.
Refer to our blog for details.
connections using IKEv1 or IKEv2 with different authentication profiles.
It does not depend on any configuration files (no ipsec.conf nor ipsec.secrets
but may use strongswan.conf options) and can be configured using a few
simple command line options.
can install virtual IPs on TUN devices on Mac OS X and FreeBSD, allowing these
systems to act as a client in common road warrior scenarios.
processing in userland on Linux, FreeBSD and Mac OS X.
directly verifying XAuth credentials using RADIUS User-Name/User-Password
attributes. This is more efficient than the existing xauth-eap + eap-radius
combination, and allows RADIUS servers without EAP support to act as AAA
backend for IKEv1.
servers) via SystemConfiguration on Mac OS X. The keychain plugin provides
certificates from the OS X keychain service.
option for charon-cmd, allows the use of ssh-agent for authentication.
To configure SSH keys in ipsec.conf the left|rightrsasigkey options are
replaced with left|rightsigkey, which now take public keys in one of three
formats: SSH (RFC 4253, ssh: prefix), DNSKEY (RFC 3110, dns: prefix), and
PKCS#1 (the default, no prefix).
by the new pkcs12 plugin or the openssl plugin. charon-cmd (--p12) as well
as charon (via P12 token in ipsec.secrets) can make use of this.
on error conditions using an additional exchange, keeping state in sync
between peers.
can generate specific measurement workitems for an arbitrary number of
Integrity Measurement Verifiers (IMVs) based on the history of the VPN user
and/or device.
The new strongTNC web application provides a frontend to manage such databases.
This project was started by Stefan Rohner and Marco Tanner as part of their Bachelor Thesis.
can be enabled with --enable-unit-tests and run withmake check. Coverage
reports can be generated with --enable-coverage andmake coverage(this
disables any optimization, so it should not be enabled when building
production releases).
faster/stabler with multiple threads, does not use deprecated malloc hooks
anymore and has been ported to OS X.
better distribution and prevents hash flooding attacks when used with
hashtables. To generate reproducible hashes thechunk_hash_static()function
can be used.
and their dependencies. The plugin loader has been improved, so that plugins
in a custom load statement can be ordered freely or to express preferences
without being affected by dependencies between plugin features.
concurrently. This removes the need for a dedicated listener threads in
various plugins. The number of "reserved" threads for such tasks has been
reduced to about five, depending on the plugin configuration.
transparency. Third party applications querying these plugins now can use
TCP connections from a different host.
See the respective socket options in strongswan.conf.
the left|rightsubnet ipsec.conf options.
Oliver Smith for the initial patch).
simple array implementation the memory usage per tunnel is reduced by 5 KB or more.
plugin now rejects such requests. This has consequences e.g. if two clients behind the
same NAT use transport mode (see #365).
it requires are actually held and requests to keep only those that are really required at runtime.
with --enable-silent-rules.make V=0orV=1can be used to build with a different
verbosity than configured.
CHILD_SA rekey collision arrives before the responder's answer to the initiator's winning
CREATE_CHILD_SA request.
DPD vendor ID in the first message.
either a single end entity certificate or the full trust chain for a specific connection.
but they do not block until the command has finished.
下载:http://download.strongswan.org/strongswan-5.1.0.tar.bz2