Linux下架设L2TP IPSec VPN服务器(X509)
1 说明
所需软件及下载地址
CentOS 5.2-----------------------------------------------------最稳定的Linux服务器
ppp-2.4.3.tar.gz-----------------------------------------------PPP主程序
openssl-0.9.8i.tar.gz-----------------------------------------生产证书的主程序
xl2tpd-1.2.3.tar.gz--------------------------------------------FreeRadius服务器主程序
openswan-2.6.19.tar.gz-------------------------------------IPSec主程序
1.2 实现过程及功能特性
我们的试验网络拓扑如下图所示:
我们采用VM虚拟机试验,VM中的网络设置如下:
在VMware提供的Virtual Network Editor中的“Host Virtual Network Mapping”选项卡中,把VMNet2设为Not bridged,点击右边的“>”按钮-subnet,IP地址填入172.16.1.0,确定。
VPNGateway虚拟机需要再添加一个网卡,然后在Linux下按照下表设置各个网卡,并在虚拟机设置中选择网卡对应的网络。其中VPNGateway的网卡0属于VMNet0,网卡1属于VMNet2。网卡1的默认网卡设为192.168.2.1。
另外,XP本机自动位于VMNet0,不需要进行设置。
其中,192.168.1.0/24网段模拟外网,windows xp模拟外网拨号的VPN客户机。
172.16.1.0/24网段模拟内网,Juniper为内网中一台机器,作为企业内部的HTTP服务器。
2.架设服务器
具体过程不再赘述,相关配置文件如下:
OpenSWan 主要配置文件:
|
[root@mm ~]# cat /etc/ppp/chap-secrets # Secrets for authentication using CHAP # client server secret IP addresses test1 * test1 * l2tptest1 * l2tptest1 10.1.1.1 l2tptest2 * l2tptest2 * |
[root@mm ~]# cat /etc/ipsec.secrets RSA /etc/ipsec.d/private/vpngateway.key "123456" #192.168.1.251 %any : PSK "123456" |
[root@mm ~]# cat /etc/ipsec.conf #version 2.0 config setup interfaces=%defaultroute nat_traversal=yes virtual_private=%v4:192.168.0.0/16,%v4:10.0.0.0/8,%v4:172.16.1.0/24,%v4:!192.168.1.0/24 conn %default compress=yes authby=rsasig leftrsasigkey=%cert rightrsasigkey=%cert #conn roadwarrior #left=172.16.1.100 #leftcert=vpngateway.cert #leftsubnet=172.16.1.0/24 #right=%any #auto=add conn l2tpx509 pfs=no auto=add left=192.168.1.251 leftcert=vpngateway.cert leftprotoport=17/1701 right=%any rightca=%same rightprotoport=17/%any ############################################################################# #configure preshared secret authentication #conn l2tp # authby=secret # pfs=no # auto=add # type=transport # left=192.168.1.251 # leftprotoport=17/1701 # right=%any # rightprotoport=17/%any ############################################################################# #include /etc/ipsec.d/examples/no_oe.conf |
[root@mm ~]# cat /etc/ppp/options.xl2tpd ipcp-accept-local |
[root@mm ~]# cat /etc/xl2tpd/xl2tpd.conf [global] debug tunnel = yes [lns default] |
复制证书(在机器之间复制证书请确保安全性): #cp cacert.pem /etc/ipsec.d/cacerts #cp vpngateway.cert /etc/ipsec.d/certs #cp vpngateway.key /etc/ipsec.d/private #cp crl.pem /etc/ipsec.d/crls/ |
CA工作目录: /root/CA |
用户名l2tptest1,密码l2tptest1,进行拨号,
可以看到获得的IP 是/etc/ppp/chap\secrets 文件中指定的那个IP:
用户名l2tptest2,密码l2tptest2,进行拨号,
可以看到获得的IP 是从地址池中获得的: