千家信息网

CentOS 6.5 ipesc下Openswan实现双IDC互联

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、软件说明1、Openswan简介Openswan是Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性、完整性问题。 openswan支持2.0、2.2、2.4以及
千家信息网最后更新 2026年10月31日CentOS 6.5 ipesc下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差不多是最老的×××标准了,她的依然很安全,当然是在配置好以后。言下之意,她的配置比较麻烦。本文下面将做说明。
因为FreeS/WAN已经在2004年三月停止开发,所以我们使用她的后继项目Openswan来做我们的IPSec实验。其相比FreeS/WAN有个好处,如果使用 26sec 的时候,Openswan不用打补丁,就可以用nat。
2、Openswan的安装

因为IPSec工作在网络层,所以需要系统内核态的支持,上面说过,有两个选择,用自带(26sec)的或用Openswan(KLIPS)的,为了方便(如何打补丁和编译内核不是本文讨论的重点),本文使用CentOS源中编译好的Openswan来进行实验。# yum install openswan 如果你想从源码安装,到http://www.openswan.org/code 下载软件包,然后按照包中的说明安装。由于我们使用26sec,所以只要make programs;make install就可以搞定。值得注意的是,现在的Openswan已经内建些个好用的补丁,比如x.509和NAT Traversal的支持,使用起来非常的方便。你也可以用下面的命令来检验你的安装。
# ipsec verify
3、Openswan的认证方式
Openswan支持许多不同的认证方式,包括 :

RSA keys、 (RSA Signature比较简单)

pre-shared keys、

xauth或x.509证书方式。.


4、Openswan的连接方式:
1) Network-To-Network方式 本文重点是以此来完成企业需求的

Network-To-Network方式是把两个网络连接成一个虚拟专用网络。当连接建立后,每个子网的主机都可透明地访问远程子网的主机。

要实现此种连接方式,要满足以下两个条件:

I. 每个子网各自拥有一台安装有OpenSWan的主机作为其子网的出口网关或者路由;

II.每个子网的IP段不能有叠加

(2)Road Warrior方式

当使用Network-To-Network方式时,作为每个子网网关的主机(openswan server)不能像子网内部主机那样透明访问远程子网的主机,也就是说:如果你是一个使用LClient的移动用户,经常出差或是在不同的地点办公,你的LClient将不能用Network-To-Network方式与公司网络进行连接。Road Warrior方式正是为这种情况而设计的,连接建立后,你的LClient就可以连接到远程的网络了。(或者使用SSL ***的开源产品open***来实现出差时候,远程拨号访问的需求)

更多详情请参见OpenSWan项目主页:http://www.openswan.org
5、本文将从以下几点进行测试
net-to-net模型 **********
1)基于pre-shared keys认证方式(PSK)
2)基于RSA Signature认证方式(RSA数字签名)
3)基于数字证书认证方式(x.509证书)
4)基于XAUTH认证方式(IPSec/Xauth PSK)
RoadWarrior
5)基于pre-shared keys认证方式(PSK)
6)基于RSA Signature认证方式(RSA数字签名)
7)基于数字证书认证方式(x.509证书)
8)基于XAUTH认证方式(IPSec/Xauth PSK)


二、环境说明
1、网络拓扑


2、实验目的


本使用目的是为了实现client1和client2两个不同地区不同子网的互通。即不同机房,不同网段的内网机器通信


3、实验环境介绍
设备名称
IP地址信息
所属机房

北京***server1外网   eth0  192.168.2.48     桥接内网         eth2  192.168.183.1     VMnet1网关            192.168.2.1
上海***server2外网eth0  192.168.2.111     桥接内网eth2  192.168.233.1     VMnet2网关     192.168.2.1client1    ---北京eth0      192.168.183.44   VMnet网关      192.168.183.1     说明,我使用的是网关路由模式,是client机器通过此网关来通信client2    ----上海eth0       192.168.233.44   VMnet4网关       192.168.233.1



我本地的网络是192.168.2.0/24网段,为了让×××Server可以上网,我这边把×××Server的eht0设定到了192.168.2.0/24网段,并且网卡设定为桥接,其他的网络安装上面表格配置好,这样我们就可以全部远程操作了,把每个主机的主机名修改好,这样便于我们观察。


三、Openswan环境部署

1、开启数据转发# vim /etc/sysctl.conf net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 02、关闭icmp重定向# sysctl -a | egrep "ipv4.*(accept|send)_redirects" | awk -F "=" '{print$1"= 0"}' >> /etc/sysctl.conf# sysctl -p3、关闭SELinux# setenforce 04、安装openswan    (两台***serve上面都是同样操作# yum install openswan lsof -y# rpm -ql openswan      //查看安装了那些文件。# ipsec --version       //查看ipsec的版本[root@***server1 etc]# ipsec --version  Linux Openswan U2.6.32/K2.6.32-431.el6.x86_64 (netkey)See `ipsec --copyright' for copyright information.这里并没有加载任何的IPsec stack,当启动IPsec后会自动加载系统自带的netkey。[root@***server1 etc]#service ipsec start[root@***server1 etc]# ipsec verify    //对ipsec进行验证(两台***serve上面都是同样操作)


#################

重要说明,如果前边的步骤没做安装文档完成,汇报一下错误,导致接下来的未知错误

[root@localhost ~]# ipsec verifyChecking your system to see if IPsec got installed and started correctly:Version check and ipsec on-path                            [OK]Linux Openswan U2.6.32/K(no kernel code presently loaded)Checking for IPsec support in kernel                          [FAILED] SAref kernel support                                  [N/A]Checking that pluto is running                             [FAILED]  whack: Pluto is not running (no "/var/run/pluto/pluto.ctl")Two or more interfaces found, checking IP forwarding              [FAILED]  whack: Pluto is not running (no "/var/run/pluto/pluto.ctl") Checking NAT and MASQUERADEing                              [OK]Checking for 'ip' command                                 OK]Checking /bin/sh is not /bin/dash                            [OK]Checking for 'iptables' command                             [OK]cat: /etc/ipsec.d/examples/no_oe.conf: No such file or directorycat: /etc/ipsec.d/examples/no_oe.conf: No such file or directoryOpportunistic Encryption Support



所以, 确保ipsec verify的结果都是如图所示方可继续接下来的配置


我们可以看到openswan监听在UDP的500和4500两个端口,其中500是用来IKE密钥交换协商,4500的NAT-T是nat穿透的


四、Openswan配置(network-to-network)
1、基于pre-shared keys认证方式(PSK)

在***server1()上面作如下修改,里面的配置参数很多,大家可以参照man ipsec.conf里面的讲解# vim /etc/ipsec.conf[root@melin etc]# grep -Ev  '#|^$' ipsec.conf.psk config setup     protostack=netkey     nat_traversal=yes     virtual_private=     oe=offconn net-to-net     ike=aes256-sha2_256;modp2048     phase2alg=aes256-sha2_256;modp2048     authby=secret           type=tunnel     left=192.168.2.48     leftsubnet=192.168.183.0/24     leftid=@test1      leftnexthop=%defaultroute     right=192.168.2.111     rightsubnet=192.168.233.0/24     rightid=@test2     rightnexthop=%defaultroute     auto=add  /add代表只是添加,但并不会连接,如果为start则代表着启动自动连接.




同样在另一台***server2上面配置和***sever1一样的配置文件

即: scp ipsec.conf 192.168.2.111:/etc/ (两台***serve上面的ipsec.conf配置文件是一样的)

[root@***server1 etc]#  vim /etc/ipsec.secrets192.168.2.48 %any 0.0.0.0 : PSK "123"这个文件的格式为:"Local Ip address"  "remote ip address" : PSK "your key"在192.168.2.111(***server2)上面修改成如下[root@***server2 etc]# vim /etc/ipsec.secrets192.168.2.111 %any 0.0.0.0 : PSK "123"重启两个***服务# service ipsec restart然后启动一下我们的con# ipsec auto --up net-to-net  (此处由于ipsec.conf中auto=add,所以需要手动添加)




当我们看到ipsec sa estabilished,就证明我们连接成功了,也可以从中看到一些加密方法,密钥交换参数,我们也可以在配置文件里面添加如下信息进行修改。(记得保持同步到***server2)


ike=aes256-sha2_256;modp2048
phase2alg=aes256-sha2_256;modp2048


然后在clinet1上面去ping对端子网的设备,可以看到如下,但是×××Server是不能ping通对方子网的设备的。

client1上的操作:

route add default gw 192.168.183.1



我们可以在任意×××Server网关上面抓包,查看数据信息

# tcpdump -i eth2 -nn

# tcpdump -i eth0 -nn


其中ESP(Encapsulating Security Payload)就是加密数据。

echo request

echo reply

表明既可以发送请求,也可以收到回应包


测试通过后,可以把连接配置中 auto=add

更改为: auto=start

这样当Openswan启动时就可自动进行连接。
到此我们net-to-net基于psk模式的×××就搭建成功了。


########################################################################################

二、基于RSA Signature认证方式(RSA数字签名)


注:因为我是接着上面的实验进行操作,一直有问题无法解决,后来重新安装了一下,安装下面的流程一次就成功了。
openswan的安装方式同本文刚开始安装一样,下面我们主要讲解配置的不同。

下面提到的L-Server指的是192.168.2..48(×××Server1),R-Server指的是192.168.2.111(×××Server2)。在L-Server上面进行如下操作生成一个新的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上面执行一遍# rm -rf /dev/random# ln -s /dev/urandom /dev/random# ipsec newhostkey --output /etc/ipsec.secrets在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文件
# vim /etc/ipsec.conf


# scp /etc/ipsec.conf 192.168.2.111:/etc (同步到R-server上)
# service ipsec restart

# ipsec auto --up net-to-net

当我们看到ipsec sa estabilished,就证明我们连接成功了

测试通过后,可以把连接配置中 auto=add

更改为: auto=start

# service ipsec restart

测试:

在一端client1去ping另一端的客户机client2,然后我们在***server上面抓包查看。

我们可以在任意×××Server1网关上面抓包,查看数据信息

# tcpdump -i eth2 -nn

# tcpdump -i eth0 -nn


此时一切测试成功之后
# chkconfig ipsec on

基于RSA Signature认证方式(RSA数字签名)搭建完毕。

方式 配置 认证 网关 子网 内核 不同 两个 主机 网络 文件 数字 成功 数据 证书 项目 实验 支持 测试 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 互联网科技公司经营范围 云之行互联网科技 中国互联网科技工作委员会毛军 科技企业和互联网企业 互联网科技股票 苏州互联网科技贷款公司 四个字互联网科技公司取名 滨湖区互联网智能科技产品供应 湖南洣水互联网科技有限公司扣款 字节跳动和互联网科技 广州恒生互联网科技有限 互联网还是高科技吗 哈尔滨屹滨互联网科技有限公司 国大互联网教育科技有限公司薪资 2021互联网科技公司排名 长沙渺峰互联网科技有限公司 中国科技和美国互联网 福仕德教育科技互联网 数字科技和互联网金融哪个好 互联网科技公司起名 互联网佳科技有限公司 金融科技 互联网金融 科技互联网公司logo 常德市电业局互联网科技部 阿里互联网科技公司 国大互联网教育科技有限公司工作 互联网公司黑科技创始人 银行科技岗属于互联网吗 张家口科技产业互联网平台
0