seppl既是一个协议定义和软件实现一个新的加密层的IPv4。 seppl项目利用对称加密技术加密的网络对整个交通。它的实施是围绕Linux的网络过滤/ iptables的设计。
seppl引入了两个新的netfilter的目标:CRYPT和解密。防火墙规则可因此被用于加密/解密的传入和传出的网络流量。这使得seppl非常容易使用,因为没有后台程序需要运行安全通信。
seppl使用Linux加密API,它是在内核2.4.22和更新现有的加密引擎。
seppl主要用于加密无线局域网(作为破WEP加密的安全的替代品),本地以太网网络,但也可以用于大规模的VPN解决方案为好。
该协议seppl依赖于不与任何其他软件兼容。该协议是开放的,明确定义的,但没有实现比该基准软件等。
为什么SEPPL,已经有IPSEC,CIPE,...?
CIPE可以用于点对点仅连接。它具有隧道结构,从而引入了新的IP地址。这并不总是理想的。它需要一个用户空间的守护进程。
IPSEC /的freeswan是极其复杂的使用。由于其奇怪的路由方案几乎是不可能一起使用具有路由守护进程。 IPSec是重量级的。
seppl是忠实地的对等体。它无缝地加密所有传出流量,并将其与因而路由守护程序兼容。这是非常容易使用为好,因为它并没有改变正常的路由行为。 seppl是极其轻便。
实施
实施包括三个Linux内核模块:seppl.o,ipt_CRYPT.o和ipt_DECRYPT.o。前者是在内核密钥管理器,后者是两个新的netfilter的目标。都依赖于seppl.o。
seppl.o必须插入到内核中排在首位。密钥管理器可与文件/ proc /网络/ seppl_keyring进行访问。它包含二进制密钥数据,和最初是空的。您可以通过将其写入到文件添加一个新的密钥。
这两个Python脚本seppl-LS和seppl根密钥我被用于密钥管理。 seppl-LS可以用于转换所用的/ proc /净/ seppl_keyring和人类可读的基于XML的格式的二进制格式之间seppl密钥。只需拨打seppl-LS所有当前活动键的列表。 seppl根密钥生成从/ dev / urandom的一个新的密钥。默认情况下它会使用XML格式。参数-x力量二进制模式。您可以生成并激活两个键“莱纳斯”和“阿兰”通过发出以下命令行:
seppl根密钥-n莱纳斯-x>的/ proc /网络/ seppl_keyring
seppl根密钥-n艾伦-x>的/ proc /网络/ seppl_keyring
seppl-LS没有参数列表保存在内核钥匙圈新的密钥。您可以通过发出删除所有(当前未使用)键:
回声清晰>的/ proc /网络/ seppl_keyring
由于seppl使用共享密钥基于对称加密你必须新生成的密钥复制到你想连接到您的基础设施seppl每个主机。 (最好是通过SSH或其他任何安全文件传输)可以通过发行得到您当前的钥匙圈的二进制副本:
执行cat / proc /网络/ seppl_keyring> keyring.save
现在,将该文件拷贝到keyring.save所有其他主机并发出以下命令有:
猫keyring.save>的/ proc /网络/ seppl_keyring
说起来很简单,不是吗?
经过这样做,你可以在每个主机上配置防火墙设置:
iptables的-t轧-A POSTROUTING -o eth0的-j CRYPT --key莱纳斯
iptables的-t轧-A PREROUTING -i eth0的-j DECRYPT
这将加密在eth0与键“莱纳斯”的所有出站流量。所有传入流量进行解密或者“的linus”或“阿兰”,这取决于在特定的网络分组中指定的键名称。未加密的传入数据包被丢弃。使用
iptables的-t轧-A PREROUTING -p 177 -i eth0的-j DECRYPT
允许加密的双方和未加密的传入流量。
就是这样。你完成了。所有本地子网中的流量被加密的,现在用seppl。
默认密码是AES-128。如果没有指定的使用关键则默认为“高清”之名。
提供了一种SysV初始化脚本/etc/init.d/seppl。它会加载seppl的内核模块和从目录/ etc / seppl内核钥匙圈写的所有键。它不会但是添加任何防火墙规则。
性能问题
该网络数据包的大小增加它们加密的时候,因为两个新的头和IV加入。 (平均36个字节),这对冲突某种方式与Linux内核的MTU管理和结果让所有的大数据包(即:封装尺寸接近MTU)分段于一体的大型和另外一个非常小的封装。这将损害网络性能。这个限制的解决办法是使用TCPMSS netfilter的目标来调整在TCP头较小值的MSS值。这将增加TCP性能比较,因为MTU大小的TCP数据包不再产生。因而没有碎裂是必要的。然而,TCPMSS是TCP具体,它不会在UDP或其他IP协议帮助。
添加以下线路加密到你的防火墙设置之前:
iptables的-t轧-A POSTROUTING -p tcp的--tcp-SYN标志,RST SYN -o eth0的-j TCPMSS --set-MSS $((1500-40-8-16-6-15))
该议定书
用于加密每一个未加密的数据包被取和转换成一个加密的之一。不是一个单一的数据包再是不断发送。
原来SEPPL对口
+ ------------ + + + -----------------------
| IP报头| |修改IP报头| |
+ ------------ + + + ----------------------- |
|载荷| | SEPPL报头|>未加密
+ ------------ + + + ----------------------- |
|初始化向量| |
+ ----------------------- + /
| SEPPL报头|
+ ----------------------- + |加密后
|载荷| |
+ ----------------------- + /
原始IP报头尽可能保留。只有三个场被替换为新值。协议号被设定为177,该片段的偏移设置为0,并且总长度修正为新的长度。所有其他领域都保持原样,包括IP选项。
未加密的seppl头由一字节的加密号码和密钥名称。目前,只有0和1定义为AES加密的数字与128位密钥,RESP。 AES与192bit的密钥。键名(7个字节)可以被用来选择在一个更大的密钥环的特定密钥。
IV是用来使用的加密的CBC编码。它不同于分组到分组,但并不随机生成的。由于性能比较的原因,只在系统启动时的初始IV是随机的,通过增加以前的生成所有的IV如下。
该加密的seppl头由原始IP报头三个领域的保存(协议号,分片偏移,总长度)和一个字节始终是0用于检测不匹配的钥匙。
有效负载是原来的IP-playload,从TCP / UDP /其他标题的结束。
局限性:
·seppl干扰以某种方式的netfilter的连接跟踪。因此,你将无法使用NAT结合seppl。如果以其他方式使用连接跟踪与seppl您的里程可能会有所不同。
·seppl与Linux的2.6.1进行测试。使用0.3版本,为Linux 2.4。
要求:
·seppl的开发,并从2003年11月测试在Debian GNU / Linux的“测试”,它应该工作在其他大多数Linux发行版和Unix版本,因为它使用GNU的Autoconf和GNU libtool的源代码配置和共享库管理。
·seppl需要的Linux 2.6。{0,1}(配置资源安装)和iptables 1.2.8或更高版本。
·完整的用户空间工具集需要Python 2.1或更高版本。在C A精简集可用。
安装方式:
由于这个包是用GNU自动工具,你应该运行./configure分发目录里面配置源代码树。之后,你应该运行make编译和make install(作为root)安装seppl的。
什么是新的,在此版本:
·移植到Linux 2.6,没有其他变化。 0.4版本不再与2.4内核兼容。使用0.3版本的内核2.4,它在功能上是等价的。
按类别搜索
热门软件
-
Robolinux 19 Jun 17
-
DEFT 9 Mar 17
-
Sophos UTM 17 Feb 15
-
Boot-Repair-Disk 20 Feb 15
-
MultiSystem 17 Feb 15
-
GTK VNC Viewer 2 Jun 15
-
NdisWrapper 11 May 16
seppl
显影剂的其他软件 Lennart Poettering
意见 seppl
按类别搜索
热门软件
-
KTurtle 2 Jun 15
-
Puppy Linux "Slacko" 28 Apr 17
-
Google Music Manager 15 Apr 15
-
Yandex Browser 17 Feb 15
-
Parrot security OS 23 Oct 17
-
HP Linux Imaging and Printing 1 Dec 17
-
LaTeX::BibTeX 14 Apr 15
评论没有发现