VPN

理解internet key exchange(IKE)作用

IKE提高了IPsec的安全性和灵活性,让IPsec的协商更加智能化。说白了就是对IPsec SA实施了二重保护。

IKE提供了IPsec对等体的验证、协商密钥、保护了IPsec SA的协商,可以说是IPsec的第二重安全保障,关于IKE的作用如下:

  • 消除了安全对等体两端把IPsec安全参数手工放入到加密表。
  • 允许为IPsec安全关联(SA)指定一个生存期
  • 允许在IPsec会话期间改变加密密钥
  • 允许IPsec更简便的方式使用PKI架构,例如数字证书的使用
  • 允许对等体的动态验证

理解IKE的传输集

IKE使用大量的独立的安全参数,来保障协商的安全,但它并不是试图去单独协商每个安全参数,而是将这些不同的安全参数组合成一个集合,这个集合叫IKE传输集,或者叫做IKE的安全策略,这与IPsec的安全关联一样,如果两个对等体设备之间没有相同的安全参数集,那么它的IKE协商将会失败,IKE的传输集有5个重要参数:

  • IKE的加密算法:常用的加密算法(DES、3DES、AES)
  • IKE的验证算法:常用的验证算法(MD5、SHA-1)
  • IKE的密钥:主要用于完成对等体身份验证,其中包括使用预共享密钥、RSA签名(数字证书),Nonce(一次性密码)。在初级IPsecVPN学习阶段,只要学会预共享密钥配置IKE即可。
  • Diffie-Hellman版本:它是创建VPN最重要的问题之一,交换密钥,它使用DH算法建立只有协商两端才知道的一个共享安全密钥。允许VPN的两端通过非安全的通道共享密钥。思科的设备支持3组Diffie-Hellman,分别是768比特素数的组1;1024比特素数的组2;1536比特素数的组5,素数最大,生成的密钥就越长,安全性越高,素数越大,密钥计算的时间越长。
  • IKE的生命周期:时间或者比特数。

R1(config)#crypto isakmap policy 1  //指定IKE传输集策略1

R1(config-isakmp)#encryption aes  //指定IKE的加密方式

R1(config-isakmp)#authentication pre-share  //指定IKE的验证方式为预共享

R1(config-isakmp)#hash sha  //指定IKE的验证算法为SHA-1

R1(config-isakmp)#group 5   //指定使用Diffie-Hellman组5 即1536比特素数

R1(config-isakmp)#lifetime 40000 //指定IKE的生命周期


简述IPsec的工作过程

第一步:首先是IPsec通信的发送方感知要加密的数据流量,如果满足所定义的加密数据流量的规划就进入IPsec的第二步,该过程将被IPsec配置中的ACL所定义;否则,将使用正常路由的方式来转发数据。

第二步:进入IKE第一阶段的协商,协商的内容包括三方面:第一个内容是交换IKE的基本安全策略集,这个内容被IPsec配置中的crypto isakmp policy 1(或者其他编号)所定义,这个策略编号只在本地有效,协商双方所定义的这个策略集编号不一定必须相同;第二个内容是创建与交换DH密钥,这个内容被IPsec配置中的group 1、2、5、7所定义,其目的是允许VPN的双方在不安全的通信通道上建立一个共享密钥;第三个内容是协商对等体身份验证,使用什么样的方式来验证对等体身份,可以使用PSK(预共享密钥)、RSA(签名)、RSA加密随机数。我们现阶段使用预共享密钥方式,这个内容被IPsec配置中的authentication pre-share所定义。上述的三个内容都属于IKE的第一阶段协商,核心目标是:为IKE第二阶段的协商奠定基础和保护第二阶段的协商。

第三步:进行IKE第二阶段的协商,在这个阶段中主要协商IPsec的安全参数,因为它只产生在IKE第一阶段成功协商完成之后,所以通常把IKE的第二阶段叫做“快速模式”。它在IPsec配置中被crypto IPsec transform-set所定义。

第四步:当完成上述步骤的协商后,就可以安全的发送数据了。IPsec将保护这些会话。

第五步:当需要被保护的数据收发完成后,IPsec完成隧道的终结。

实验拓扑

配置如下:

北京

BJ(config)#int f0/0

BJ(config-if)#ip add 202.202.1.1255.255.255.0

BJ(config-if)#no shutdown

BJ(config-if)#exit

BJ(config)#int loopback 0

BJ(config-if)#ip add 192.168.1.1255.255.255.0

BJ(config-if)#no shutdown

BJ(config-if)#exit

BJ(config)#router rip

BJ(config-router)#version 2

BJ(config-router)#no auto-summary

BJ(config-router)#network 202.202.1.0

BJ(config-router)#exit

BJ(config)#ip route 0.0.0.0 0.0.0.0 f0/0

BJ(config)#crypto isakmp policy 1

BJ(config-isakmp)#encryption aes

BJ(config-isakmp)#hash sha

BJ(config-isakmp)#authenticationpre-share

BJ(config-isakmp)#group 2

BJ(config-isakmp)#exit

BJ(config)#crypto isakmp key 0 benetaddress 202.202.2.2

BJ(config)#access-list 100 permit ip192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

BJ(config)#crypto ipsec transform-set benetesp-aes ah-sha-hmac

BJ(cfg-crypto-trans)#mode tunnel

BJ(cfg-crypto-trans)#exit

BJ(config)#crypto map benetmap 1ipsec-isakmp

BJ(config-crypto-map)#match address 100

BJ(config-crypto-map)#set peer 202.202.2.2

BJ(config-crypto-map)#set transform-setbenet

BJ(config-crypto-map)#exit

BJ(config)#interface f0/0

BJ(config-if)#crypto map benetmap

BJ(config-if)#exit

*Mar 1 00:10:02.871: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

BJ(config-if)#exit

BJ(config)#exit

上海

SH(config)#int f0/0

SH(config-if)#ip add 202.202.2.2255.255.255.0

SH(config-if)#no shutdown

SH(config-if)#exit

SH(config)#int loopback 0

SH(config-if)#ip add 192.168.2.1255.255.255.0

SH(config-if)#no shutdown

SH(config-if)#exit

SH(config)#router rip

SH(config-router)#version 2

SH(config-router)#no auto-summary

SH(config-router)#network 202.202.2.0

SH(config-router)#exit

SH(config)#ip route 0.0.0.0 0.0.0.0 f0/0

SH(config)#crypto isakmp policy 1

SH(config-isakmp)#encryption aes

SH(config-isakmp)#hash sha

SH(config-isakmp)#group 2

SH(config-isakmp)#authentication pre-share

SH(config-isakmp)#exit

SH(config)#crypto isakmp key 0 benetaddress 202.202.1.1

SH(config)#access-list 100 permit ip192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

SH(config)#crypto ipsec transform-set benetesp-aes ah-sha-hmac

SH(cfg-crypto-trans)#mode tunnel

SH(cfg-crypto-trans)#exit

SH(config)#crypto map benetmap 1ipsec-isakmp

SH(config-crypto-map)#match address 100

SH(config-crypto-map)#set peer 202.202.1.1

SH(config-crypto-map)#set transform-setbenet

SH(config-crypto-map)#exit

SH(config)#interface f0/0

SH(config-if)#crypto map benetmap

SH(config-if)#exit

ISP

ISP(config)#int f0/0

ISP(config-if)#ip add 202.202.1.2255.255.255.0

ISP(config-if)#no shutdown

ISP(config-if)#exit

ISP(config)#

ISP(config)#int f1/0

ISP(config-if)#ip add 202.202.2.1255.255.255.0

ISP(config-if)#no shutdown

ISP(config-if)#exit

ISP(config)#

ISP(config)#router rip

ISP(config-router)#version 2

ISP(config-router)#no auto-summary

ISP(config-router)#network 202.202.1.0

ISP(config-router)#network 202.202.2.0

ISP(config-router)#exit

时间: 2024-08-01 00:22:02

VPN的相关文章

[原创] 关于免费VPN我踩过的那些坑

关于免费VPN我踩过的那些坑 因为工作的关系,笔者经常需要用到VPN, 访问国外国网站,你懂的. 我曾经试着自己购买VPS搭建过VPN, 被封了后就没心情再维护了,毕竟直接买VPN比VPS便宜太多.时间一长,也就有了一些经验. 这里总结成表格的形式,分享给大家: [NydusVPN] 知乎推荐的香港VPN, 比直通车好,线路稳定性好,办公游戏适合.注册前7天内可以无条件退款哦.  官方网站  [Astrill] 老牌VPN,但近两年被封底得太厉害,现在已经不太给力了. 注册第一个月能免费使用(付

通过SoftEther VPN自建VPN服务器

SoftEther VPN是日本政府的研究和开发项目的一项工作,由日本的经济.贸易和工业部资助,由信息化推进机构管理.SoftEther VPN在日本筑波大学开发的免费软件.具有终极兼容许多设备的高性能VPN.支持Windows.Mac.智能手机.平板电脑(iPhone\iPad\Android\WindowsRT)和思科或其他VPN路由器.SoftEther VPN也接受OpenVPN和MS-SSTP VPN客户端. 可以从http://www.softether-download.com/(

使用express vpn导致国内网站无法访问的问题

一直在付费使用express vpn,网速很快. 但是最近发现一个问题,使用express vpnFQ之后,国外的网站访问正常,但是国内的网站却无法访问. 我的使用环境:win 10, 使用express vpn dns, expess vpn auto connect. 为了找到原因,在express vpn连接上的条件下,打开cmd窗口,依次ping baidu.com和163.com,结果为找不到域名对应的IP地址. 然后我再关闭express vpn连接,重新ping,发现IP地址解析正

openvpn实现分流,指定IP走VPN,其它走本地网络

最近研究了Openvpn好久.现在写一点心得出来. 客户需求:看香港某几个网站使用openvpn翻墙过去,其它所有访问不能用翻墙,要走本地. 系统环境: Centos x64位 6.8, 使用在线yum安装 一.服务器端配置 详细配置参考其它配置文档 [[email protected] openvpn]# rpm -qa | grep openvpn openvpn-2.3.11-1.el6.x86_64 生成ta.key文件,用于tls-auth认证. # openvpn --genkey

centos pptp 客户端连接vpn

vpn翻墙现在很普遍,无论是个人还是公司,都会用的到.对于个人实现很容易,直接购买一个云主机,现在的云主机都有这样的服务,购买后直接就可以使用.有的vpn对使用也有一定数量限制,如:只允许多少个客户端连接,但对于公司来说,根本无法满足. 所以经过摸索总于有了答案.通过跳转的方法实现,在云主机上搭建pptp vpn,再在公司内部找一台机器搭建shadowsocks,通过它可以实现智能翻墙,很方便,一个账号多人可以使用,vpn账号也很安全,在公司外是无法使用的.是不是很棒. 下面介绍公司内网机器vp

如何在ASA防火墙上实现ipsec vpn

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 本文章介绍三个部分内容: ①ipsec vpn故障排查 ②如何在ASA防火墙上配置ipsec VPN ③防火墙与路由器配置ipsec VPN的区别 说明:在ASA防火墙配置ipsec VPN与路由器的差别不是很大,而且原理相同,就是个别命令不一样. 一.ipsec VPN故障排查 1.show crypto isakmp sa命令 通过这

【DCN】Gre over ipsec vpn

流量被加密的过程: 首先数据包进入路由器,路由器查询路由表,进入Tu0,数据被GRE封包,再次查询路由表,到物理接口,触发加密图,数据加密,再送出路由器. GRE OVER  IPSEC VPN 的出现解决了IPSEC VPN不能加密组播及广播报文的问题使得IPSEC VPN不能在动态路由协议中得到应用,而使用GRE OVER IPSEC VPN的好处就是GRE能够很好的封闭组播及广播流量,再被IPSEC VPN加密传输使得这一方案得到广泛应用. GRE OVER IPSEC VPN 的ACL表

CentOS:[6]安装VPN服务器pptpd

一.检查服务器是否有必要的支持.如果检查结果没有这些支持的话,是不能安装pptp的,执行指令: #modprobe ppp-compress-18 && echo ok 这条执行执行后,显示"ok"则表明通过.不过接下来还需要做另一个检查,输入指令: #cat /dev/net/tun 如果这条指令显示结果为下面的文本,则表明通过: cat: /dev/net/tun: File descriptor in bad state 上述两条均通过,才能安装pptp.否则就只

远程路由访问VPN

Remoteaccess VPN VPN server 端 第一阶段 1.       策略 2  Pre-share(不是单纯的key,而是group+key) 2  DH GROUP2 2.      AM(3个包)密码的安全性由HASH来保障 第1.5阶段 1.      xauth(1.安全2.用户认证3.AAA) 2.      mode-config(推送策略1.ip 2.DNS 3.tunnel split 4.dns split等等) 第2阶段QM (策略) Remote acc

Azure配置Site To Site VPN

本文介绍如何在在Azure和本地数据中心之间建立Site To Site VPN 1. 添加本地网络 点击新建 点击添加本地网络 输入名称,IP地址并点击 输入起始IP,现在CIDR,并点击√ .完成本地网络的添加 2. 注册DNS服务器 点击新建 点击网络服务-虚拟网络-注册DNS服务器 输入名称,DNS IP地址,点击注册DNS服务器 3. 配置Site to Site 选择对应的虚拟网络,并点击 点击配置 选择DNS服务器,勾选连接本地网络,选择连接到的本地网络,然后点击保存 4. 创建网