我有 Ubuntu 14.04 LTS 并且安装了ipsec-tools
。
我可以在配置文件中添加一条规则ipsec-tools.conf
,使用 esp 协议加密数据,然后使用 ah 协议再次加密它(加密数据)吗?(我的意思是双重加密)
如果是,我该怎么做?
我想在ipsec
两个设备之间发送受保护的数据,并且想对数据进行两次加密。
答案1
抱歉,但IPsec
不要那样做。
没有双重加密或...
非常非常简短和简单的解释IPsec
工作是怎样的
IPsec
首先IKE Police
与远端通信- 协商
Authorization algorithm
、、Encryption algorithm
和Perfect Forward Secrecy
IKE version
- 之后发送
key
akapassword
如果一切顺利,进入第二阶段
IPsec
警方将开始- 商谈
Encryption algorithm
,,Perfect Forward Secrecy
Transform Protocol
如果一切顺利,那么匹配routes
aka access list
akainteresting traffic
如果一切顺利,隧道就通了。
配置示例来自维基百科
编辑/etc/ipsec-tools.conf
文件。此文件应采用以下一般格式:
# Configuration for 192.168.1.100
# Flush the SAD and SPD
flush;
spdflush;
# Attention: Use this keys only for testing purposes!
# Generate your own keys!
# AH SAs using 128 bit long keys
add 192.168.1.100 192.168.2.100 ah 0x200 -A hmac-md5
0xc0291ff014dccdd03874d9e8e4cdf3e6;
add 192.168.2.100 192.168.1.100 ah 0x300 -A hmac-md5
0x96358c90783bbfa3d7b196ceabe0536b;
# ESP SAs using 192 bit long keys (168 + 24 parity)
add 192.168.1.100 192.168.2.100 esp 0x201 -E 3des-cbc
0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831;
add 192.168.2.100 192.168.1.100 esp 0x301 -E 3des-cbc
0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df;
# Security policies
spdadd 192.168.1.100 192.168.2.100 any -P out ipsec
esp/transport//require
ah/transport//require;
spdadd 192.168.2.100 192.168.1.100 any -P in ipsec
esp/transport//require
ah/transport//require;
理解这一点很重要,让我来分解一下:
# AH SAs using 128 bit long keys
add 192.168.1.100 192.168.2.100 ah 0x200 -A hmac-md5
0xc0291ff014dccdd03874d9e8e4cdf3e6;
add 192.168.2.100 192.168.1.100 ah 0x300 -A hmac-md5
0x96358c90783bbfa3d7b196ceabe0536b;
本节列出了和连接128 bit
的密钥。每个 IP 对都有 2 个密钥 - 每个方向各一个(进和出)。每对机器都需要知道这些信息。因此,这意味着,对于每对 IP,您都需要生成一个新密钥(这就是为什么这适用于小型网络,但任何大型网络可能都需要守护进程来处理这个问题。也许如果我有雄心壮志,我会设置我的来使用它并用该信息更新它)。192.168.2.100
192.168.1.100
ah
另外,请注意每个键后面的数字。此数字对于每个add
语句必须是唯一的。这些键的生成方式如下:
dd if=/dev/random count=16 bs=1| xxd -ps
0x
不要忘记在它的前面添加。
同样,本节:
# ESP SAs using 192 bit long keys (168 + 24 parity)
add 192.168.1.100 192.168.2.100 esp 0x201 -E 3des-cbc
0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831;
add 192.168.2.100 192.168.1.100 esp 0x301 -E 3des-cbc
0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df;
它的工作原理与 一样AH keys
,只是它们更长。同样,后面的数字esp
必须是唯一的。这些密钥的生成方式如下:
dd if=/dev/random count=24 bs=1| xxd -ps
0x
再次提醒,不要忘记在前面添加。
因此,这两个部分应该列出机器关心的所有 IP 地址的密钥。在连接两端的机器之间移动文件时,这些部分不会发生变化。这引出了下一部分:
# Security policies
spdadd 192.168.1.100 192.168.2.100 any -P out ipsec
esp/transport//require
ah/transport//require;
spdadd 192.168.2.100 192.168.1.100 any -P in ipsec
esp/transport//require
ah/transport//require;
这将设置进出通信的策略。因此,上述版本适用于192.168.1.100
,因为所有到 的传出通信192.168.2.100
和来自 的所有传入通信192.168.2.100
都将被加密。要在另一台机器 ( 192.168.2.100
) 上使用此版本,请翻转 in 和 out 指令,如下所示:
# Security policies
spdadd 192.168.1.100 192.168.2.100 any -P in ipsec
esp/transport//require
ah/transport//require;
spdadd 192.168.2.100 192.168.1.100 any -P out ipsec
esp/transport//require
ah/transport//require;
使conf文件不可被外界读取:
sudo chmod 750 ipsec-tools.conf
好的,连接的两端都有了吗ipsec-tools.conf
?大家都准备好了吗?很好,现在一切都变得简单了。
它将会在系统启动时默认启动,所以您不必担心。
此外,启动它也不会造成任何损害(在尝试让它们互相通信之前,请确保在连接的两端都执行此操作;您也可以重新启动):
sudo /etc/init.d/setkey start