ipsec-tools设置(又一IPSec VPN)

来源:百度文库 编辑:神马文学网 时间:2024/04/29 19:04:26
实现IPSec要求主机安装上安装 ipsec-tools RPM 软件包,Redhat一般默认安装。
rpm -qa |grep ipsec-tools

网络1和网络2想通过 IPsec 隧道来彼此连接。网络1的网络地址在 192.168.10.0/24 范围内,网络2使用192.168.20.0/24 范围。网络1的网关 IP 地址是 192.168.10.1,网络2的网关地址是192.168.20.1。
每个网络间的 IPsec 连接使用一个值为 yoyotown.com 的预共享钥匙,网络1和网络2都同意让 racoon自动生成和共享每个 IPsec 路由器之间的验证钥匙。网络1把 IPsec 连接命名为 ipsec0,而网络2把 IPsec 连接命名为ipsec1。
以下是网络1的 IPsec 连接的 ifcfg 文件。在这个例子中用来识别该连接的独特名称是 ipsec0,因此其结果文件被命名为 /etc/sysconfig/network-scripts/ifcfg-ipsec0。
TYPE=IPSEC
ONBOOT=yes # 引导时激活
IKE_METHOD=PSK # 使用预共享密钥
SRCGW=192.168.10.10 # 源网关
DSTGW=192.168.20.10 # 目标网关
SRCNET=192.168.10.0/24 # 源网段
DSTNET=192.168.20.0/24 # 目标网段
DST=192.168.1.20 # 网络2VPN Server的外网IP
以下是预共享钥匙文件(叫做 /etc/sysconfig/network-scripts/keys-ipsecX,这里的 X 对网络1来说是0,对网络2来说是1),两个工作站都使用它来彼此验证。该文件的内容应该完全一致,并且只有root用户才应该有读写权。
IKE_PSK=yoyotown.com
改变 keys-ipsec0 文件的权限,只有root用户才有读写权。
chmod 600 /etc/sysconfig/network-scripts/keys-ipsec0
要在任何时候改变验证钥匙,编辑两个 IPsec 路由器上的 keys-ipsecX 文件。这两个钥匙必须 完全一致才能保证正确的连接性。
以下是 IPsec 连接的 /etc/racoon/racoon.conf 配置文件。
# Racoon IKE daemon configuration file.
# See ‘man racoon.conf’ for a description of the format and entries.
path include “/etc/racoon”;
path pre_shared_key “/etc/racoon/psk.txt”;
path certificate “/etc/racoon/certs”;
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include “/etc/racoon/X.X.X.X.conf” # IPSec被激活时自动生成,X.X.X.X为远程VPN Server的外网IP
以下是连接到远程网络时生成的配置文件。该文件的名称为 X.X.X.X.conf。注意,一旦 IPsec 隧道被激活,该文件会被自动生成。
remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
在启动 IPsec 连接前,内核中应该启用 IP 转发。在 shell 提示符下作为root用户来启用 IP 转发:
1.编辑 /etc/sysctl.conf,把 net.ipv4.ip_forward 设置为 1。
2.执行以下命令来启用改变:
sysctl -p /etc/sysctl.conf
以root用户身份启动 IPsec 连接:
service network restart
连接被激活,网络1和网络2能够彼此通信。



使用下面命令可以显示路由信息:
route  -n

要测试 IPsec 连接,运行 tcpdump 工具来查看在主机(或网络)间传输的网络分组,并校验它们是否通过 IPsec被加密了。分组应该包括 AH 头,而且应该被显示为 ESP 分组。ESP 意味着它被加密了。例如,要检查网络1的 IPsec 连接,键入:
tcpdump -n -i eth1 host 192.168.1.20
分组应该包含 AH 头,应该为显示为 ESP 分组。ESP 意味着它被加密了:

如果你的VPN Server和默认网关是同一台机器,则无需下面操作:
由于LServer不是子网的网关,所以必须在L-APP Server上设置路由(或者在网关192.168.10.1上设置下面路由,以避免在内网的每台机器上设置路由):
L-APP Server上路由配置:
route add -net 192.168.20.0 netmask 255.255.255.0 gw 192.168.10.10
由于RServer不是子网的网关,所以必须在R-APP Server上设置路由(或者在网关192.168.20.1上设置下面路由,以避免在内网的每台机器上设置路由):
R-APP Server上路由配置:
route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.20.10
测试连通性:

三月 13th, 2009 inLinux服务架设,VPN Server | tags:IPSec,ipsec-tools,racoon,vpn