深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
3)VPN隧道技术
1)传输模式:只加密上层数据,不加密私有|P包头,传输速度快
**通信过程:**一方公司要与另一方公司使用VPN隧道安全通信,首先自己公司的内网数据到达自己的路由器后路由器会先将数据帧的4、5层的数据进行加密,然后将IP包头的目标IP与源IP拿出来放到IP包头的可选项内(内网的ip无法在公网上存活),用自己的公司买的公网ip(配在链接路由器外网端口的IP)和目标的公网ip作为新的源IP与目标IP,到了目标路由器再从IP包头的可选项内取出数据还原数据帧的目标与源ip,目标公司回包的流程也是差不多。
2)隧道模式(默认):加密整个私有IP包,包括|P包头,更安全,速度慢
后面就是数据传到目标路由器,路由器再解封装然后传入目标内网。
4)VPN隧道技术:重新封装技术 + 加密认证技术
5)IPsecVPN分为2大阶段:
第一阶段:管理连接(VPN双方建立连接/建立隧道)
**目的:**通信双方设备通过非对称加密算法加密对称加密算法所使用的对称密钥,以达到安全地协商对称加密算法秘钥的目的。
**过程:**双方设备先各自生成公私秘钥对,然后双方交换公钥,使用对方的公钥加密对称密钥,这样就可以解决对称密钥因为是双方明文通信产生的而安全性低的问题,又能获取对称密钥加密数据快的特性。
命令:(思科)目的:建立隧道(IKE)
conf t
crypto isakmp policy 1 # 创建传输集/策略集,1是名称
encryption des/ 3des/aes # 指定对称加密算法,一般使用aes
hash md5/sha # 指定完整性算法/hash值算法,一般使用sha
group 1/2/5 # 默认使用DH非对称加密算法,这里****指定公钥与私钥的长度,越长越安全也越慢,一般使用2或5
authentication pre-share # 身份验证使用共享密钥算法
lifetime 秒 # 配置该传输集/策略集的失效时间,失效了双方就会重新生成设备重新生成对称密钥,如果改成3600秒,那么双方每个1个小时都会更换密钥,这样可以防止密钥被破解,默认:86400秒 / 24小时
exit
crypto isakmp key 预共享密钥 address 对方的****公网IP地址 # 配置指向对方公网IP的共享密钥
**预共享密钥****作用:**用来证明对方就是对方而不是黑客伪造的,对方的共享秘钥也要配置一样,比如我设置的共享密钥是:zhangsan 那对方的也要是:zhangsan 双方都要验证一下,共享密钥越长越复杂越好不能少于6位。
**实现原理:**将共享密钥加在数据后面如:“数据”+zhangsan 这样加密后生成的哈希值基本上是独一无二的,黑客攻击替换了哈希值也能被发现因为我的哈希值多了 “zhangsan ”转换的 哈希值并以他作为身份验证的标准,没有就是伪造的。
第二阶段:数据连接(加密要传输的数据)
**目的:**通过对称加密算法加密实际所要传输的私网(内网)数据
定义VPN触发流量 :定义那些包要走VPN
conf t
access-list 100 permit ip 192.168.0.0 0.0.255.255 172.16.0.0 0.0.255.255 # 创建一个表号为100的表(1-255可选),添加一过滤条目允许192.168.开头的网段访问172.16开头的网段的数据进入隧道,也就是说192.168.开头的网段访问172.16开头的网段的数据进入路由器时****路由器会把该数据路由到隧道中而不是上网。**0.0.255.255:**是反子网掩码,0.0.255.255表示只检查前面两位IP,也就是只检查192.168.后面的忽略,只要这两位匹配上了就可以认定该IP符合条件
crypto ipsec transform-set 传输模式名 esp**/sh-des/3des/asp-esp/sh-md5/**sha-hmac # 定义加密及认证方式
例: crypto ipsec transform-set wentran esp-aes esp-sha-hmac
**ESP:**支持加密及认证(身份验证+完整性
**AH:**只支持认证(身份验证+完整性)
创建MAP映射表
**目的:**阶段一创建了传输集,阶段二定义了ACL表与加密及验证模式,创建MAP映射表将上述配置集合到MAP表内,再把MAP应用到路由器外网接口上
conf t
crypto map map名 1 ipsec-isakmp # 进入MAP表配置模式。创建一个map表并命名,数字 1 是标识,map名可以重复,可以用标识区分,isakmp表示第一阶段一所有策略集。目的:跟对方交换密钥
match address acl表名 # 将第二阶段的数据连接的ACL表映射过来
set transform-set 传输模式名 # 只要匹配ACL表的IP,就使用传输模式定义的加密及认证方式对数据进行加密
set peer 对方的公网IP # 配置目标的公网ip
exit
例:
conf t
crypto map wenmap 1 ipsec-isakmp
match address 100
set transform-set wentran
set peer 200.1.1.2
exit
将MAP表应用到外网端口
int f0/1(外网端口)
crypto map wenmap # 把wenmap 表应用到接口上
exit
**注意:**一个接囗只能应用一个map表
查看命令: (特权模式的命令,其他模式下前面加do 空格)
show crypto isakmp sa # 查看第一阶段状态(管理连接)
show crypto ipsec sa # 查看第二阶段状态(数据连接)
show crypto isakmp policy # 查看第一阶段的策略配置集
show crypto ipsec transform-set # 查看第二阶段的传输模式
sh run # 查看_running_-config文件,对做过路由器的所有配置都在这里
7、路由器的工作原理
如果同时给路由器的出外网端口配了NAT与VPN他们的执行顺序
内网 – to – 外网:路由数据到出外网端口 – 1NAT – VPN – 出去
8、实验 (点到点VPN -VPN隧道)
- **实验1:**北京-上海-建立VPN隧道,并验证(中间的路由器不能配内网路由,通过对两边的路由器配置VNP实现通信)
- **实验2:**在实验1的基础上,要求2个公司能上网,但不影响VPN隧道
- **实验3:**在实验1和2的基础上,要求北京总部与广州新成立的分公司也建立VPN隧道
- 实验4:(可选)在1-3的基础上,要求广州和上海之间不建立VPN隧道,但广州和上海可以互相安全的通信
实验1
步骤:
1)给PC和路由的接口配置ip
配置路由器端口IP命令
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/x # 进入需要配置的端口
ip add IP 子网掩码 # 配置IP,如: ip add 30.1.1.254 255.255.255.0
no shut # 开启端口
2)给左右两边的路由器配置默认路由
命令:
ip route ip 子网掩码 下一跳IP # 给路由器配置一条静态路由
ip route ip 0.0.0.0 0.0.0.0 下一跳IP # 给路由器配置一条默认路由
配置左边路由器:
conf t # 进入全局配置模式
ip route 0.0.0.0 0.0.0.0 100.1.1.254
配置右边路由器:
conf t # 进入全局配置模式
ip route 0.0.0.0 0.0.0.0 200.1.1.254
3)配置VNP隧道
注意以下的命令如果和我的模拟器配置的IP和连接的端口一样就可以复制粘贴到软件上,不同的请根据自己的实际情况,修改IP和接口号
配置左边路由器的命令
en
conf t
crypto isakmp policy 1
encryption aes
hash sha
group 2
authentication pre-share
lifetime 3600
exit
crypto isakmp key zhangsan address 200.1.1.1
access-list 100 permit ip 192.168.0.0 0.0.255.255 172.16.0.0 0.0.255.255
crypto ipsec transform-set wentran esp-aes esp-sha-hmac
crypto map wenmap 1 ipsec-isakmp
match address 100
set transform-set wentran
set peer 200.1.1.1
exit
int fa0/0
crypto map wenmap
配置右边路由器的命令
en
conf t
crypto isakmp policy 1
encryption aes
hash sha
group 2
authentication pre-share
lifetime 3600
exit
crypto isakmp key zhangsan address 100.1.1.1
access-list 100 permit ip 172.16.0.0 0.0.255.255 192.168.0.0 0.0.255.255
crypto ipsec transform-set wentran esp-aes esp-sha-hmac
crypto map wenmap 1 ipsec-isakmp
match address 100
set transform-set wentran
set peer 100.1.1.1
exit
int fa0/0
crypto map wenmap
4)拿一台PC继续ping一下目标公司的PC,测试网络的连通性
**实验2:**在实验1的基础上,要求2个公司能上网,但不影响VPN隧道
步骤:
1)给连接服务器的路由器端口与服务器配置ip
配置路由器端口IP命令
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/x # 进入需要配置的端口
ip add IP 子网掩码 # 配置IP,如: ip add 150.1.1.254 255.255.255.0
no shut # 开启端口
2)配置NAT让内网可以访问外网
配置北京总公司的路由器(端口号与IP要改成自己的)
定义内网端口
en # 进入特权模式
conf t # 进入全局配置模式
int fa0/1 # 进入需要设置的端口
ip nat inside # 将端口定义为内网端口
exit
定义外网端口
conf t # 进入全局配置模式
int fa0/0 # 进入需要设置的端口
ip nat outside # 将端口定义为外网端口
exit # 退到上一级
定义内部地址池
conf t # 进入全局配置模式
acc 101 deny ip 192.168.0.0 0.0.255.255 172.16.0.0 0.0.255.255 # 拒绝192.168开头网段访问172.16开头网段(不做IP源地址转换),注意配置这条命令不会影响实验一的VPN隧道,因为这里ACL表是101,实验1的是100,而且这里配置的表没有挂载到接口上,所以也不用担心192.168开头网段访问其他网段会被ACL技术干掉
acc 101 permit ip any any # 将所有的ip地址都加入101号地址池内,全部允许通过(除了92.168开头网段访问172.16开头网段的包)
do show ip access-list 表IP # 查看ACL表, 表IP 是可选的,不写就查看所有表
exit # 退到上一级
做PAT动态映射(映射到外网端口)
conf t
ip nat inside source list 100 int fa0/0 overload # 源ip地址如果在地址池1中,就允许使用f0/1接口上的公网ip地址做替换,然后再做端口转换
测试一下
配置上海分公司的路由器(端口号要改成自己的)
定义内部地址池 (其他命令都一样就是这里的IP要调换一下)
acc 101 deny ip 172.16.0.0 0.0.255.255 192.168.0.0 0.0.255.255 # 禁止172.16开头网段访问192.168开头网段(不做IP源地址转换)
acc 101 permit ip any any # 将所有的ip地址都加入101号地址池内,全部允许通过(除了92.168开头网段访问172.16开头网段的包)
测试一下
**实3:**在实验1和2的基础上,要求北京总部与广州新成立的分公司也建立VPN隧道
步骤:
1)给连接服务器的路由器端口与服务器配置ip
配置路由器端口IP命令
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/x # 进入需要配置的端口
ip add IP 子网掩码 # 配置IP,如: ip add 10.1.1.1 255.255.255.0
no shut # 开启端口
2)给路由器的外网接口配置一条默认路由
conf t # 进入全局配置模式
ip route 0.0.0.0 0.0.0.0 120.1.1.254
exit # 退到上一级
do show ip route # 查看路由表
3)配置VNP隧道
配置自己路由器的命令
en
conf t
crypto isakmp policy 1
encryption aes
hash sha
group 2
authentication pre-share
lifetime 3600
exit
crypto isakmp key zhangsan address 100.1.1.1
access-list 100 permit ip 10.1.0.0 0.0.255.255 192.168.0.0 0.0.255.255
crypto ipsec transform-set wentran esp-aes esp-sha-hmac
crypto map wenmap 1 ipsec-isakmp
match address 102
set transform-set wentran
set peer 100.1.1.1
exit
int fa0/1
crypto map wenmap
配置北京的路由器
sh run # 查看_running_-config文件,对做过路由器的所有配置都在这里
配置思路分析:
(1)阶段一现在只有指向上海分公司的公网ip:200.1.1.1,我们现在需要让他多一条指向广州分公司的公网ip:120.1.1.1 ,阶段一其他的设置是可以共用的,所以阶段一配置命令如下:
en # 进入特权模式
conf t # 进入全局配置模式
crypto isakmp key zhangsan address 120.1.1.1 # 配置指向广州公网IP的共享密钥
do sh run # 查看_running_-config文件,检查一下刚才的配置
(2)阶段二之前配置是在ACL表号为100的表里面设置让192.168在访问上海分公司172.16的网段可以走VPN隧道,我们现在需要让他多一条允许192.168在访问广州分公司内网IP:10.1开头的网段也可以走VPN隧道,阶段二其他的设置也是可以共用的,所以阶段二配置命令如下:
conf t # 进入全局配置模式
access-list 102 permit ip 192.168.0.0 0.0.255.255 10.1.0.0 0.0.255.255 # 往北京的路由器的ACL表号为102的表添加一条让192.168.开头的网段ip可以访问10.1开头的网段条目,注意表号100的已经是给北京访问上海的使用了,不能再把条目添加都100表内
do sh run # 查看_running_-config文件,检查一下刚才的配置
(3)阶段三就是配置MAP映射表
conf t # 进入全局配置模式
crypto map wenmap 2 ipsec-isakmp # 进入MAP表配置模式。创建一个map表并命名为****wenmap ,数字 2 是标识,我这里的模式名和实验一的MACP是一样并且wenmap 这张表之前已经应用到接口上了现在是通过标识来区分不同的表,之前的标识是1,现在的是2
match address 102 # 将第二阶段的数据连接的ACL表 102****映射过来,简单理解就是要使用102表做匹配
set transform-set wentran # 只要匹配ACL表的IP,就使用实验一定义的传输模式wentran 做加密及认证方式对数据进行加密
set peer 120.1.1.1 # 配置目标的公网ip(这里是指广州分公司的公网ip)
(4)现在北京指向广州分公司的VPN隧道已经配置完成了,但是现在还是无法通信的因为在实验2我们给北京总部的路由器配置了NAT的PAT,PAT会把数据帧的源IP转换成公网ip,我们这里北京访问广州分公司是走VPN隧道的所以要设置豁免,让PAT对他不做转换:
向ACL表插入条目
conf t # 进入全局配置模式
ip access-list extended 101 # 进入要修改的表101
15 deny ip 192.168.0.0 0.0.255.255 10.1.0.0 0.0.255.255 # 在ID为15的位置插入条目
exit # 退到上一级
do show ip access-list 101 # 查看ACL表,表号可选,不写查找全部
4)测试,网络连通性
先用北京的PC上网与ping 一下上海的PC
然后让广州的PC ping 北京的PC
**实验4:**在1-3的基础上,要求广州和上海之间不建立VPN隧道,但广州和上海可以互相安全的通信
(1)现在已经有了VPN隧道,不过是广州与北京的,我们要加ACL表内添加一条匹配广州与上海的条目。
**目的:**因为现在的广州分公司VPN隧道是指向北京的,我们已经加ACL表内添加一条匹配广州与上海的条目,所以用广州的PC访问上海的PC的数据也会被路由到北京总部的那个路由器,然后再配置一下北京总部的那个路由器的ACL表,再由他路由把数据路由到上海分公司(之前已经配置过北京到上海的VPN隧道)
在广州这边的路由器添加
conf t # 进入全局配置模式
acc 102 permit ip 10.1.0.0 0.0.255.255 172.16.0.0 0.0.255.255 # 添加一条匹配广州到上海的条目(意思就是广州到上海也让他走VPN隧道,这个隧道是广州到北京。
通俗点理解(举例):广州到上海没有高铁(VPN隧道),但是广州到北京有高铁我可以先坐车到北京再转车到上海,因为北京到上海有高铁(有VPN隧道))
(2)北京总部与上海分公司的VPN隧道的ACL表只有一条匹配北京访问上海的(192.168 - 172.16),现在要加一条广州到上海的条目(10.1 - 172.16)
**目的:**让广州访问上海分公司的数据到达北京总部这边让北京总部这边的路由器再转发到上海,实现广州与上海的安全通信,而不用再次花钱买VPN隧道。
在北京这边的路由器添加
conf t # 进入全局配置模式
acc 100 permit ip 10.1.0.0 0.0.255.255 172.16.0.0 0.0.255.255 # 添加一条匹配广州到上海的条目(意思就是广州到上海也让他走VPN隧道,这个隧道是北京到上海。转车到上海)
现在广州访问上海的数据行走的路线图
(3)现在广州访问上海分公司数据可以到达了,但是上海分公司现在还无法给广州回包,或者说是上海无法访问广州。
现在配置上海到广州,思路和配置广州的一样,上海到广州的数据先发给北京总部的路由器再转发到广州
conf t # 进入全局配置模式
acc 100 permit ip 172.16.0.0 0.0.255.255 10.1.0.0 0.0.255.255 # 添加一条匹配上海到广州的条目
**注意:**因为在实验2给上海的路由器配置了NAT,转换了源IP为外网端口ip但是这里我们是要上海与广州通信是走VNP隧道,不用转换IP包的源IP地址,所以要配置过滤
向ACL表插入条目
conf t # 进入全局配置模式
ip access-list extended 101 # 进入要修改的表101
15 deny ip 172.16.0.0 0.0.255.255 10.1.0.0 0.0.255.255 # 在ID为15的位置插入条目,172.16 访问 10.1.不用做NAT地址转换(上海到广州不做地址转换)
exit # 退到上一级
do show ip access-list 表号 # 查看ACL表,表号可选,不写查找全部
(4)让北京总部的路由器转发上海到广州的数据包到广州
conf t # 进入全局配置模式
acc 102 permit ip 172.16.0.0 0.0.255.255 10.1.0.0 0.0.255.255 # 添加一条匹配上海到广州的条目 ,注意这里要加到广州与北京的VPN隧道的ACL表内我这里是102,北京到上海的是100
(5)测试广州到上海/上海到广州的网络连通性
9、远程访问VPN
在公司需要搭建PN服务器
- VPN服务器需要对PN客户端进行身份验证
- VPN服务器需要给VPN客户端下发权限及P地址
实现原理:
**1)**公司配置一个远程VPN服务器,员工在外面要访问公司内部的资源时就要对VPN服务器进行拨号,VPN服务器收到后就会下发一个私网ip地址如:172.16.1.1
**2)**然后员工的PC就会使用这个IP访问公司的VPN服务器,不过私网是不能在互联网上存活的,所以员工访问公司的数据帧会被加密,再封装一个IP包头(源ip是员工现在连接的路由器配置的公网ip,目标是公司的公网ip),数据帧到达公司的路由器后就会解封装还原数据帧
**3)**还原之后路由器会把数据包的源IP(172.16.1.1)拿出来,使用公司的内网的网关(192.1.1.1)替换,然后公司内网被访问的服务器就以为是192.1.1.1(网关)在访问他,回包的时候就会发给网关(目标ip是网关),网关一般是配置在路由器上的,这就意味着回包的数据发到了路由器然后路由器再把数据包的现在目标IP(网关)拿掉,把刚才的172.16.1.1(员工的ip)替换上去再加密数据包,重新封装一个IP包头(源IP:公司的公网IP,目标IP:员工现在连接的路由器配置的公网ip),然后再发送出去。
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
帧会被加密,再封装一个IP包头(源ip是员工现在连接的路由器配置的公网ip,目标是公司的公网ip),数据帧到达公司的路由器后就会解封装还原数据帧
**3)**还原之后路由器会把数据包的源IP(172.16.1.1)拿出来,使用公司的内网的网关(192.1.1.1)替换,然后公司内网被访问的服务器就以为是192.1.1.1(网关)在访问他,回包的时候就会发给网关(目标ip是网关),网关一般是配置在路由器上的,这就意味着回包的数据发到了路由器然后路由器再把数据包的现在目标IP(网关)拿掉,把刚才的172.16.1.1(员工的ip)替换上去再加密数据包,重新封装一个IP包头(源IP:公司的公网IP,目标IP:员工现在连接的路由器配置的公网ip),然后再发送出去。
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
[外链图片转存中…(img-FU32xE2I-1715297884444)]
[外链图片转存中…(img-fOjLsEQn-1715297884444)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新