用Openswan组建Linux IPSec
---Linux下建立IPSEC的vpn第一部分
1.概述
2.安装Openswan
3.认证和配置
3.1 RSAsig认证方式的配置
3.2 x.509证书认证的配置
3.3 RoadWarrior模式的配置
5.Windows客户端的配置
*****
1.概述
LInux上的VPN支持主要有三种:
1)IPSec ''s VPN 其主要代表有 FreeS/WAN、KAME
IPSec在Linux上支持主要有两个主要的分类,一为FreeS/WAN,现在已经停止开发,其分裂为两个项目,Openswan与 Strongswan.其可以用自身的IPsec内核堆栈(Kernel stack),称为KLIPS,也可以用2.6内核中的堆栈代码(下面我们称其为26sec),可以说是非常的灵活.还有就是来自BSD世界的KAME. KAME只能用内核堆栈.
IPSec差不多是最老的VPN标准了,她的依然很安全,当然是在配置好以后.言下之意,她的配置比较麻烦.本文下面将做说明.
2)SSL-Based VPN 其主要代表有 OpenVPN
SSL只要跑在应用层,理所当然的配置简单,只要机子能跑TCP或UDP就行,也可以穿过大多的防火墙.
3)PPTP-Based VPN 有(PoPTop)
PoPTop可以说是PPTP在Linux下的实现.不过,IPSec上跑L2TP更安全.
2.安装Openswan
FreeS/WAN已经在2004年三月停止开发,我们使用她的后继项目Openswan来做我们的IPSec实验.其相比FreeS/WAN有个好处,如果使用 26sec 的时候,Openswan不用打补丁,就可以用nat.
IPSec工作在网络层,需要系统内核态的支持,上面说过,有两个选择,用自带(26sec)的或用Openswan(KLIPS)的,为了方便(如何打补丁和编译内核不是本文讨论的重点),本文使用2.6自带的实现代码.同时本文使用RHEL AS4.0作为实验系统,在RHEL AS4.0上安装.
从http://www.openswan.org/code下载软件包,然后按照包中的说明安装.我们使用26sec,只要make programs;make install就可以搞定.值得注意的是,现在的Openswan已经内建些个好用的补丁,比如x.509和NAT Traversal的支持,使用起来非常的方便.
#tar –zxvf openswan-2.4.9.tar.gz
# make KERNELSRC=/lib/modules/`uname -r`/build module minstall
# make programs install
你也可以用
#ipsec verify来检验你的安装
3.认证和配置
一、 RSA Signature(RSA数字签名)认证的配制
Openswan支持许多不同的认证方式,包括RSA keys、pre-shared keys或x.509证书方式.RSA Signature比较简单,我先介绍下所要使用的命令
生成一个新的RSA密钥对
#ipsec newhostkey --output /etc/ipsec.secert
按left或right格式生成RSA Sig
#ipsec showhostkey --left(或--right)
知道了上面的命令,我们就可以配置一个net-to-net,就是网关对网关的通讯.所在的Linux主机为通讯的网关,作为其子网的出口,对于子网的用户来所是透明的,远程的子网在通讯后可以像自己的局域网一样的访问.
本文使用VMWare架设起一个四台虚拟Linux主机来进行试验.要在不同的机子上进行配置,请读者认清主机名.
172.16.40.18(right子网客户机,计算机名RA)
<->
192.168.32.30(right网关主机,计算机名VPN,同时eth1配置为172.16.40.254)
<->
192.168.32.29(left网关主机,计算机名ora92,同时eth1配置为172.16.50.254)
<->
172.16.50.18(left子网客户机,计算机名RB)
两个网关主机当然要安装好Openswan.
然后我们运行下面的命令
//ora92----left
#ipsec newhostkey --output /etc/ipsec.secert
#ipsec showhostkey --left >> /etc/ipsec.conf
#vi /etc/ipsec.conf //编辑ipsec.conf配置文件
#scp /etc/ipsec.conf root@right_GW_ipaddress:/etc/ipsec.conf
|