Sunday, May 29, 2011

使用openswan构建lan-to-lanVPN(KLIPS)


一、OpenSWan简介OpenSWan是Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性、完整性问题。OpenSWan支持2.0、2.2、2.4以及2.6内核,可以运行在不同的系统平台下,包括X86、X86_64、IA64、MIPS以及ARM。OpenSWan是开源项目FreeS/WAN停止开发后的后继分支项目,由三个主要组件构成:配置工具(ipsec命令脚本)Key管理工具(pluto)内核组件(KLIPS/26sec)26sec使用2.6内核内建模块Netkey,用来替代OpenSWan开发的KLIPS模块,2.4及以下版本内核无Netkey模块支持,只能使用KLIPS。如果你用的是2.6.9以上的内核,推荐使用26sec,可以不用给内核打Nat-T补丁就可以使用NAT,2.6.9以下版本内核的NETKEY存在Bug,推荐使用KLIPS。更多详情请参见OpenSWan项目主页:http://www.openswan.org二、系统环境操作系统(server):CentOS4.5内核版本:2.6.9-55客户端(windowsXP)主机网络参数设置:如无特殊说明,子网掩码均为255.255.255.0主机名网卡eth0网卡eth1默认网关用途LServer192.168.1.10172.16.1.1192.168.1.1Left网关RServer192.168.1.20172.16.2.1192.168.1.1Right网关LClient172.16.1.2172.16.1.1Left客户机RClient172.16.2.2172.16.2.1Right客户机三、安装设置操作系统系统采用最小安装:只安装开发工具以下步骤只需在LServer、RServer上执行。分别在LServer、RServer执行以下命令:sysctl-a|egrep”ipv4.*(accept|send)_redirects”|awk-F”=”‘{print$1″=0″}’/etc/sysctl.conf编辑/etc/sysctl.confvi/etc/sysctl.conf将下面两项:net.ipv4.ip_forward=0net.ipv4.conf.default.rp_filter=1改为:net.ipv4.ip_forward=1net.ipv4.conf.default.rp_filter=0执行以下命令使设置生效:sysctl-p在LServer上执行以下命令设置NAT:iptables-tnat-APOSTROUTING-oeth0-s172.16.1.0/24-d!172.16.2.0/24-jMASQUERADE在RServer上执行以下命令设置NAT:iptables-tnat-APOSTROUTING-oeth0-s172.16.2.0/24-d!172.16.1.0/24-jMASQUERADE四、安装OpenSWan1.下载源码包cdwgethttp://www.openswan.org/download/openswan-2.4.7.tar.gz2.解压源码包tarzxvfopenswan-2.4.7.tar.gz3.安装UserLandcdopenswan-2.4.7makeprogramsmakeinstall4.安装KLIPScd~/openswan-2.4.7makeKERNELSRC=http://blog.csdn.net/lib/modules/`uname-r`/buildmoduleminstalldepmod-a加载KLIPS模块前必须先卸载NETKEY模块rmmodxfrmuseraf_keyesp4ah4ipcompxfrm4_tunnel执行以下命令加载KLIPSmodprobeipsec5.验证安装执行下面的命令验证OpenSWan是否正确安装ipsec–version如果程序正确安装,此命令将显示以下结果:如果已加载的IPsecstack是KLIPS,显示如下LinuxOpenswan2.4.7(klips)See`ipsec–copyright’forcopyrightinformation.如果没有加载任何IPsecstack,显示如下LinuxOpenswanU2.4.7/K(nokernelcodepresentlyloaded)See`ipsec–copyright’forcopyrightinformation.五、配置OpenSWan1.OpenSWan主要配置文件/etc/ipsec.secrets用来保存privateRSAkeys和presharedsecrets(PSKs)/etc/ipsec.conf配置文件(settings,options,defaults,connections)2.OpenSWan主要配置目录/etc/ipsec.d/cacerts存放X.509认证证书(根证书-”rootcertificates”)/etc/ipsec.d/certs存放X.509客户端证书(X.509clientCertificates)/etc/ipsec.d/private存放X.509认证私钥(X.509Certificateprivatekeys)/etc/ipsec.d/crls存放X.509证书撤消列表(X.509CertificateRevocationLists)/etc/ipsec.d/ocspcerts存放X.500OCSP证书(OnlineCertificateStatusProtocolcertificates)/etc/ipsec.d/passwdXAUTH密码文件(XAUTHpasswordfile)/etc/ipsec.d/policies存放OpportunisticEncryption策略组(TheOpportunisticEncryptionpolicygroups)3.OpenSWan连接方式OpenSWan有两种连接方式:1)Network-To-Network方式顾名思义,Network-To-Network方式是把两个网络连接成一个虚拟专用网络。当连接建立后,每个子网的主机都可透明地访问远程子网的主机。要实现此种连接方式,要满足以下两个条件:I.每个子网各自拥有一台安装有OpenSWan的主机作为其子网的出口网关;II.每个子网的IP段不能有叠加2)RoadWarrior方式当使用Network-To-Network方式时,作为每个子网网关的主机不能像子网内部主机那样透明访问远程子网的主机,也就是说:如果你是一个使用Laptop的移动用户,经常出差或是在不同的地点办公,你的Laptop将不能用Network-To-Network方式与公司网络进行连接。RoadWarrior方式正是为这种情况而设计的,连接建立后,你的Laptop就可以连接到远程的网络了。4.OpenSWan的认证方式Openswan支持许多不同的认证方式,包括RSAkeys、pre-sharedkeys、XAUTH、x.509证书方式5.使用RSA数字签名(RSASIG)认证方式配制OpenSWan1)在LServer、RServer上生成新的hostkeyipsecnewhostkey–output/etc/ipsec.secrets继续以下2-4步骤配置LServer-RServer之间的Network-To-Network方式链接:2)在LServer上执行下面的命令获得leftrsasigkey(即LServer的公钥PulicKey)ipsecshowhostkey–left此命令的输出格式如下所示:#RSA2192bitsLServer.FoxBB.ComSatMar315:45:002007leftrsasigkey=0sAQOBIJFmj……3)在RServer上执行下面的命令获得rightrsasigkey(即RServer的公钥PulicKey)ipsecshowhostkey–right此命令的输出格式如下所示:#RSA2192bitsRServer.FoxBB.ComSatMar315:51:562007rightrsasigkey=0sAQNZZZjj……4)在LServer及RServer上编辑/etc/ipsec.confvi/etc/ipsec.conf在最后添加如下内容(leftrsasigkey及rightrsasigkey行换成前面2,3步所取得的值)connnet-to-netleft=192.168.1.10#LServer外网IP地址leftsubnet=172.16.1.0/24#LServer内网IP段leftid=@LServer.uddtm.com#LServer的标识leftrsasigkey=0sAQOBIJFmj…#LServer的公钥leftnexthop=%defaultroute#LServer的下一跳指定为默认路由地址right=192.168.1.20#RServer外网IP地址rightsubnet=172.16.2.0/24#RServer内网IP段rightid=@RServer.uddtm.com#RServer的标识rightrsasigkey=0sAQNZZZjj…#Rserver的公钥rightnexthop=%defaultroute#RServer的下一跳指定为默认路由地址auto=add#添加这个链接,但是在OpenSWan启动时不自动连接5)在LServer、RServer上执行下面的命令启动OpenSWanserviceipsecstart6)在LServer及RServer上执行下面的命令验证OpenSWan是否正常运行ipsecverify如果OpenSWan正常运行,将会得到类似下面的输出CheckingyoursystemtoseeifIPsecgotinstalledandstartedcorrectly:Versioncheckandipsec>



Published by
Published by xFruits
Original source : http://www.vpn123.tk/?p=651...

No comments:

Post a Comment