基于 WordPress | 主题由 mg12 提供 | 通过 XHTML 1.1CSS 3 验证
  • IP-Sec Tools

    一、简介

    关于 ipsec,以前也在 Blog 上讨论过了,主要是关于 openswan 和 fortigate 的相关配置。在最近一次使用 ipsec 的过程中,基础系统是 CentOS 5. 而在此系统中 openswan 的安装并不是这么方便。于是就丢掉了 openswan 这个系统。开始尝试新的工具 IP-Sec Tool . 在大多数发行版本中(包括 FreeBSD)该工具都已经带了二进制包,不用再把时间花在编译上了。

    本文涉及的环境依旧是 Net-Net。

    二、setkey

    setkey 是 ipsec-tools 中的一个工具。简单的说,他指定了 Tunnel 。他告诉了系统什么样的数据包应该使用哪条隧道,同时也指定了该隧道的“动作”(允许通过等)。

    setkey 的规则类似:

    spdadd 172.16.1.0/24 172.16.2.0/24 any -P out ipsec
    esp/tunnel/192.168.1.100-192.168.2.100/require;

    此内容指定从 172.16.1.0/24 到 172.16.2.0/24 所有出去的数据使用 ipsec esp 加密。他们所通过的 WAN 网线路为 192.168.1.100 到192.168.2.100。

    如果指定了出去的数据,一般也需要指定进来的数据。

    spdadd 172.16.2.0/24 172.16.1.0/24 any -P in ipsec
    esp/tunnel/192.168.2.100-192.168.1.100/require;

    用 setkey -f 文件 即可刷新最新的 tunnel 规则。

    使用 setkey -D 以及 setkey -DP 来查看 SAD 和 SPD 的当前状态。

    setkey -F 为刷空规则。

    这个过程和 Fortigate 中为 IPSEC 在防火墙中添加规则完全等价。

    三、racoon.conf

    racoon 的作用则和 Fortigate 中 VPN-IPSEC 的作用相同了,指定了 步骤一、步骤二 的所有内容。
    而且,不像 openswan ,将步骤一、二都混在了一段。分开比较有利于配置文件的编写以及排错。

    某些系统中 racoon 的默认文件在 /etc/racoon/racoon.conf 。我们来看一段典型的:

    path pre_shared_key “/etc/psk.txt”;
    remote 192.168.2.100 {
    exchange_mode main;
    proposal {
    encryption_algorithm 3des;
    hash_algorithm md5;
    authentication_method pre_shared_key;
    dh_group modp1024;
    }
    }
    sainfo address 172.16.1.0/24 any address 172.16.2.0/24 any {
    pfs_group modp768;
    encryption_algorithm 3des;
    authentication_algorithm hmac_md5;
    compression_algorithm deflate;
    }

    remote 大段落指定了 步骤一 的内容,sainfo 指定了 步骤二 的内容。
    remote 后面紧跟的 192.168.2.100 则是对方主机 WAN 网地址。
    address 172.16.1.0/24 any address 172.16.2.0/24 any 给出了源地址-目标地址的限定范围。此限定范围双方 IPSEC-Tunnel 服务器必须完全一致。不然,步骤二会出错。

    其他的内容也就是加密模式、超时时间等等设置,通过 man racoon.conf 即可搜索到详细的内容。

    listen
    {
    isakmp 123.123.123.123 [500];
    isakmp_natt 123.123.123.123 [4500];
    }

    此内容指定了监听的 WAN 网地址,以及端口。如果不指定地址,它会在当前系统所有的 IP 地址上监听。默认 ipsec tunnel 通讯就使用了 500 端口。

    注意:如果有防火墙,请开放对应端口通讯。

    path pre_shared_key “/etc/racoon/psk.txt”

    指定存放 pre shared key 的位置,文件中格式如下:

    IP PASSWD

    四、racoon

    racoon 一般用法

    -F :前台模式,使用该参数将显示所有log在屏幕上。
    -f 配置文件 :读取指定的配置文件,如 racoon -f /etc/racoon.conf
    -l :指定log文件的位置。默认将log放在了 message 里面。这样阅读很不方便。如果不使用 -l 参数,用 syslog-ng 也是可以达到相同的效果的。

    五、启动脚本

    racoon 同样会在 /var/run 下生成 racoon.pid 文件。他的启动脚本应该不会特别复杂。
    CentOS 5 中并没有自带脚本,FreeBSD 似乎有现成脚本。有空继续研究脚本问题。

    六、参考资料

    http://www.ipsec-howto.org/x304.html

    http://gentoo-wiki.com/HOWTO_IPSEC

    未发现中文比较全面的参考资料。

    2008年6月28日23:41
目前还没有任何评论.

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">
置顶