一、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):CentOS 4.5
    内核版本:2.6.9-55
    客户端(windows XP)
    主机网络参数设置: 如无特殊说明,子网掩码均为255.255.255.0
    主机名       网卡eth0   网卡eth1     默认网关      用途
    LServer     192.168.1.10 172.16.1.1   192.168.1.1 Left网关
    RServer     192.168.1.20 172.16.2.1   192.168.1.1 Right网关
    LClient     172.16.1.2                172.16.1.1   Left客户机
    RClient     172.16.2.2                172.16.2.1   Right客户机
三、安装设置操作系统

系统采用最小安装:只安装开发工具
以下步骤只需在LServer、RServer上执行。
分别在LServer、RServer执行以下命令:
sysctl -a | egrep "ipv4.*(accept|send)_redirects" | awk -F "=" '{print $1"= 0"}' >> /etc/sysctl.conf    编辑/etc/sysctl.conf
vi /etc/sysctl.conf    将下面两项:  
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1    改为:  
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0    执行以下命令使设置生效:
sysctl -p   
在LServer上执行以下命令设置NAT:
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.1.0/24 -d !172.16.2.0/24 -j MASQUERADE   
在RServer上执行以下命令设置NAT:
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.2.0/24 -d !172.16.1.0/24 -j MASQUERADE

四、安装OpenSWan

1. 下载源码包
cd
wget http://www.openswan.org/download/openswan-2.4.7.tar.gz
    2. 解压源码包
tar zxvf openswan-2.4.7.tar.gz   
    3. 安装UserLand
cd openswan-2.4.7
make programs
make install   
    4. 安装KLIPS
cd ~/openswan-2.4.7
make KERNELSRC=/lib/modules/`uname -r`/build module minstall
depmod -a         加载KLIPS模块前必须先卸载NETKEY模块
rmmod xfrmuser af_key esp4 ah4 ipcomp xfrm4_tunnel         执行以下命令加载KLIPS
modprobe ipsec
    5. 验证安装
执行下面的命令验证OpenSWan是否正确安装
ipsec --version       如果程序正确安装,此命令将显示以下结果:      
如果已加载的IPsec stack是KLIPS,显示如下
Linux Openswan 2.4.7 (klips)
See `ipsec --copyright' for copyright information.      
如果没有加载任何IPsec stack,显示如下
Linux Openswan U2.4.7/K(no kernel code presently loaded)
See `ipsec --copyright' for copyright information.
  
五、配置OpenSWan

1. OpenSWan主要配置文件
/etc/ipsec.secrets                  用来保存private RSA keys 和 preshared secrets (PSKs)
/etc/ipsec.conf                     配置文件(settings, options, defaults, connections)
2. OpenSWan主要配置目录
/etc/ipsec.d/cacerts                存放X.509认证证书(根证书-"root certificates")
/etc/ipsec.d/certs                  存放X.509客户端证书(X.509 client Certificates)
/etc/ipsec.d/private                存放X.509认证私钥(X.509 Certificate private keys)
/etc/ipsec.d/crls                   存放X.509证书撤消列表(X.509 Certificate Revocation Lists)
/etc/ipsec.d/ocspcerts              存放X.500 OCSP证书(Online Certificate Status Protocol certificates)
/etc/ipsec.d/passwd                 XAUTH密码文件(XAUTH password file)
/etc/ipsec.d/policies               存放Opportunistic Encryption策略组(The Opportunistic Encryption policy groups)
3. OpenSWan连接方式
       OpenSWan有两种连接方式:
       1) Network-To-Network方式
          顾名思义,Network-To-Network方式是把两个网络连接成一个虚拟专用网络。当连接建立后,每个子网的主机都可透明地访问远程子网的主机。
          要实现此种连接方式,要满足以下两个条件:
          I. 每个子网各自拥有一台安装有OpenSWan的主机作为其子网的出口网关;
          II.每个子网的IP段不能有叠加
       2) Road Warrior方式
          当使用Network-To-Network方式时,作为每个子网网关的主机不能像子网内部主机那样透明访问远程子网的主机,也就是说:
          如果你是一个使用Laptop的移动用户,经常出差或是在不同的地点办公,你的Laptop将不能用Network-To-Network方式与公司网络进行连接。
          Road Warrior方式正是为这种情况而设计的,连接建立后,你的Laptop就可以连接到远程的网络了。
    4. OpenSWan的认证方式
       Openswan支持许多不同的认证方式,包括RSA keys、pre-shared keys、XAUTH、x.509证书方式
    5. 使用RSA数字签名(RSASIG)认证方式配制OpenSWan
       1) 在LServer、RServer上生成新的hostkey
ipsec newhostkey --output /etc/ipsec.secrets
       继续以下2-4步骤配置LServer-RServer之间的Network-To-Network方式链接:
       2) 在LServer上执行下面的命令获得leftrsasigkey(即LServer的公钥Pulic Key)
ipsec showhostkey --left          此命令的输出格式如下所示:
# RSA 2192 bits    LServer.FoxBB.Com    Sat Mar   3 15:45:00 2007
leftrsasigkey=0sAQOBIJFmj......
       3) 在RServer上执行下面的命令获得rightrsasigkey(即RServer的公钥 Pulic Key)
ipsec showhostkey --right          此命令的输出格式如下所示:
# RSA 2192 bits    RServer.FoxBB.Com    Sat Mar   3 15:51:56 2007
rightrsasigkey=0sAQNZZZjj......
       4) 在LServer及RServer上编辑/etc/ipsec.conf
vi /etc/ipsec.conf          在最后添加如下内容(leftrsasigkey及rightrsasigkey行换成前面2,3步所取得的值)
conn net-to-net
     left=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上执行下面的命令启动OpenSWan
service ipsec start
      6)在LServer及RServer上执行下面的命令验证OpenSWan是否正常运行
ipsec verify         如果OpenSWan正常运行,将会得到类似下面的输出
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path                               [OK]
Linux Openswan U2.4.7/K2.6.9-55.EL (netkey)
Checking for IPsec support in kernel                          [OK]
NETKEY detected, testing for disabled ICMP send_redirects     [OK]
NETKEY detected, testing for disabled ICMP accept_redirects   [OK]
Checking for RSA private key (/etc/ipsec.secrets)             [OK]
Checking that pluto is running                                [OK]
Two or more interfaces found, checking IP forwarding          [OK]
Checking NAT and MASQUERADEing                              
Checking for 'ip' command                                     [OK]
Checking for 'iptables' command                               [OK]
Opportunistic Encryption Support                              [DISABLED]
      7)在LServer或RServer上执行下面的命令进行LServer-RServer之间的Network-To-Network连接
ipsec auto --up net-to-net         将会得到类似下面的输出(如果最后的输出行中出现IPsec SA established,说明连接成功 )
104 "net-to-net" #1: STATE_MAIN_I1: initiate
003 "net-to-net" #1: received Vendor ID payload [Openswan (this version) 2.4.7
PLUTO_SENDS_VENDORID PLUTO_USES_KEYRR]
003 "net-to-net" #1: received Vendor ID payload [Dead Peer Detection]
003 "net-to-net" #1: received Vendor ID payload [RFC 3947] method set to=110
106 "net-to-net" #1: STATE_MAIN_I2: sent MI2, expecting MR2
003 "net-to-net" #1: NAT-Traversal: Result using RFC 3947 (NAT-Traversal):
no NAT detected
108 "net-to-net" #1: STATE_MAIN_I3: sent MI3, expecting MR3
004 "net-to-net" #1: STATE_MAIN_I4: ISAKMP SA established {auth=OAKLEY_RSA_SIG
cipher=oakley_3des_cbc_192 prf=oakley_md5 group=modp1536}
117 "net-to-net" #2: STATE_QUICK_I1: initiate
004 "net-to-net" #2: STATE_QUICK_I2: sent QI2, IPsec SA established {ESP=>0xa329d030
     
      8)测试IPSEC链接
在LClient上执行 ping 172.16.2.2       
或在RClient上执行 ping 172.16.1.2        
在ping命令执行期间,在LServer或RServer上执行 tcpdump -i eth0 -n host 192.168.1.10 and 192.168.1.20       
如果LClient和RClient可以互相ping通,tcpdump有类似下面的输出,说明Network-To-Network方式IPSEC已经成功连接
12:34:32.478903 IP 192.168.1.10 > 192.168.1.20: ESP(spi=0xf225b168,seq=0x7f)
12:34:32.480050 IP 192.168.1.20 > 192.168.1.10: ESP(spi=0x845109ca,seq=0x7f)
12:34:33.450660 IP 192.168.1.10 > 192.168.1.20: ESP(spi=0xf225b168,seq=0x80)
12:34:33.450938 IP 192.168.1.20 > 192.168.1.10: ESP(spi=0x845109ca,seq=0x80)
12:34:34.449218 IP 192.168.1.10 > 192.168.1.20: ESP(spi=0xf225b168,seq=0x81)
12:34:34.451034 IP 192.168.1.20 > 192.168.1.10: ESP(spi=0x845109ca,seq=0x81)

9)设置自动连接
测试通过后,可以把连接配置中
auto=add      更改为:
auto=start     这样当OpenSWan启动时就可自动进行连接。

转自:http://www.uddtm.com/os/linux/shiyongopenswangoujianlan-to-lan_×××_KLIPS_.php

转载于:https://blog.51cto.com/wubijaijia/187329

使用openswan构建lan-to-lan ×××(KLIPS)相关推荐

  1. 配置ASA 7.x to Router LAN−to−LAN IPsec Tunnel

    配置ASA 7.x to Router LAN−to−LAN IPsec Tunnel 详细配置见附件

  2. 什么是5G LAN 5G LAN商用爆发推动5G创新应用 提速数字转型新引擎

    继元宇宙风口之后,最近又有一个热词席卷物联网企业圈--5G LAN. 5G时代,在"4G改变生活,5G改变社会"的推动下,5G肩负着"万物互联,助力千行百业数字化转型&q ...

  3. 弱电工程师必知的LAN 交换机与 SAN 交换机,今天来盘它!

    LAN,也称局域网,是将住宅.学校.计算机实验室或办公楼等有限区域内的计算机相互连接起来的计算机网络. SAN 或存储区域网络也是一种计算机网络,它提供对整合和块级数据存储的访问. LAN 和 SAN ...

  4. teamviewer LAN 设置代理

    teamviewer LAN 设置代理 1,teamviewer LAN 设置代理 2,设置LAN代理 3,代理设置 1,teamviewer LAN 设置代理 -LAN接受,局域网可以直接连接IP进 ...

  5. 树莓派获取LAN ip地址并发送到微信

    方法1:通过hostname获取 树莓派官方系统默认hostname是raspberrypi.local,当启动1-2分钟连上网络以后,可以通过电脑ping raspberrypi.local来获取树 ...

  6. (11)LAN体系结构及各层的主要功能

    LAN体系结构: LAN 局域网 (Local Area Network)接口,通俗讲就是路由和用户之间网线口. LAN .WAN和W LAN1 . LAN 局域网 (Local Area Netwo ...

  7. OpenWRT 网络配置WAN口和LAN口

    转载于:https://blog.csdn.net/u012041204/article/details/53674946 一.基本概念 LAN:Local Area Network 的英文简称,即局 ...

  8. OpenWRT配置WAN口和LAN口

    一.基本概念 LAN:Local Area Network 的英文简称,即局域网 我们计算机和路由连在一起就是接这个口 WAN: Wide Area Network 的英文简称,即广域网 运营商拉进来 ...

  9. hfc网络文件服务器,网络、LAN、HFC、PLC四种接入方式的总结_网络_LAN_HFC_课课家...

    现在几乎每家每户应该都通了宽带,目前,家庭用户的宽带接入主要有ADSL.LAN.HFC.四种方式可以实现,而由于拥有网络的限制,任何一家宽带接入服务商为用户提供的接入方式只能是其中的一种或两种.现在互 ...

最新文章

  1. 【数据结构】栈的压入、弹出序列
  2. 单机多节点有意义吗_十行代码让你的单机“影分身”,分布式训练速度快到飞起...
  3. ExecutorService – 10个提示和技巧
  4. docker安装elasticsearch_Elasticsearch amp; Kibana 部署安装 (Docker)
  5. Symbian S60 签名工具
  6. Javascript:forEach、map、filter、reduce、reduceRight、find、findIndex、keys、values、entries、every、some的使用
  7. Nginx+Memcached+Tomcat集群配置
  8. Extjs window autoload
  9. qqkey获取原理_QQ key盗号木马原理分析
  10. 毕业设计之 ----基于微信小程序的商城购物系统
  11. vue 富文本编辑器,插件
  12. KC伺服舵机四个方向的打包程序
  13. 领导的本质就是:管理自己,影响别人
  14. springboot学习_Spring Boot 开源学习项目代码日爆爆爆
  15. linux脚本出错仍执行后续脚本,crontab执行脚本出错
  16. 计算机毕设项目:毕业论文管理系统(二)
  17. 计算机等级考网络课程答案,《计算机应用基础》课程考试试卷
  18. 全国少年乒乓球锦标赛
  19. 人群密度估计--Recurrent Attentive Zooming for Joint Crowd Counting and Precise Localization
  20. BZOJ4416: [Shoi2013]阶乘字符串

热门文章

  1. mysql57服务无法启动_将mysqld.service服务加入到systemctl
  2. Linux的开源免费办公软件,开源免费Office办公套件(LibreOffice)
  3. matlab 刻度非均匀控制,MATLAB 出一张好看的图
  4. 存放在外存上的数据关机后_小鑫话题 | 惊了!关机后SSD会丢数据?
  5. 图像水平梯度和竖直梯度代码_Opencv图像处理(三)
  6. hbase hdfs外部表_硬核干货长文!Hbase来了解一下不?
  7. 新能源汽车简史——电动汽车沉浮录
  8. gson json转map_Java 中几种常用 JSON 库性能比较
  9. 管理活动目录域服务实训_2019级酒店管理专业前厅与客房服务校外课程实训总结篇...
  10. 专题:区块链与数据共享