FreeS/WAN 是 GNU/Linux 上 IPSec 的一种流行实现。在其当前版本 (1.9.7) 中,它需要进行修补才能整合 X.509 功能。您可以在 此站点 上找到修补版本。一些 GNU/Linux 发行版已经为您应用了补丁,因此请检查您的软件包。此版本的优势在于,您可以使用 openssl 创建证书以与 FreeS/WAN 和 DNS CERT 记录一起使用,但更具体地说,您可以与 Microsoft IPSec 的实现进行交互。有关更多信息,请查看 Nate 的页面。
mv newreq.pem /etc/freeswan/ipsec.d/private/host.example.com.key mv newcert.pem /etc/freeswan/ipsec.d/host.example.com.pem |
还将您的根证书复制到 FreeS/WAN 配置目录。仅复制证书,而不是密钥。
mv cacert.pem /etc/freeswan/ipsec.d/cacerts |
openssl ca -genrcl -out /etc/freeswan/ipsec.d/crls/crl.pem |
仍然在网关机器上,通过包含以下行来配置 ipsec.secrets 文件
: RSA host.example.com.key “password” |
密码是用于生成密钥对的密码。按如下方式配置 ipsec.conf
config setup interfaces=%defaultroute klipsdebug=none plutodebug=none plutoload=%search plutostart=%search uniqueids=yes conn %default keyingtries=1 compress=yes disablearrivalcheck=no authby=rsasig leftrsasigkey=%cert rightrsasigkey=%cert conn roadwarrior-net leftsubnet=<your_subnet>/<your_netmask> also=roadwarrior conn roadwarrior right=%any left%defaultroute leftcert=host.example.com.pem auto=add pfs=yes |
如您所见,正在建立 2 个连接,一个连接到网关机器,另一个连接到网关机器后面的网络。如果您在网关机器上操作某种防火墙/NAT,这将特别有用。配置使得任何拥有有效证书的人都能够连接到网关机器。
过程类似,您需要为客户端机器生成一个证书,其中 CN 为客户端机器的完全限定域名,例如 clienthost.example.com。此证书必须由与网关证书相同的签名机构签名。这将是链接授权的方式。
mv newreq.pem /etc/freeswan/ipsec.d/private/clienthost.example.com.key mv newcert.pem /etc/freeswan/ipsec.d/clienthost.example.com.pem |
还将您的根证书复制到 FreeS/WAN 配置目录。仅复制证书,而不是密钥。
mv cacert.pem /etc/freeswan/ipsec.d/cacerts |
openssl ca -genrcl -out /etc/freeswan/ipsec.d/crls/crl.pem |
mv host.example.com.pem /etc/fresswan/ipsec.d/host.example.com.pem |
同样,编辑您的 ipsec.secrets 文件以加载客户端私钥
: RSA clienthost.example.com.key “password” |
config setup interfaces=%defaultroute klipsdebug=none plutodebug=none plutoload=%search plutostart=%search uniqueids=yes conn %default keyingtries=0 compress=yes disablearrivalcheck=no authby=rsasig leftrsasigkey=%cert rightrsasigkey=%cert conn roadwarrior-net left=(ip of host) leftsubnet=(gateway_host_subnet)/(gateway_host_netmask) also=roadwarrior conn roadwarrior left=(ip of host) leftcert=host.example.com.pem right=%defaultroute rightcert=clienthost.example.com.pem auto=add pfs=yes |
ipsec auto --up roadwarrior ipsec auto --up roadwarrior-net |
openssl x509 -in cacert.pem -noout -subject |
您现在需要安装 Marcus Muller 的 ipsec.exe 实用程序,例如在 c:\ipsec 目录中。
打开 Microsoft 管理控制台 (MMC),在“添加/删除管理单元”中单击“添加”,然后单击“证书”,然后单击“添加”。选择“计算机帐户”,然后单击“下一步”。选择“本地计算机”,然后单击“完成”。单击“IP 安全策略管理”,然后单击“添加”。选择“本地计算机”,然后单击“完成”,单击“关闭”,然后单击“确定”。
现在您可以添加 .p12 证书
单击“证书(本地计算机)”旁边的加号箭头,然后右键单击“个人”,然后单击“所有任务”,然后单击“导入”,单击“下一步”。键入 .p12 文件的路径(或浏览并选择文件),然后单击“下一步”。键入导出密码,然后单击“下一步”。选择“根据证书类型自动选择证书存储”,然后单击“下一步”。单击“完成”,并对弹出的任何提示说“是”。退出 MMC,并将其另存为文件,这样您就不必每次都重新添加管理单元。
按照 ipsec 实用程序的文档中的说明安装 ipsecpol.exe (Windows 2000) 或 ipseccmd.exe (Windows XP)。编辑您的 ipsec.conf(在 Windows 机器上),将“RightCA”替换为 'openssl x509 -in cacert.pem -noout -subject' 的输出;重新格式化如下(您需要将 / 替换为逗号,并更改某些字段的名称 - 只需按照下面的示例进行操作)
conn roadwarrior left=%any right=(ip_of_remote_system) rightca="C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root" network=auto auto=start pfs=yes conn roadwarrior-net left=%any right=(ip_of_remote_system) rightsubnet=(your_subnet)/(your_netmask) rightca="C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root" network=auto auto=start pfs=yes |
启动链接
运行命令 'ipsec.exe'。以下是示例输出
C:\ipsec>ipsec IPSec Version 2.1.4 (c) 2001,2002 Marcus Mueller Getting running Config ... Microsoft's Windows XP identified Host name is: (local_hostname) No RAS connections found. LAN IP address: (local_ip_address) Setting up IPSec ... Deactivating old policy... Removing old policy... Connection roadwarrior: MyTunnel : (local_ip_address) MyNet : (local_ip_address)/255.255.255.255 PartnerTunnel: (ip_of_remote_system) PartnerNet : (ip_of_remote_system)/255.255.255.255 CA (ID) : C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root... PFS : y Auto : start Auth.Mode : MD5 Rekeying : 3600S/50000K Activating policy... Connection roadwarrior-net: MyTunnel : (local_ip_address) MyNet : (local_ip_address)/255.255.255.255 PartnerTunnel: (ip_of_remote_system) PartnerNet : (remote_subnet)/(remote_netmask) CA (ID) : C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root... PFS : y Auto : start Auth.Mode : MD5 Rekeying : 3600S/50000K Activating policy... C:\ipsec> |
现在,ping 您的网关主机。它应该会说“正在协商 IP 安全”几次,然后为您提供 ping 响应。请注意,这可能需要尝试几次;从 T1 连接到电缆调制解调器上的 VPN 服务器,通常需要 3-4 次 ping。对远程端的内部网络执行相同的操作,您应该就可以连接了!