2.12编辑ipsec.conf文件类似下面的样子:
# basic configuration
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
left=%defaultroute
leftcert=vpnserver.rd.xxx.com.pem
auto=add
pfs=yes
conn roadwarrior
right=%any
conn roadwarrior-net
leftsubnet=192.168.1.0/255.255.255.0
right=%any
conn net-net
leftsubnet=192.168.1.0/255.255.255.0
right=%any
rightsubnet=192.168.10.0/255.255.255.0
conn world-net
leftsubnet=*
right=%any
rightsubnet=192.168.10.0/255.255.255.0
黑体字的部分是你需要根据你实际的环境更改的。我们用的两端的子网是192.168.1.0/24和192.168.10.0/24。文件中vpnserver.rd.xxx.com.pem是CA证书。这个配置是通用的,也就是说可以适用LAN-LAN方式的俩接和远端客户端两种方式。
2.13 下面配置分支机构的网关。这个机器也要事先安装完全freeswan等软件。
重新执行上面的2.7-2.9步骤生成分支机构的证书,注意:在回答问题的过程中,关于主机名称的部分的输入改变为你分支机构的网关机器名称,比如:vpncliet.rd.xxx.com。
2.14 复制下列生成的文件到分支机构网关上的相应位置(比如通过软盘复制):
cp vpnserver.rd.xxx.com.pem /etc/ipsec.d
cp vpnclient.rd.xxx.com.key /etc/ipsec.d/private
cp vpnclient.rd.xxx.com.pem /etc/ipsec.d
执行命令:openssl x509 –in vpnclient.rd.xxx.com.pem –
outform der –out /etc/x509cert.de
cp rootca.der /etc/ipsec.d/cacerts/RootCA.der
cp crl.pem /etc/ipsec.d/crls
2.15 配置分支机构的/etc/ipsec.secrets 写上一行:
RSA vpnclient.rd.xxx.com.key "password"。
其他行删除。Password就是前面回答问题的时候输入的密码。
2.16 配置/etc/ipsec.conf
# basic configuration
config setup
interfaces=%defaultroute
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
uniqueids=yes
conn %default
keyingtries=0
compress=yes
disablearrivalcheck=no
authby=rsasig
rightrsasigkey=%cert
leftrsasigkey=%cert
right=%defaultroute
rightcert=vpnclient.rd.xxx.com.pem
auto=add
pfs=yes
conn roadwarrior
left=21.9.22.22
leftcert=vpnserver.rd.xxx.com.pem
conn roadwarrior-net
left=21.9.22.22
leftcert=vpnserver.rd.xxx.com.pem
leftsubnet=192.168.1.0/255.255.255.0
conn net-net
left=21.9.22.22
leftcert=vpnserver.rd.xxx.com.pem
leftsubnet=192.168.1.0/255.255.255.0
rightsubnet=192.168.10.0/255.255.255.0
其中黑体的部分是你可以根据实际情况修改的。
2.17 首先启动server端的ipsec:ipsec setup restart,然后同样启动客户端的ipsec
2.18 建立通道:ipsec auto –up net-net然后在Server端可以用命令ipsec whack status应该可以看到新建立的几个通道。此时,你在两个子网中应该可以互相ping 通。
3、配置Frees.wan用于支持远程客户端访问。也就是允许一个Windows客户端,来通过VPN和公司内部的网络进行通讯。
第2种VPN玩法其实就是把分支机构的LAN换成一个单独的,地址不固定的机器。这样的应用适合总经理出差的时候从外地ISP拨号上网连接到本部网络的情况。期间,非但有认证,而且通过ISP和公网的数据全部是加密的。这种方式在服务器端的配置和上面完全一样(记得吗?我们在行面给出的配置已经是兼顾了两种用法)。这里需要做的是把总经理的笔记本配成VPN客户端。他的笔记本应该是windows2000的并且升级到sp2。
3.1 首先重复2.7-2.9步骤生成证书,其中有关主机名的部分可以输入你总经理的机器名。类似于:win.rd.xxx.com。当然,总经理的机器要是同名的。
3.2 在服务器端生成windows可以认的p12格式的密钥。
openssl pkcs12 -export
-in win.rd.xxx.com.pem
-inkey win.rd.xxx.com.key
-certfile demoCA/cacert.pem
-out win.rd.xxx.com.p12
3.3 用命令察看环境:最好把结果输出到文件记住,以后用得到。
openssl x509 -in demoCA/cacert.pem -noout -subject
3.4 把上面生成的p12文件传送到总经理的机器上,放在一个正规的地方(这个文件很重要)。
3.5 在总经理的机器上从http://vpn.ebootis.de站点下载:ipsec.exe
3.6 在总经理的机器上从: http://agent.microsoft.com/windows2000/techinfo/reskit/tools/existing/ipsecpolo.asp站点下载windwos2000的ipsec资源工具。
3.7 安装上述两个软件,并且把他们放在同一个目录中。
3.8 建立一个ipsec的MMC:(希望你知道MMC是什么)
依次进入Start/Run/MMC,
File (or Console) - Add/Remove Snap-in
单击 'Add'
选 'Certificates', 然后选 'Add'
选 'Computer Account', 然后点 'Next'.
选 'Local computer', 然后点 'Finish'.
选 'IP Security Policy Management', 然后点 'Add'.
选 'Local Computer', 然后点 'Finish'
选 'Close' 然后点 'OK'
3.9 增加一个证书
展开左侧窗口中 'Certificates (Local Computer)'
右键 'Personal', 选 'All Tasks' 然后点 'Import'
点 Next
输入哪个.p12 文件的路径 (就是刚才你从服务器网关复制过来的,浏览选择也可), 然后点'Next' 输入export password(密码), 然后点Next 选'Automatically select the certificate store based on the type of certificate', 然后点Next 点Finish, 如果有任何提示窗口弹出都选yes 退出MMC, 保存当前配置到管理工具中,这样就不用每次都重新来过了。以上所做就增加了一个证书到总经理的机器上。
3.10设置ipsec工具:
编辑总经理机器上的ipsec.conf文件,把rightca的=后面写成刚才openssl x509 -in demoCA/cacert.pem -noout –subject命令生成的结果。类似下面这样:
conn roadwarrior
left=%any
right=(ip_of_remote_system)
rightca="C=US,S=State,L=City,O=21vianet,
CN=CA,Email=ca@xxx.com"
network=auto
auto=start
pfs=yes
conn roadwarrior-net
left=%any
right=(ip_of_remote_system)
rightsubnet=192.168.1.0/24
rightca="C=US,S=State,L=City,O=21vianet,
CN=CA,Email=ca@xxx.com"
network=auto
auto=start
pfs=yes
黑体部分要注意配置正确。
3.12运行ipsec.exe有下面输出:
C:ipsec>ipsec
IPSec Version 2.1.4 © 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=US,S=State,L=City,O=ExampleCo,...
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=US,S=State,L=City,O=ExampleCo,...
PFS : y
Auto : start
Auth.Mode : MD5
Rekeying : 3600S/50000K
Activating policy...
C:ipsec>
这时候你从客户端ping服务器后面的内网得到几个'Negotiating IP Security'之后就可以ping通了。这样总经理带着这台笔记本到有互联网络的地方就可以象在办公室一样连接到公司里了。
值的注意的是,出于安全性的问题,我们建议你关闭VPN网关上面的所有其他服务,并仔细配置防火墙。通常的,如果你希望把所有的流量都发送给主站网关,在从站就不需要增加iptables策略。否则,需要增加这样一条策略:
iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE
在主站由于路由的原因,需要增加下面的策略:
iptables –t nat –A POSTROUTING –o ipsec0 –s ! 192.168.10.0/255.255.255.0 –
j SNAT –to 192,168.1.231
iptables –t nat –A POSTROUTING –o eth1 –s ! 192.168.10.0/255.255.255.0 –
j SNAT –to 192,168.1.231
每行中前面的黑体是子网网段,后面的是本网关的内侧出口。
注:原版资料在http://vpn.ebootis.de/ 详细资料在:http://www.natecarlson.com/include/showpage.php?cat=linux&page=ipsec-x509'








