【笔记】VPN学习笔记
前言
VPN(Virtual Private Network)虚拟专有网络
VPN可以在互联网上安全的传输数据,通过PKI技术保证数据的安全
VPN的分类
- 远程访问VPN
一般用在个人对企业内部的安全连接
- 点到点VPN
一般用在企业对企业的安全连接
VPN隧道技术
传输模式
- 只加密上层,不加密私有IP包头,相比隧道模式速度更快
隧道模式(缺省值)
- 加密整个私有IP包,包括IP包头,更安全,相比传输模式速度更慢
配置IPsecVPN的命令(点到点VPN)
- 大体分为2个阶段
管理连接
- 通信双方设备通过__非对称加密算法__加密__对称算法所使用的对称密钥__
进入传输级配置模式
- 在全局配置模式下,进入传输级策略配置模式
<num>
:传输集,策略集。定义策略集的表号
1 | crypto isakmp policy <num> |
配置加密算法(双方一致)
- 在传输级配置模式下
<encryption>
:定义加密算法,des
/3des
/aes
,通常使用aes
1 | encryption <encryption> |
配置完整性算法(双方一致)
- 在传输级配置模式下
<whole>
:定义完整性算法,md5
/sha
,通常使用sha
1 | hash <whole> |
配置非对称加密算法的长度(双方一致)
- 在传输级配置模式下
<length>
:定义非对称加密算法的长度,1
/2
/5
,通常使用2
,表示1024字节
1 | group <length> |
配置使用共享密钥(双方一致)
- 在传输级配置模式下
- 身份验证方式不使用非对称加密算法,而是使用预共享密钥,为了保证验证hash值时不被篡改
1 | authentication pre-share |
配置失效时间(可选)
- 在传输级配置模式下
<second>
:单位秒,默认值86400秒
1 | lifetime <second> |
进行协商
- 回到全局配置模式下进行配置
<pwd>
:预共享密钥,自定义一个密码,大于6位且越复杂越安全(双方一致)<ip>
:对方公网IP地址
1 | crypto isakmp key <pwd> address <ip> |
数据连接
- 通过__对称加密算法__加密实际所要传输的私网数据
定义VPN触发流量
- 在全局配置模式下
- 配置哪些网段可以走隧道
100
:表名<ip_1>
:源(内网)IP网段<mask_1>
:源反子网掩码<ip_2>
:目标(内网)IP网段<mask_2>
:目标反子网掩码
1 | access-list 100 permit ip <ip_1> <mask_1> <ip_2> <mask_2> |
定义加密及认证方式(双方一致)
- 在全局配置模式下
<name>
:传输模式名,自定义名称<support>
:支持选项
esp
:支持加密及认证ah
:只支持认证。国内用的比较少
<encryption>
:定义加密算法,des
/3des
/aes
<whole>
:定义完整性算法,md5
/sha
1 | crypto ipsec transform-set <name> esp-<encryption> <support>-<whole>-hmac |
应用阶段
创建MAP映射表
- 在全局配置模式下,进入MAP表配置模式
- 将阶段1和阶段2进行映射,并应用到端口
- 此时IPsecVPN生效
<mapname>
:MAP表名1
:MAP表标识
1 | crypto map <mapname> 1 ipsec-isakmp |
匹配VPN流量
- 在MAP表配置模式下
100
:定义VPN触发流量的表名
1 | match address 100 |
匹配加密及认证方式
- 在MAP表配置模式下
<name>
:加密及认证方式的表名
1 | set transform-set <name> |
配置对方的公网IP
- 在MAP表配置模式下
<ip>
:对方的公网IP
1 | set peer <ip> |
将MAP表应用到外网端口
- 在端口配置模式下
<mapname>
:MAP表名
1 | crypto map <mapname> |
一个接口只能应用一个MAP表(踩坑)
- 为了解决一个接口对接多个VPN隧道问题,设置MAP表名时都__设置相同的表名__,设置表标识时__设置不同的表标识__,通过表标识来区分不同的MAP表,从而解决一个接口对接多个VPN隧道
查看命令
查看阶段1的状态
1 | show crypto isakmp sa |
查看阶段2的状态
1 | show crypto ipsec sa |
查看阶段1的策略配置集
1 | show crypto isakmp policy |
查看阶段2的策略配置集
1 | show crypto ipsec transform-set |
配置SSL VPN服务器的命令(远程访问VPN)
- 个人不需要配置,只需要在服务器搭建一个VPN服务器即可