Libreswan是基于(“IPsec”)和Internet密钥交换(“IKE”)的最广泛支持和标准化VPN协议的自由软件实现。这些标准由
互联网工程任务组 (“IETF”)制作和维护。
项目历史
Libreswan已经积极开发超过15年,回到1996年由John Gilmore和Hugh Daniel创立FreeS/WAN项目。该代码在2003年被分为继续作为The Openswan项目。2012年,由于对“openswan”这一商标提起诉讼,它被迫重命名为Libreswan项目。
FreeS / WAN(1995-2003)
目标是为互联网上的加密开发IPsec和DNS标准。目标是每年
加密5%的互联网流量,直到整个互联网只使用加密通信。FreeS / WAN项目通常有大约五名付费人员参与代码,所有这些都由Gilmore支付。
当时加密非常罕见,并且实施加密的自由软件很少。SSLeay是OpenSSL的前身,用于在Web服务器和客户端之间进行加密。大多数人并没有考虑民族国家的窃听和监视,但加密战争正在肆虐。freeswan软件的目标是部署广泛的机会加密,并在国家安全原因可能禁止公众加密之前使加密无处不在。防止美国政府通过国家安全信函声称拥有freeswan(“NSL”),Gilmore本人和其他美国公民不允许为freeswan编写任何代码。这种限制造成了很多伤害,因为它阻止了freeswan代码被合并到Linux内核中,并使个人更难以部署freeswan。
同时,企业需要通过互联网进行安全连接,并且对
虚拟专用网(“VPN”)的需求是开发可用加密标准的另一个动机。这些也使用IPsec,但以各种不同的方式满足不同公司的需求。
互联网工程任务组出现的标准被称为IPsec套件。它由许多标准文档(RFC)组成,这些文档通过Internet密钥交换协议处理身份验证,并使用IPsec转换来加密数据。支持和标准化各种加密和认证算法。采用机会加密并不存在。一些技术障碍使部署变得困难。DNS的安全版本延迟了很多年。DNS 根区域最终使用DNSSEC签名2010年7月15日 - 经过十年的延迟。在此期间,freeswan对DNSSEC的使用被IETF中的后期移动阻止,该移动表明只有DNS本身可以使用DNSSEC KEY记录,重命名为DNSKEY记录。这意味着freeswan必须恢复到糟糕的旧TXT记录。IPsec在2005年获得了自己的DNS记录类型IPSECKEY,但部署的DNS软件需要花费数年才能真正支持这种新的记录类型。此外,最终用户从未获得对其反向DNS区域的预期访问权限,以发布其OE IPsec所需的公钥。
Linux内核对freeswan的采用也从未发生过。部分原因是由Gilmore执行的“非美国代码”规则。负责Linux内核中的网络和加密的内核人员缺乏合作也发挥了重要作用。尽管freeswan的团队在渥太华Linux研讨会和内核峰会上共同出现了几年,但Linux人员走上了自己的道路,最终经历了一些未能获得广泛支持的新加密子系统。这导致两个团队花费多年努力维护两个竞争的内核IPsec堆栈,即KLIPS与NETKEY,即使在今天,也没有一个具有两个堆栈的良好功能的统一堆栈。
一般公众似乎不太关心政府的窃听。该埃施朗间谍网络这一研究结果由尼基·黑格和对加密通信的部署没有明显的影响。在整个90年代和2000年代,没有多少人认为未加密的互联网是一个真正的问题,直到2013年爱德华·斯诺登(Edward Snowden)披露,这是吉尔摩尔放弃尝试用freeswan加密整个互联网的整整十年。
从FreeS / WAN到Openswan(2003 - 2011)
商业公司在“烘烤”活动期间使用freeswan作为其关键的互操作性测试之一。Andreas Steffen编写了一个大补丁,为freeswan增加了X.509支持,这是Gilmore拒绝合并的.Mathieu Lafon编写的NAT-Traversal支持是商业VPN支持所需的另一个必要功能,Gilmore拒绝让其进入freeswan代码。其中一位freeswan志愿者肯·班托夫(Ken Bantoft)保留了一个版本的freeswan,这些补丁合并在一起,称之为“超级freeswan”。Gilmore对使用“freeswan”这个名称并不满意,因为他不想要那些与freeswan名称相关的互联网瘫痪技术。
2003年7月,另一位活跃的freeswan志愿者Gilmore和Paul Wouters在柏林附近的Chaos Communications Camp会面,并制定了一项计划,在没有Gilmore赞助的情况下继续使用freeswan进行IPsec开发。Wouters和其他志愿者会分叉代码,而Gilmore会再发布一个freeswan版本,其中删除了大量代码,仅对商业VPN部署有用。这项工作在workname“openswan”下开始,基于freebsd / openbsd名称历史记录。名字卡住了。Gilmore发布了另外两个获得VPN代码的freeswan版本并结束了他的项目。
Openswan项目将软件的重点从OE转向
VPN技术。四名开放式志愿者成立了Xelerance公司,为openswan提供商业支持,用于继续开放式开发。由于Gilmore对freeswan施加的限制不受阻碍,openwan代码接管了freeswan,并广泛采用并包含在主要的Linux发行版中,如Red Hat Enterprise Linux(“RHEL”),Debian和SuSe Linux。增加了对L2TP / IPsec支持的企业功能,如XAUTH和SAref跟踪。Openswan在企业中运作良好。这本身就为Xelerance带来了问题。企业用户大多使用RHEL,因此向Red Hat支付了商业支持。IPsec和IKE运行良好,用户几乎不需要开发新功能。或者他们愿意等待其他人支付或开发这些功能。虽然Xelerance仍然赞助了对Openswan项目的托管,但它将重点转向生存。原始创始人一个接一个地离开了公司。Wouters是2011年12月离开的最后一位。他的离职引发了The Openswan Project和Xelerance之间关于谁拥有openswan品牌的争议。提起诉讼,并且当自由软件开发人员被公司起诉时很常见,走开并重命名软件更便宜,更容易。Libreswan诞生了。
Libreswan(2011年 - ,)
Libreswan由Libreswan项目维护。
运行环境
Libreswan支持IKE版本1和2.它运行在
Linux 2.4到4.x,FreeBSD和Apple OSX上。在Linux上,它可以使用内置的IPsec堆栈(“XFRM / NETKEY”)或其自己的IPsec堆栈(“KLIPS”)。它使用NSS加密库。支持的RFC列表可以在Implemented标准中找到。
下载网址
下载网址:https://download.libreswan.org/
Git存储库:https://github.com/libreswan/libreswan/
配置示例
VPN服务器到VPN服务器配置
主机托管VPN
子网到子网VPN
主机用PSK托管VPN
用PSK子网到子网VPN
使用VTI的基于路由的VPN
EoIP使用IPsec共享以太网LAN
子网到子网使用NAT
SElinux和标签IPsec VPN
VPN客户端配置的VPN服务器
使用IKEv2的远程客户端的VPN服务器
使用IKEv2拆分VPN的远程客户端的VPN服务器
使用IKEv1 XAUTH和证书的远程客户端的VPN服务器
用于远程客户端的VPN服务器,使用IKEv1 XAUTH和PSK
使用IKEv1和L2TP的远程客户端的VPN服务器
libreswan作为Cisco(ASA或VPN3000)服务器的客户端
IKEv1 XAUTH与Google-Authenticator一次性密码(OTP)
IKEv1 XAUTH与FreeOTP和FreeIPA
子网挤出
用于连接云提供商的VPN配置
在OpenStack中使用libreswan作为VPNaaS
使用libreswan在AWS中实现高可用性/故障转移VPN
Microsoft Azure配置
使用libreswan的OpenShift云加密