openswan简介,安装,部署

1. OpenSWan介绍

1.1 OpenSWan概述

OpenSWan是linux选Ipsec及I2tp协议的一个不错的实现方案。他支持和ipsec相关的大多数的扩展(RFC+IETF drafts)。Openswan项目起源于FreeS/WAN 2.04项目,该项目的功能很强大,可以很大程度上保证数据在跨网传输中的安全性、完整性,特别是通过它,饿哦没可以很好地实现跨机房或异地办公场所实现局域网互联解决方案,如果和openvpn工具配合,可以实现将注入门户网站的多机房互访及vpn的各种强大解决方案

OpenSWan也并不都是优点,首先,其官方社区还不完善,官方文档信息比较少

大中型企业最需要的方案-------跨公网实现多个机房通过局域网互联的重要生产应用场景(network-to-network or sete-to-site)

OpenSWan由三个主要组件构成

a.配置工具(ipsec命令脚本)

b.Key管理工具(pluto)

c.内核组件(KLIPS/26sec)

更多的openswan信息可查看软件包下面的INSTALL、README、DOCS。

2. 安装环境与主机规划


主机名


网卡eth0(外网)


网卡eth1(内网)


默认网关


用途


Lserver1


192.168.1.80


192.168.2.80


192.168.1.1


Left1网关


Rserver1


192.168.1.81


192.168.3.81


192.168.1.1


Lclient1


192.168.2.180


192.168.2.80


Left1客户机


Rclient1


192.168.3.181


192.168.3.81


Right1客户机

1)提示:Lserver1和Rserver1可以互相ping通

2)Lclient可以ping通Lserver1,甚至可以ping通Rserver1的外网卡

3)Rclient可以ping通Rclient

4)Lclient可以ping通rserver1,同时可以ping通lserver1

5)lclient不能和rclient1互通。

6)最终目的就是lclient能和rclient1互通

1)在部署前进行主机规划的意义非常重大,它可以让我们思路清晰,避免走冤枉路

2)如无特殊说明,上述规划中的子网掩码均为24位

3)上述中L表示left,R表示right

生产环境网段划分

2.2 检查主机间的连接是否正常

7)Lserver1和Rserver1可以互相ping通

8)Lclient可以ping通Lserver1,甚至可以ping通Rserver1的外网卡

9)Rclient可以ping通Rclient

10)Lclient可以ping通rserver1,同时可以ping通lserver1

11)lclient不能和rclient1互通。

12)最终目的就是lclient能和rclient1互通

3. 安装技术软件及配置系统参数

3.1 安装基础软件包

yum -y install ipsec-tools

yum -y install gmp gmp-devel gawk flex bison

3.2 检查安装的基础软件包

rpm -aq gmp gmp-devel gawk flex bison ipsec-tools

3.3 配置内核参数

cp /etc/sysctl.conf /etc/sysctl.conf.$(date +%F)

sysctl -a | egrep "ipv4.*(accept|send)_redirects" | awk -F "=" ‘{print $1 "=0"}‘ >> /etc/sysctl.conf

强调:如果不进行内核调优,后面会出现问题

sed -i ‘s#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#g ‘ /etc/sysctl.conf

sed -i ‘s#net.ipv4.conf.default.rp_filter = 1#net.ipv4.conf.default.rp_filter = 0#g ‘ /etc/sysctl.conf

egrep "rp_filter|forward" /etc/sysctl.conf

sysctl -p

4. 安装OpenSwan软件

4.1 下载编译并安装

wget https://download.openswan.org/openswan/openswan-2.6.40.tar.gz

mkdir -p /home/yan/tools

cd /home/yan/tools

tar -xf openswan-2.6.40.tar.gz

cd openswan-2.6.40

make programs

make install

4.2 验证安装结果

[[email protected] ~]# ipsec --version

Linux Openswan U2.6.40/K(no kernel code presently loaded)

See `ipsec --copyright‘ for copyright information.

[[email protected] ~]# ipsec verify

4.3 启动服务

/etc/init.d/ipsec start

ipsec_setup: Starting Openswan IPsec 2.6.40...

ipsec_setup: No KLIPS support found while requested, desperately falling back to netkey

ipsec_setup: NETKEY support found. Use protostack=netkey in /etc/ipsec.conf to avoid attempts to use KLIPS. Attempting to continue with NETKEY

4.4 检查服务

[[email protected] ~]# /etc/init.d/ipsec status

IPsec running  - pluto pid: 15141

pluto pid 15141

No tunnels up

[[email protected] ~]# ipsec verify

Checking if IPsec got installed and started correctly:

Version check and ipsec on-path                   [OK]

Openswan U2.6.40/K2.6.32-431.el6.x86_64 (netkey)

See `ipsec --copyright‘ for copyright information.

Checking for IPsec support in kernel              [OK]

NETKEY: Testing XFRM related proc values

ICMP default/send_redirects              [OK]

ICMP default/accept_redirects            [OK]

XFRM larval drop                         [OK]

Hardware random device check                      [N/A]

Two or more interfaces found, checking IP forwarding[OK]

Checking rp_filter                                [ENABLED]

/proc/sys/net/ipv4/conf/eth0/rp_filter           [ENABLED]

/proc/sys/net/ipv4/conf/eth1/rp_filter           [ENABLED]

Checking that pluto is running                    [OK]

Pluto listening for IKE on udp 500               [OK]

Pluto listening for IKE on tcp 500               [NOT IMPLEMENTED]

Pluto listening for IKE/NAT-T on udp 4500        [OK]

Pluto listening for IKE/NAT-T on tcp 4500        [NOT IMPLEMENTED]

Pluto listening for IKE on tcp 10000 (cisco)     [NOT IMPLEMENTED]

Checking NAT and MASQUERADEing                    [TEST INCOMPLETE]

Checking ‘ip‘ command                             [IP XFRM BROKEN]

Checking ‘iptables‘ command                       [OK]

解决方法:

echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter

echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter

4.5 查看pluto端口

[[email protected] ~]# netstat -ntlpu | grep pluto

udp        0      0 127.0.0.1:500               0.0.0.0:*                               29543/pluto

udp        0      0 192.168.1.81:500            0.0.0.0:*                               29543/pluto

udp        0      0 192.168.3.81:500            0.0.0.0:*                               29543/pluto

udp        0      0 127.0.0.1:4500              0.0.0.0:*                               29543/pluto

udp        0      0 192.168.1.81:4500           0.0.0.0:*                               29543/pluto

udp        0      0 192.168.3.81:4500           0.0.0.0:*                               29543/pluto

udp        0      0 ::1:500                     :::*                                    29543/pluto

5. 配置OpenSwan

5.1 Openswan主要配置文件

/etc/ipsec.secrets用来保存private RSA keys 和 preshared secrets (PSKs)

/etc/ipsec.confOpenSWan主要配置文件(settings, options, defaults, connections)

5.2 Openswan主要配置说明

/etc/ipsec.d/cacerts存放X.509认证证书

/etc/ipsec.d/certs存放X.509客户端证书

/etc/ipsec.d/crls存放X.509证书撤销文件

/etc/ipsec.d/private存放X.509认证私钥

/etc/ipsec.d/ocspcerts存放X.509 OCSP证书

/etc/ipsec.d/policies存放Opportunistic Encryption 策略组

5.3 OpenSWan连接方式

1)Network-to-Network

条件:

每个子网各自拥有一台安装有Openswan的主机作为其子网的出口网关

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

2)Road Warrior方式

当使用Network-to-Network方式时,作为每个子网网关的之际不能像子网内部主机那样透明访问远程子网的之际,也就是说:如果你是一个使用笔记本电脑的移动用户,经常出差或是在不同的地点办公,你的PC将不能用Network-to-Network方式与公司网络进行连接。

Road Warrior方式正是为这种情况而设计的,连接建立后,你的pc就可以链接到远程的网络了

5.4 使用RSA数字签名(RSASIG)认证方式配置openswan

1)在Lserver1、Rserver1上分别生成新的hostkeys

备份:

cp /etc/ipsec.secrets /etc/ipsec.secrets.$(date +%U%T)

ipsec newhostkey --output /etc/ipsec.secrets (有时候长时间没反应,需要多等下)

2)在Lserver上执行下面的命令获得leftrsasigkey(即Lserver的公钥Public Key)

[[email protected] ~]# ipsec showhostkey --left

[[email protected] ~]# ipsec showhostkey --left >tmp.log

3)在Rserver上执行下面的命令获得leftrsasigkey(即Lserver的公钥Public Key)

[[email protected] ~]# ipsec showhostkey --right

[[email protected] ~]# ipsec showhostkey --right >tmp.log

4)编辑配置文件ipsec.conf

模板文件cat /usr/local/share/doc/openswan/ipsec.conf-sample

vim /etc/ipsec.conf

两边重新启动

/etc/init.d/ipsec restart

/etc/init.d/ipsec status

IPsec running  - pluto pid: 15761

pluto pid 15761

8 tunnels up

some eroutes exist

不出意外,已经配置正确

5)对每个子网IP做NAT映射

所有主机都通过openswan网关出网

Lserver1:

iptables -t nat -I POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE

echo “iptables -t nat -I POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE” >> /etc/rc.local

(此时Lclient可以上网了)

Rserver1:

iptables -t nat -I POSTROUTING -o eth0 -s 192.168.3.0/24 -j MASQUERADE

echo “iptables -t nat -I POSTROUTING -o eth0 -s 192.168.3.0/24 -j MASQUERADE” >> /etc/rc.local

(此时Rclient可以上网了)

6. 启动OpenSwan服务

6.1 分别重启OpenSwan服务

/etc/init.d/ipsec restart

此时Lclient 192.168.2.180和 Rclient 192.168.3.181 互ping能通,目标完成

7.

7.2 通过route实战解决跨机房间的故障

此类问题,最多的就是排查路由的问题,因为有些服务器的网关并不是openswan网关的地址,即不符合本文开头的约定。

此时就需要route命令为网关地址不是openswan网关的地址的客户端添加特定路由。

7.3 通过tcpdump实战解决跨机房间的故障

tcpdump检查实际上是对数据包去和回进行跟踪,然后采取措施纠正其错误

tcpdump -nnn -i eth0 -s 10000 | grep ICMP

如果是多机房下面增加一段配置

7.4

1)大中型公司代码上线的解决方案

2)IDC机房或办公室vpn拨号访问解决方案

3)跨机房跨办公场所互联解决方案(vpn和ipsec)  <==修路搭桥

4)拨号到一个主机房,然后直接方案其他机房的内部服务器方案(借助2,3)

5)跨机房的数据同步方案(文件同步rsync,inotify,unsion,csync) <==跑汽车,火车

6)跨机房的数据同步方案(m-s)

7)跨机房之间的业务访问解决方案

a.要尽可能多的本地访问,少量异地访问,例如,A机房的web原来是访问B机房的DB(开发人员的思路)改成远程写B机房的数据库,然后都本地的数据库(从对端把主库数据同步到A端从数据库中)

思想:远程写,本地读(包括图片文件和数据等)

8)跨机房通过队列异步同步数据(A机房写消息队列里Q,B机房消费A机房的消息队列Q)

9)tcpdump排查故障的思路思想

10)统一认证解决方案(服务器\FTP,SAMBA,VPN,POSTFIX,SVN,HTTP,JIRA,GIT)

11)跨机房业务的高可用可用方案(VPN,IPSEC)

时间: 2024-10-17 04:46:54

openswan简介,安装,部署的相关文章

Sqoop简介及安装部署

简介: Apache Sqoop是专为Apache Hadoop和结构化数据存储如关系数据库之间的数据转换工具的有效工具.你可以使用Sqoop从外部结构化数据存储的数据导入到Hadoop分布式文件系统或相关系统如Hive和HBase.相反,Sqoop可以用来从Hadoop的数据提取和导出到外部结构化数据存储如关系数据库和企业数据仓库. Sqoop专为大数据批量传输设计,能够分割数据集并创建Hadoop任务来处理每个区块. 下面介绍下安装部署的步骤: 1.下载安装包并解压 下载地址 作者使用的是s

Mongodb简介及安装部署配置

1.Mongodb简介及安装部署 Mongodb 逻辑结构:Mongodb 逻辑结构 MySQL逻辑结构库database 库集合(collection) 表文档(document) 数据行 2.安装前准备(1)redhat或cnetos6.2以上系统(2)系统开发包完整(3)ip地址和hosts文件解析正常(4)iptables防火墙&SElinux关闭(5)关闭大页内存机制############################################################

node_简介及部署安装配置

Node简介及部署安装配置 一.node简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型 Node 是一个让 JavaScript 运行在服务端的开发平台,实质是对Chrome V8引擎进行了封装. 二.node优点 1.单线程 2.非阻塞IO 3.V8虚拟机 4.事件驱动 三.下载安装 1.下载node.js 打开官网下载链接https://nodejs.org/zh-cn/downlo

DB2简介和安装部署

一.DB2相关概念 1.DB2体系结构: DB2体系结构中的最高一层是系统,一个系统表示DB2的一个安装.在由很多机器组成 的网络环境中,我们有时=也称系统为数据库分区,一个系统可以包含多个DB2实例,每个实例能够管理一个或多个数据库. 2.实例(Instance): 实例也称为数据库管理器(Database Management Application),是数据库管理器在内存中的映像,是管理数据的DB2代码.实例相当于Informix  Server,在一台机器上可以有多个相互独立的实例,实例

第一课作业——Redis简介及安装部署

第一课时作业 静哥 by 2016.2.1~2016.2.22   [作业描述] 1.总结redis应用场景和优点 2.安装redis,以服务方式进行安装部署 [作业一:总结redis应用场景和优点] 1. redis应用场景: (1) 符合复杂数据结构和业务的场景,例如:商品的实时价格.库存和订单业务.微博评论.消息队列等: (2) 对宕机时间有要求的,需要利用redis的持久化机制,在宕机后快速恢复数据的业务,例如登录缓存的应用: 2. redis的优点: (1) 开源的.分布式缓存数据库,

自动化运维工具--Ansible(安装部署、模块简介与操作)

一.Ansible概述 互联网的快速发展导致产品更新换代速度加快,按照传统维护操作使得工作效率低下,自动化运维以尽可能安全高效的完成工作为目的,实现代替传统工作方式. 自动化运维工具划分为两类: 一是需要使用代理工具的,也就是基于agent程序来实现管理功能,例如puppet.func.zabbix等 二是不需要代理配置工具的,可以直接基于SSH服务来完成管理功能,如ansible,fabric等. 自动化运维工具比较: 工具 开发语言 结构 配置文件格式 运行任务 Ansible Python

Hbase Phoenix简介及其安装部署

1. 什么是Phoenix? phoenix,中文译为“凤凰”,很美的名字.Phoenix是由saleforce.com开源的一个项目,后又捐给了Apache基金会.它相当于一个Java中间件,提供jdbc连接,操作hbase数据表.Phoenix是一个HBase的开源SQL引擎.你可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据,查询你的HBase数据.Phoenix的团队用了一句话概括Phoenix:"We put the SQL back in NoSQL&quo

K8s(Kubernetes)简介及安装部署

前言: k8s是Kubernetes的简称,因为K和S之间有8个字母,所以才会被称为k8s. k8s最初是在Google公司内部使用了10多年的技术,它的前身是叫做Borg(博格),直到2015年才被Google公司捐赠为开源项目. 如果之前我们有接触过OpenStack,那么应该知道管理VM虚拟机资源可以用OpenStack.那么管理容器所对应的开源平台是什么呢?k8s就是其中之一,在k8s之前也有很多容器管理平台,有docker自身的docker swarm,也有apache推出的Mesos

Window Server 2008 R2 上安装部署 Exchange 2010

最近先来无事,捣鼓捣鼓 Exchange Server 2010 服务的安装和调试. 一,事先规划: 两台服务器,一台域DC ,一台做 Exchange Server: Exchange 2010 此处将所有功能安装在一台机器上. DC                             Exchange Window Server 2008 R2           Window Server 2008 R2 IP  :10.0.0.100                 IP   :10

CentOS 6.5下JIRA安装部署

JIRA简介: JIRA:专业的缺陷跟踪和项目管理软件 JIRA是一个项目跟踪管理工具,帮助团队创建计划任务.构建并发布优秀的产品.全球成千上万的团队选择JIRA,用JIRA来捕获.组织管理缺陷.分配任务,跟踪团队的活动.不论在桌面PC还是移动终端设备上,JIRA都能完美的运行,帮助团队完成工作. 更多的介绍这里就不详细列出了:http://www.unlimax.com/jira.html及http://www.confluence.cn CentOS 6.5安装配置Jira.Confluen