IPSec-tools(RedHat自带VPN设置)

范堡 发布于 2009/05/05 17:55
阅读 2K+
收藏 0

更多VPN设置可以看我的[url=http://www.yoyotown.com/?cat=40]VPN专题;
[color=Red]    * [/color][url=http://www.yoyotown.com/?p=224]ipsec-tools设置(又一IPSec VPN)
[color=Red]    * [/color][url=http://www.yoyotown.com/?p=218]Openswan VPN安装设置
[color=Red]    * [/color][url=http://www.yoyotown.com/?p=203]Open VPN安装设置 
[color=Red]    * SSL VPN的真正价值(转自ChinaUnix) [/color]
[color=Red]    * VPN简介 [/color]


实现IPSec要求主机安装上安装 ipsec-tools RPM 软件包,Redhat一般默认安装。

    rpm -qa |grep ipsec-tools


vpn

网络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

测试连通


[ 本帖最后由 toakee 于 2009-3-15 09:46 编辑 ]



加载中
返回顶部
顶部