CentOS 6.3下Openswan实现双IDC互联
发布时间:2023-04-07 16:48:26 所属栏目:教程 来源:
导读:CentOS 6.3下Openswan实现双IDC互联
一、软件说明
1、Openswan简介
Openswan是Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性、完整性问题。
Openswan支持2.0、2.2、2.4以及2
一、软件说明
1、Openswan简介
Openswan是Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性、完整性问题。
Openswan支持2.0、2.2、2.4以及2
|
CentOS 6.3下Openswan实现双IDC互联 一、软件说明 1、Openswan简介 Openswan是Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性、完整性问题。 Openswan支持2.0、2.2、2.4以及2.6内核,可以运行在不同的系统平台下,包括X86、X86_64、IA64、MIPS以及ARM。 Openswan是开源项目FreeS/WAN停止开发后的后继分支项目,其分裂为两个项目,Openswan与 Strongswan,Openswan由三个主要组件构成:配置工具(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。IPSec差不多是最老的VPN标准了,她的依然很安全,当然是在配置好以后。言下之意,她的配置比较麻烦。本文下面将做说明。 因为FreeS/WAN已经在2004年三月停止开发,所以我们使用她的后继项目Openswan来做我们的IPSec实验。其相比FreeS/WAN有个好处,如果使用 26sec 的时候,Openswan不用打补丁,就可以用nat。 2、Openswan的安装 因为IPSec工作在网络层,所以需要系统内核态的支持,上面说过,有两个选择,用自带(26sec)的或用Openswan(KLIPS)的,为了方便(如何打补丁和编译内核不是本文讨论的重点),本文使用CentOS源中编译好的Openswan来进行实验。 # yum install openswan 如果你想从源码安装, 下载软件包,然后按照包中的说明安装。由于我们使用26sec,所以只要make programs;make install就可以搞定。值得注意的是,现在的Openswan已经内建些个好用的补丁,比如x.509和NAT Traversal的支持,使用起来非常的方便。你也可以用下面的命令来检验你的安装。 # ipsec verify 3、Openswan的认证方式 Openswan支持许多不同的认证方式,包括RSA keys、pre-shared keys或x.509证书方式。RSA Signature比较简单。 4、Openswan的连接方式: 1) Network-To-Network方式 Network-To-Network方式是把两个网络连接成一个虚拟专用网络。当连接建立后,每个子网的主机都可透明地访问远程子网的主机。要实现此种连接方式,要满足以下两个条件: I. 每个子网各自拥有一台安装有OpenSWan的主机作为其子网的出口网关或者路由; II.每个子网的IP段不能有叠加 2) Road Warrior方式 当使用Network-To-Network方式时,作为每个子网网关的主机不能像子网内部主机那样透明访问远程子网的主机,也就是说:如果你是一个使用LClient的移动用户,经常出差或是在不同的地点办公,你的LClient将不能用Network-To-Network方式与公司网络进行连接。Road Warrior方式正是为这种情况而设计的,连接建立后,你的LClient就可以连接到远程的网络了。 二、环境说明 1、网络拓扑 2、实验目的 3、实验环境介绍 三、Openswan环境部署 1、开启数据转发 # vim/etc/sysctl.conf net.ipv4.ip_forward=1 net.ipv4.conf.default.rp_filter=0 2、关闭icmp重定向 #sysctl-a|egrep"ipv4.*(accept|send)_redirects"|awk -F"="'{print$1"=0"}'>>/etc/sysctl.conf # sysctl -p 3、关闭SELinux #setenforce 0 4、安装openswan # yum install openswan lsof -y # rpm -ql openswan //查看安装了那些文件。 # ipsec --version //查看ipsec的版本 这里并没有加载任何的IPsec stack,当启动IPsec后悔自动加载系统自带的netkey。 # service ipsec start # ipsec verify //对ipsec进行验证 我们可以看到openswan监听在UDP的500和4500两个端口,其中500是用来IKE密钥交换协商,4500的NAT-T是nat穿透的。 四、Openswan配置(network-to-network) 1、使用pre-shared keys认证方式(PSK) 在192.168.0.50上面作如下修改,里面的配置参数很多,大家可以参照man ipsec.conf里面的讲解 # vim /etc/ipsec.conf version 2.0 config setup protostack=netkey //使用2.6内核内建模块netkey,2.6以下是KLIPS模块 nat_traversal=yes //NAT-T即NAT穿越 virtual_private= oe=off conn net-to-net authby=secret //使用预共享密钥方式进行认证 type=tunnel left=192.168.0.50 //一端IP地址 leftsubnet=192.168.20.0/24 //一端内网网段地址 leftid=@test1 //一端的标识符,可以任意填写,如果多个连接需要区分 leftnexthop=%defaultroute right=192.168.0.51 rightsubnet=192.168.10.0/24 rightid=@test2 rightnexthop=%defaultroute auto=add //add代表只是添加,但并不会连接,如果为start则代表着启动自动连接 同样在另一台vpnserver上面配置,信息和上面一下,不需要做什么修改。 #vim /etc/ipsec.secrets 192.168.0.50 %any 0.0.0.0 : PSK "123" 这个文件的格式为:“Local Ip address” “remote ip address” : PSK “your key” 在192.168.0.51上面修改成如下 #vim /etc/ipsec.secrets 192.168.0.51 %any 0.0.0.0 : PSK "123" 重启两个vpn服务 # service ipsec restart 然后启动一下我们的con #ipsec auto --up net-to-net 当我们看到ipsec sa estabilished,就证明我们连接成功了,也可以从中看到一些加密方法,密钥交换参数,我们也可以在配置文件里面添加如下信息进行修改。 ike=aes256-sha2_256;modp2048 phase2alg=aes256-sha2_256;modp2048 然后在clinet1上面去ping对端子网的设备,可以看到如下,但是VPNServer是不能ping通对方子网的设备的。 我们可以在任意VPNServer网关上面抓包,查看数据信息 # tcpdump -i eth0 -nn 其中ESP(Encapsulating Security Payload)就是加密数据。 测试通过后,可以把连接配置中 auto=add 更改为: auto=start 这样当Openswan启动时就可自动进行连接。 到此我们net-to-net基于psk模式的VPN就搭建成功了。 2、使用RSA Signature认证方式(RSA数字签名) openswan的安装方式同本文第三章节一样,下面我们主要讲解配置的不同。下面提到的L-Server指的是192.168.0.50(VPNServer1),R-Server指的是192.168.0.51(VPNServer2)。 在L-Server上面进行如下操作,在操作之前,请先删掉/etc/ipsec.secrets 生成一个新的RSA密钥对 # ipsec newhostkey --output /etc/ipsec.secrets 因为这个生成过程太过缓慢,我们使用下面方面进行加速生成 #rm-rf/dev/random #ln-s/dev/urandom/dev/random #ipsec newhostkey --output /etc/ipsec.secrets 以上内容同样的方法在R-Server上面执行一遍 在L-Server上执行ipsec showhostkey --left得到L-Server的公钥 #ipsec showhostkey --left 在R-Server上执行ipsec showhostkey --right得到R-Server的公钥 #ipsec showhostkey --right 请记住这两个key,后面会用到。 L-Sserver: 编辑/etc/ipsec.conf文件 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
