首先TCP/IP是一个协议群,不是指某个协议。它包括应用协议:HTTP、SMTP、FTP、TELENT、SNMP等;路由控制协议:OSPF、RIP、BGP等;传输协议:TCP、UDP;网际协议:ip、ICMP、ARP。
以体系分层划分协议以及端口号:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LxG2spht-1638263642586)(https://i.loli.net/2021/07/23/ErvLQF2zjYIg5K6.png)]
数据传输过程:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kAa4PejT-1638263642588)(https://i.loli.net/2021/07/23/qYHRt1KnFxzywNI.jpg)]
TCP/UDP均为传输层的协议。其中TCP是面向连接的可靠协议流;UDP是不具有可靠性的数据包协议。
网络:IP地址-识别TCP/IP网络中互联的主机和路由器
数据链路:MAC地址-识别同一链路中不同的计算机
应用程序:端口号-识别同一计算机中不同的应用程序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1prRSfSM-1638263642593)(https://i.loli.net/2021/07/23/PstBXGnM1aIpv5F.jpg)]
三次握手
四次挥手
ipv4地址有32位(4个字节),8位二进制一组分成4组,以“.”隔开,例如:192.168.3.1;
ipv6地址有128位(16个字节),4个十六进制为一组分成8组,以“:”隔开,例如:CDCD:910A:2222:5498:8475:1111:3900:2020;
MAC地址有48位(6个字节),2个十六进制为一组分成6组,以“-”隔开,前3个字节是由IEEE分配,代表网络硬件制造商的编号,例如:00-16-EA-AE-3C-40。
企业级的三层架构可划分为:核心层、汇聚层、接入层
作用及意义为:
核心层:进行数据流量高速转发,核心就一个字:快(运算)
汇聚层:多个接入层设备的汇聚点,核心就一个字:多(接口)
接入层:直接面向用户连接或访问网络的部分
但是随着硬件性能的发展,有些情况会将核心层和汇聚层合并为一层,变成二层架构,即:核心层、接入层。
开放的最短路径优先协议,首先工作在AS内(内部网关协议,即IGP),流量使用的ip协议号是89,它采用触发更新(增量更新)。部署的时候需要0域(骨干区域),其余所有分支必须与0域直接相连。
■Down:一旦本地发出hello包进入下一个状态
■Init:初始化 收到的hello包若存在本地的RID进入下一个状态
■2way:双向通讯 邻居关系建立的标志
■条件匹配:点到点网络将直接进入下一个状态; MA网络类型将进行DR/BDR选举,非DR/BDR间将无法进入下一状态;
■Exstart:预启动 使用类似hello的DBD进行主从关系的选举,RID大为主优选进入下一状态
■Exchange :准交换 使用真正的DBD进行数据库目录的共享,需要使用ACK确认
■Loading :加载 使用LSR/LSU/LSAck来获取未知的LSA信息;
■Full转发: 邻接关系建立的标志
■LSA:链路状态通告,在不同的网络条件下将产生不同类别的LSA信息来代表拓扑或者路由条目;
■LSDB:链路状态数据库 装载和存储所有各种类别的LSA;
■Router LSA(-类) : 每个路由器都会产生,描述了路由器的链路状态和开销,在所属的区域内传播。
■Network LSA(二类) :由DR产生,描述本网段的链路状态,在所属的区域内传播。
■Network-summary-LSA (三类) : 由ABR产生,描述区域内某个网段的路由,并通告给其他相关区域。
■ASBR-summary-LSA (四类) :由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。
■AS-external-LSA (五类) : 由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。
■NSSA LSA(七类) :由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。
■配置
[r1]ospf 1 router-id 1.1.1.1 //启动协议,需要配置进程号,具有本地意义,可以选择配置RID,若不配置,则路由器自己选择
[r1-ospf-1]area 0 //进入区域
[r1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255 //宣告路由或接口
■手工汇总
[r1]ospf 1
[r1-ospf-1]area 1 明细路由所在区域
[r1-ospf-1-area-0.0.0.1]abr-summary 3.3.2.0 255.255.254.0
■缺省路由–在连接运营商的边界路由器的协议中配置
[r4-ospf-1]default-route-advertise
■查看命令
[r1]display ip routing-table protocol OSPF //查看OSPF路由表
[r1]display ospf peer brief //查看OSPF邻居表
■虚链路
[r1-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4
■重发布
[r1-ospf-1]import-route rip 1
RIP是距离矢量协议,它以跳数作为衡量标准(16即为不可达),共有v1和v2两个版本,端口号520、521。同样是内部网关协议工作在AS内,定时更新(30s),且传路由所以不适用于大型网络。
■区别
·RIPv1是有类路由协议,RIPv2是无类路由协议
·RIPv1不能支持VLSM,RIPv2可以支持VLSM
·RIPv1没有认证的功能,RIPv2可以支持认证,并且有明文和MD5两种认证
·RIPv1没有手工汇总的功能,RIPv2可以在关闭自动汇总的前提下,进行手工汇总
·RIPv1是广播更新,RIPv2是组播更新,
·RIPv1对路由没有标记的功能,RIPv2可以对路由打标记(tag),用于过滤和做策略
·RIPv1发送的updata最多可以携带25条路由条目,RIPv2在有认证的情况下最多只能携带24条路由
·RIPv1发送的updata包里面没有next-hop属性,RIPv2有next-hop属性,可以用与路由更新的重定
■兼容性
·RIPv1和RIPv2默认互相不兼容。
·运行RIPv2的路由器默认只发送和接收v2的报文,不接收v1的报文。
·运行RIPv1的路由器可以接收v2的报文。
水平分割:从此口进但不从此口出
毒性反转:从此口进出去的将从此口学得的路由开销设置为16(不可达)
路由毒化:如果某条rip路由从路由表中消失了,rip database中会将该路由置为16跳,配合rip的触发更新机制及时将该毒化路由发送出去,收到该路由的路由器就会将该16跳路由从路由表中删除
时
■配置
[r1]rip 1 //启动协议时必须配置进程号,仅具有本地意义
[r1-rip-1]version 1 //选择版本,以版本1为例,版本2同版本1
[r1-rip-1]network 192.168.1.0 //宣告路由,基于主类范围宣告
[r1-rip-1]undo summary //关闭自动汇总
■手工汇总
[r1]interface GigabitEthernet 0/0/1 //进入更新发出的接口
[r1-GigabitEthernet0/0/1]rip summary-address 10.1.0.0 255.255.252.0
■缺省路由
[r3]rip 1 //边界路由器的RIP中
[r3-rip-1]default-route originate //下发缺省
■重发布
[r1-rip-1]import-route ospf 1
外部网关路由选择协议,BGP可以跨越多个路由器建立邻居(基于TCP),可以在BGP路由中携带丰富的属性值。AS内叫做IBGP,AS间叫做EBGP
选路规则:
1、建邻的的两台路由器ip必须可达
2、EBGP环回建邻需要更改ebgp-max-hop 为2(默认为1)
3、IBGP环回建邻需要更改next-hop-local
公认必遵:rigin、as_path、next_hop
• 公认必须遵循(Well-known mandatory):所有BGP设备都可以识别此类属性,且必须存在于Update报文中。如果缺少这类属性,路由信息就会出错。所有BGP路由器必须识别,且必须存在于Update消息中。缺少这种属性路由信息会出错。
公认任意:local pref、atmoic aggregate
• 公认任意(Well-known discretionary):所有BGP设备都可以识别此类属性,但不要求必须存在于Update报文中,即就算缺少这类属性,路由信息也不会出错。
可选过渡:aggregator、community
•可选过渡(Optional transitive):在BGP对等体之间具有可传递性的属性BGP路由器可以不支持此属性,但它仍然会接收这类属性,并传递给其他对等体 (不认识,也可以传)。
可选非过渡:MED
• 可选非过渡(Optional non-transitive):BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,则会被忽略该属性,且不会通告给其他对等体。在BGP路由表中,到达同一目的地可能存在多条路由。此时BGP会选择其中一条路由作为最佳路由,并只把此路由发送给其对等体。BGP为了选出最佳路由,会根据BGP的路由优选规则依次比较这些路由的BGP属性。
常用属性:
•PrefVal:华为设备特有属性,仅本地有效,用来本地管理员人工干预选路。
配置:[r2-route-policy]apply preference 10 //大优,默认0,在策略中将某些路由本属性调整为10
• Origin属性:公认必遵,路由信息来源,共有IGP(i)、EGP(e)、Incomplete(?)三种,其来源分别是:始发路由,通过network宣告的;通过EBGP邻居学来的;其他方式,比如重发布进来的。
配置:[r2-route-policy]apply origin igp // i>e>? ,在策略中将某些路由起源属性修改为igp
• AS_Path属性:公认必遵,记录路由经过的所有AS号,EBGP邻居不会接收含有本AS号的路由。洗掉AS 的方式共有两种:
1、下发缺省,汇总。
2、可接受带有自己AS号的路由,配置:[r2-bgp]peer 6.6.6.6 allow-as-loop 4 // 数字是可重复次数
让对方接收带有自己AS号的路由,配置:[r2-bgp-vrf1]peer 6.6.6.6 substitute-as //需要在VRF空间中才可以配置
配置:[r2-route-policy]apply as-path 3 3 addtive //在路径记录中增加两个AS3,短优
• Next_Hop属性:公认必遵,记录了下一跳信息。下一跳可能并非直连,采用AS-by-AS。
配置:
[r2-route-policy]apply ip-address next-hop 2.2.2.2 //在策略中将某些路由下一跳调整为2.2.2.2
[r2-route-policy]apply backup-nexthop 2.2.2.2 //在策略中为某些路由指定备份下一跳为2.2.2.2
• Local_Pref属性:公认任意,表明路由器优先级,主要用于IBGP,不传出本AS,出向调用。
配置:[r2-route-policy]apply local-preference 110 //大优,默认100,在策略中将某些路由优先级调整为110。
• MED属性:可选非过度,类似于IGP的代价值。主要用于AS之间的选路,一般用于入向。
配置:[r2-route-policy]apply cost 100 //小优,在策略中将某些路由代价调整为100。
• 团体属性:可选过渡,分为自定义团体属性和公共团体属性。
■物理接口建邻
[r1]bgp 1 //启动时需要定义真实的AS号,没有多进程概念
[r1-bgp]router-id 1.1.1.1 //建议手工配置RID,--手工—环回最大值---物理接口最大值
[r1-bgp]peer 12.1.1.2 as-number 2 // 对端IP地址,及对端所在的AS号
■环回建邻
[r3]bgp 2 //启动时需要定义真实的AS号,没有多进程概念
[r3-bgp]router-id 3.3.3.3 //建议手工配置RID,--手工—环回最大值---物理接口最大值
[r3-bgp]peer 2.2.2.2 as-number 2 //对端IP地址,及对端所在的AS号
IBGP:
[r2-bgp]peer 3.3.3.3 next-hop-local //将BGP路由传输给邻居3.3.3.3时修改下一跳属性为本地地址
EBGP:
(1)IP可达
[r4]ip route-static 5.5.5.0 24 45.1.1.2 //给双方配置路由,使双方可以ping通,这里采用手工配置
[r4]ip route-static 5.5.5.0 24 54.1.1.2 //给双方配置路由,使双方可以ping通,这里采用手工配置
(2)BGP规定EBGP邻居间默认所有的BGP数据包TTL值为1,所以应该做以下修改。
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2 //将数据包TTL值改为2
■路由黑洞(MPLS LDP)
IBGP邻居可跨路由器建邻,在传递路由过程中存在未配置BGP的路由器,由此出现路由黑洞,MPLS LDP通过二层标签,完美解决这个问题。配置如下:
[r2]mpls lsr-id 2.2.2.2 //定义mpls的router-id,本地设备的真实ip地址,且邻居可达,该地址将用于建立TCP会话,建议使用环回地址
[r2]mpls //开启mpls协议
[r2-mpls]mpls ldp //激活LDP协议
·之后需要在所有标签经过的接口上开启协议
[r2]interface GigabitEthernet 0/0/1 //进入接口
[r2-GigabitEthernet0/0/1]mpls //开启MPLS
[r2-GigabitEthernet0/0/1]mpls ldp //激活LDP协议
[r2]route recursive-lookup tunnel //基于隧道进行递归查找
华为设备需要开启 route recursive-lookup tunnel 路由基于隧道进行递归查找
■联邦
[r3]bgp 64512 //定义小AS号
[r3-bgp]router-id 3.3.3.3 //手工配置RID
[r3-bgp]confederation id 2 //说明本机器属于的大AS
[r3-bgp]confederation peer-as 64513 //若存在小EBGP邻居,需说明对端小AS号
[r3-bgp]pe 2.2.2.2 as-number 64512 //小IBGP邻居所处小AS号
其余均与IBGP/EBGP邻居相同。
■反射器
●在向IBGP邻居发布学习到的路由信息时, RR按照以下规则发布路由:
●●从EBGP对等体学到的路由,发布给所有的非客户机和客户机。
●●从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机。
●●从客户机学到的路由,发布给此RR的所有非客户机和客户机(发起此路由的客户机除外)。
简单来说,非客户机学来的路由不传给非客户机,其他均传。
[r3-bgp]peer 2.2.2.2 reflect-client //让2.2.2.2成为本地的客户端,同时本地成为路由反射器
■手工汇总(聚合)
[r1-bgp]aggregate 20.1.0.0 22 //配置完成后,本地自动生成空接口防环路由
[r1-bgp]aggregate 20.1.0.0 22 detail-suppressed //仅发送聚合条目,不转发明细条目
■查看命令
[r2]display mpls ldp peer //查看MPLS LDP邻居表
[r2]display bgp routing-table //查看BGP路由表
[r2]display bgp peer // 查看BGP邻居表
多生成树,配置如下:
[Huawei]stp mode mstp //配置工作模式
[Huawei]stp region-configuration //进入MST域视图
[Huawei-mst-region]region-name stp1 //配置MST域的域名
[Huawei-mst-region]instance 1 vlan 2 to 5 //配置多生成树实例和VLAN的映射关系
[Huawei-mst-region]revision-level 0 //配置MST域的MSTP修订级别
[Huawei-mst-region]check region-configuration //查看MST域配置参数是否正确
[Huawei-mst-region]active region-configuration //激活MST域的配置
[Huawei]stp instance 1 root primary //配置该设备为根桥
[Huawei]stp instance 1 root secondary //配置该设备为备份根桥
[Huawei]stp enable //启用MSTP
虚拟路由器冗余协议,R2为主网关,R3位备份。
R2(Master):
[R2-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 2.2.2.2 //创建VRRP备份组,配置虚拟网关ip
[R2-GigabitEthernet0/0/0]vrrp vrid 1 priority 120 //大优,默认100,调整Master为120
[R2-GigabitEthernet0/0/0]vrrp vrid 1 preempt-mode timer delay 5 //修改抢占时间
[R2-GigabitEthernet0/0/0] vrrp vrid 1 track interface GigabitEthernet0/0/4 reduced 30 //上行链路追踪
[R2-GigabitEthernet0/0/0]vrrp vrid 1 authentication-mode md5 86*7*T$zkAHj<w)JO!C@Zi,# //开启认证(乱码为密码)
R3(Backup):
[R3-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 2.2.2.2 //创建VRRP备份组,配置虚拟网关ip
[sw1]interface Eth-Trunk 1 //创建逻辑接口
[sw1-Eth-Trunk1]trunkport GigabitEthernet 0/0/1 //划入物理接口
[sw1-Eth-Trunk1]trunkport GigabitEthernet 0/0/2 //划入物理接口
[sw1-Eth-Trunk1]port link-type trunk //链路为trunk
[sw1-Eth-Trunk1]port trunk allow-pass vlan all //允许所有VLAN通过
通用路由封装
VPN虚拟专用网络 (提供的是三层逻辑接口)——让两个网络穿越中间网络来直接通讯,逻辑的在两个网络间建立了一条新的点到点直连链路;
[r1]interface Tunnel 0/0/0 //创建虚拟接口
[r1-Tunnel0/0/0]ip address 1.1.1.1 24 //配置IP地址
[r1-Tunnel0/0/0]tunnel-protocol gre //修改接口模式
[r1-Tunnel0/0/0]source 10.1.1.1 // 公有的源IP地址
[r1-Tunnel0/0/0]destination 100.1.1.1 //目的地址
IPSec是IETF制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合。
IPSec用来解决IP层安全性问题的技术。IPSec被设计为同时支持IPv4和IPv6网络。
IPSec主要包括安全协议AH(Authentication Header)和ESP(Encapsulating Security Payload),密钥管理交换协议IKE(Internet Key Exchange)以及用于网络认证及加密的一些算法等。
IPSec配置如下:
· 抓取加密流量
[R2]acl 3000
[R2-acl-adv-3000]rule 5 permit ip source 10.0.3.0 0.0.0.255 destination 10.0.4.0 0.0.0.255
· 创建ipsec的安全提议
[R2]ipsec proposal R2
[R2-ipsec-proposal-R2]quit
[R2]display ipsec proposal name R2 //查看proposal一下
· 创建安全策略
[R2]ipsec policy map 10 manual //创建手动安全策略zhpr 10
[R2-ipsec-policy-manual-map-10]security acl 3000 //调用acl
[R2-ipsec-policy-manual-map-10]proposal R2 //调用安全提议
[R2-ipsec-policy-manual-map-10]tunnel local 10.0.23.1 //指定隧道源地址
[R2-ipsec-policy-manual-map-10]tunnel remote 10.0.23.2 //指定隧道目标地址
[R2-ipsec-policy-manual-map-10]sa spi inbound esp 123456 //设置安全联盟的安全索引SPI
[R2-ipsec-policy-manual-map-10]sa string-key inbound esp simple 234567 //设置安全联盟的认证密钥
[R2-ipsec-policy-manual-map-10]sa spi outbound esp 123456
[R2-ipsec-policy-manual-map-10]sa string-key outbound esp simple 234567
· 接口下调用policy策略
[R2]interface GigabitEthernet0/0/2 //公网出口
[R2-GigabitEthernet0/0/2]ipsec policy map
[R2]dis ipsec policy brief //查看ipsec接口信息
IPsec+GRE配置如下:
· 配置安全提议
[R1]ipsec proposal R1
[R1-ipsec-proposal-tran1]quit
· 配置IKE提议
[R1]ike proposal 5
[R1-ike-proposal-5]encryption-algorithm aes-cbc-128
[R1-ike-proposal-5]authentication-algorithm sha1
[R1-ike-proposal-5]quit
· 配置IKE对等体及其使用协议
[R1]ike peer R1 v2
[R1-ike-peer-R1]pre-shared-key cipher huawei
[R1-ike-peer-R1]ike-proposal 5
[R1-ike-peer-R1]quit
· 配置安全框架
[R1]ipsec profile map
[R1-ipsec-profile-map]ike-peer R1
[R1-ipsec-profile-map]proposal R1
[R1-ipsec-profile-map]quit
· 配置IPSec Tunnel接口
[R1]int tunnel0/0/1
[R1-Tunnel0/0/1]ip address 10.0.0.1 24
[R1-Tunnel0/0/1]tunnel-protocol ipsec
[R1-Tunnel0/0/1]source tunnel0/0/0 //指定Tunnel源接口为GRE Tunnel接口
[R1-Tunnel0/0/1]destination 10.0.14.2 //指定Tunnel的目的地址为GRE Tunnel地址
[R1-Tunnel0/0/1]ipsec profile map
MPLS-VPN是利用标签,它是存在于2.5层的技术,在设备的需求上它需要公网区域经过的所有路由器均支持MPLS,对设备要求较高。
R5的MPLS-VPN配置如下:
#创建VRF空间:名称为a1
#RD(route-distinguisher):1:1
#RT(-targe):1:1
[r5]ip -instance a1
[r5--instance-a1]route-distinguisher 1:1
[r5--instance-a1-af-ipv4]-target 1:1
IVT Assignment result:
Info: VPN-Target assignment is successful.
EVT Assignment result:
Info: VPN-Target assignment is successful.
[r5--instance-a1-af-ipv4]quit
[r5--instance-a1]quit
#接口绑定VRF空间,通俗可理解为将此接口关在小黑屋内
#注意:需要先绑定后配置IP地址,先关后配!
[r5]interface GigabitEthernet 0/0/0
[r5-GigabitEthernet0/0/0]ip binding -instance a1
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
[r5-GigabitEthernet0/0/0]ip address 10.200.15.2 24
#R5起OSPF2具体配置:
[r5]ospf 2 router-id 5.5.5.5 -instance a1
[r5-ospf-2]area 0
[r5-ospf-2-area-0.0.0.0]network 10.200.15.2 0.0.0.0
ping:
ping --instance a1 2.2.2.2
由于IPSec是基于网络层的协议,很难穿越NAT和防火墙,特别是在接入一些防护措施较为严格的个人网络和公共计算机时,往往会导致访问受阻。移动用户使用IPSec VPN需要安装专用的客户端软件,为日益增长的用户群发放、安装、配置、维护客户端软件已经使管理员不堪重负。因此,IPSec VPN在Point- to-Site远程移动通信方面并不适用。
SSLVPN通过本地客户端和CA机构颁发证书对比来实现安全加密可靠的传输。
动态智能VPN(Dynamic Smart Virtual Private Network),简称DSVPN,是一种在Hub-Spoke组网方式下为公网地址动态变化的分支之间建立VPN隧道的解决方案。
需注意的一点是:DSVPN是华为私有协议。
配置如下:
R1中心站点配置如下:
[r1]interface Tunnel 0/0/0 //进入隧道口
[r1-Tunnel0/0/0]ip address 100.1.0.1 24 //配置IP地址
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp //修改接口类型为多点GRE
[r1-Tunnel0/0/0]source 10.0.11.2 //公网源地址
# 本地成为NHRP的中心,同时可进行伪广播
[r1-Tunnel0/0/0]nhrp entry multicast dynamic
[r1-Tunnel0/0/0]nhrp network-id 100
**************************************************************************************
R2分支站点配置如下:
[r2]interface Tunnel 0/0/0 //进入隧道
[r2-Tunnel0/0/0]ip ad 100.1.0.2 24 //配置IP
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
[r2-Tunnel0/0/0]source GigabitEthernet 0/0/0 //假设公网地址不确定,可声明为接口
[r2-Tunnel0/0/0]ospf network-type broadcast //由于底层跑了OSPF,OSPF默认为p2mp
[r2-Tunnel0/0/0]nhrp network-id 100
[r2-Tunnel0/0/0]nhrp entry 100.1.0.1 10.0.11.2 register //分支需要去中心站点注册
**************************************************************************************
注意事项:
#若私网使用RIP,一定要在Hub处站点关闭水平分割
[r1-Tunnel0/0/0]undo rip split-horizon
#若私网使用OSPF,一定要更改网络类型
# Hub配置
[r1-Tunnel0/0/0]ospf network-type broadcast //由于底层跑了OSPF,OSPF默认为p2mp
[r1-Tunnel0/0/0]ospf dr-priority 0 //调整优先级,保证Hnb是DR
# Spoke配置
[r1-Tunnel0/0/0]ospf network-type broadcast //由于底层跑了OSPF,OSPF默认为p2mp
首先无论是MPLS-VPN还是GRE隧道技术,均可以达到连通异地私网的目的。
不同在于,MPLS-VPN是利用标签,它是存在于2.5层的技术,在设备的需求上它需要公网区域经过的所有路由器均支持MPLS,对设备要求较高。
GRE隧道技术是位于3层的技术,它是在逻辑上将异地私网连在一起,在设备需求上仅需要边界连接的设备支持MPLS即可,相比之下对设备要求较低。
GRE over IPSec集中在Hub点,所有流量都穿越Hub点,且每增加一个新的Sopke点,Hub点都必须被配置。基于这些缺陷,我们的DSVPN就应运而生。它通过将下一跳解析协议NHRP(Next Hop Resolution Protocol)和mGRE(multipoint Generic Routing Encapsulation)技术与IPSec相结合解决了GRE over IPSec的缺陷。分支与分支之间可建立智能动态VPN,不用的时候会自行拆除,由此维护也显得更加智能化。
Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它的攻击层面是数据库。
通常意义上就是将整个业务应用划分为:界面层、业务逻辑层、数据访问层;由数据库驱动的Web应用程序依从三层架构的思想也分为了三层:表示层-业务逻辑层-数据访问层(客户端-服务器-数据库)。
Web 服务器会向数据访问层发起 sql 查询请求,如果权限验证通过就会执行 sql 语句。网站内部直接发送的sql请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 sql 语句,如果用户输入的数据被构造成恶意 sql 代码,Web 应用又未对动态构造的 sql 语句使用的参数进行审查,则会带来意想不到的危险。
Sql 注入带来的威胁主要有如下几点:
猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。
绕过认证,列如绕过验证登录网站后台。
注入可以借助数据库的存储过程进行提权等操作。
首先,可能存在 Sql 注入漏洞的 Url 是类似这种形式 :http://xxx.xxx.xxx/abcd.php?id=XX
对sql的注入的判断主要从两个方面来讲:1、是否存在 2、属于哪一种
只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在 sql 注入。如果程序员没有足够的安全意识,没有进行必要的字符过滤,存在SQL注入的可能性就非常大。
问题1:在参数后加单引号;and;or;xor;-1;输入框-特殊字符
问题2:注入漏洞的分类。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hOyBuZAy-1638263642602)(https://i.loli.net/2021/07/23/W3uBMOtRrk7pbqI.png)]
**get请求:**get提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连;get方式明文传递,数量小,不安全;效率高,浏览器默认请求方式为GET请求;对应的Servlet的方法是doGet
**post请求:**post方法是把提交的数据放在HTTP的Body中;密文传递数据,数据量大,安全
效率相对没有GET高;对应的Servlet的方法是doPost
Apache/Tomcat/Nginx等中间件(默认端口:80/8080):弱口令;中间件版本信息泄露
mysql(3306);Docker Remote API(默认端口2375):未授权访问;
ssh(22);DNS(53);Telnet(23);
跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击。
分为反射性和存储型两种。
1、攻击效果:
2、预防手段:
1、黑盒测试
尽可能找到一切用户可控并且能够输出在页面代码中的地方,比如下面这些:
URL的每一个参数、URL本身、表单、搜索框、常见业务场景
重灾区:评论区、留言区、个人信息、订单信息等
针对型:站内信、网页即时通讯、私信、意见反馈
存在风险:搜索框、当前目录、图片属性等
2、白盒测试
关于XSS的代码审计主要就是从接收参数的地方和一些关键词入手。
PHP中常见的接收参数的方式有GET、POST、REQUEST等等,可以搜索所有接收参数的地 方。然后对接收到的数据进行跟踪,看看有没有输出到页面中,然后看输出到页面中的数据是否进行了过滤和html编码等处理。
也可以搜索类似echo这样的输出语句,跟踪输出的变量是从哪里来的,我们是否能控制,如果从数据库中取的,是否能控制存到数据库中的数据,存到数据库之前有没有进行过滤等等。
大多数程序会对接收参数封装在公共文件的函数中统一调用,我们就需要审计这些公共函数看有没有过滤,能否绕过等等。
3、常用标签:
<script>alert(document.domain)</script>
<script>confirm('1')</script>
<script>alert(1)</script>
<script>alert(document.cookie)</script>
<script>alert(String.fromCharCode(65))</script>
<ouyangxiangan/onclick="alert('xss')">lilin
<img src=1 onerror="alert('xss')">
<img src=1 onerror=alert(document.cookie)>
<svg onload=alert(1)>
<a href="javascript:alert('xss')">aaa</a>
<video src=1 onerror=alert(1)>
<button onfocus=alert(1) autofocus>
<body onload=alert(1)>
<input type="text" onclick=alert('xss') />
<img src=1" ononerrorerror=location="javajavascripscrip:alert%25282%2529"/>
4、技巧:
通过对xss的学习,我主要想通过本人遇到可使用xss的情况下的思考方式,然后记录一些遇到的问题以及解决方法。
遇到一个搜索框,首先随意传一个参数,然后通过网页检查看以下四个很重要的东西传参方式、参数个数、是否回显、是否可以闭合输入、是否过滤符号、关键字。
遇到以后可以试试以下思路:闭合、双写、编码、寻找其他标签、反斜杠代替空格、合理使用注释、location拼接字符串‘+’、使用抓包工具。可以使用一种也可以多种混合使用,xss就是一个试错的过程,也许不经意间就成功了。
Web应用攻击是攻击者通过浏览器或攻击工具,在URL或者其它输入区域(如表单等),向Web服务器发送特殊请求,从中发现Web应用程序存在的漏洞,从而进一步操纵和控制网站,查看、修改未授权的信息。
1、信息泄露漏洞
信息泄露漏洞是由于Web服务器或应用程序没有正确处理一些特殊请求,泄露Web服务器的一些敏感信息,如用户名、密码、源代码、服务器信息、配置信息等。
2、目录遍历漏洞
目录遍历漏洞是攻击者向Web服务器发送请求,通过在URL中或在有特殊意义的目录中附加“…/”、或者附加“…/”的一些变形(如“…\”或“…//”甚至其编码),导致攻击者能够访问未授权的目录,以及在Web服务器的根目录以外执行命令。
3、命令执行漏洞
命令执行漏洞是通过URL发起请求,在Web服务器端执行未授权的命令,获取系统信息,篡改系统配置,控制整个系统,使系统瘫痪等。
4、文件包含漏洞
文件包含漏洞是由攻击者向Web服务器发送请求时,在URL添加非法参数,Web服务器端程序变量过滤不严,把非法的文件名作为参数处理。这些非法的文件名可以是服务器本地的某个文件,也可以是远端的某个恶意文件。由于这种漏洞是由PHP变量过滤不严导致的,所以只有基于PHP开发的Web应用程序才有可能存在文件包含漏洞。
5、SQL注入漏洞
SQL注入漏洞是由于Web应用程序没有对用户输入数据的合法性进行判断,攻击者通过Web页面的输入区域(如URL、表单等) ,用精心构造的SQL语句插入特殊字符和指令,通过和数据库交互获得私密信息或者篡改数据库信息。SQL注入攻击在Web攻击中非常流行,攻击者可以利用SQL注入漏洞获得管理员权限,在网页上加挂木马和各种恶意程序,盗取企业和用户敏感信息。
6、跨站脚本漏洞
跨站脚本漏洞是因为Web应用程序时没有对用户提交的语句和变量进行过滤或限制,攻击者通过Web页面的输入区域向数据库或HTML页面中提交恶意代码,当用户打开有恶意代码的链接或页面时,恶意代码通过浏览器自动执行,从而达到攻击的目的。跨站脚本漏洞危害很大,尤其是目前被广泛使用的网络银行,通过跨站脚本漏洞攻击者可以冒充受害者访问用户重要账户,盗窃企业重要信息。
分类:基于HTTP协议—IP访问的静态网站;不同端口访问的网站;域名访问的网站;
基于HTTPS协议—IP访问的静态网站;
动态网站
路径:/etc/httpd/conf/
工作过程:
实验环境:
三台Linux服务器:Redhat 7
一台主服务器(DNS_Master),一台从服务器(DNS_Slave),一台客户端(DNS_Client)
·DNS主服务器
1、配置网卡文件 /etc/sysconfig/network-scripts/
mac、ip、子网掩码、DNS
2、配置主DNS服务器
(1)建立配置文件 vim /etc/named.conf
安装依赖包 bind;安装命令yum
options、zone
(2)建立区域数据文件_正向解析+反向解析 vim /var/named/文件名,zone中file指向
缓存本机数据的默认时间IN、起始授权机构SOA、名称服务器NS资源记录、邮件服务器MX资源记录、主机地址A资源记录、别名CNAME资源记录
(3)启动服务 service named start
·DNS从服务器
(1)建立配置文件 vim /etc/named.conf
安装依赖包 bind;安装命令yum
(2)启动DNS服务 service named start
(3)查看目录下是否有生成文件 vim /var/named/slaves/
1、安装vsftpd软件 yum
2、禁用selinux,它导致许多服务端口默认是关闭的,启动服务 service vsftpd start
3、vsftpd的配置 /etc/vsftpd/
ftpusers 该文件用来指定那些用户不能访问ftp服务器。
user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp
vsftpd.conf vsftpd的主配置文件
4、共享目录 /var/ftp/pub
知识点
**Ftp有2种数据连接模式:**命令连接和数据连接
命令连接:是指文件管理类命令,始终在线的持久性连接,直到用户退出登录为止(可以简单的理解为建立连接)
数据连接:是指数据传输,按需创建及关闭的连接(可以简单的理解为传输数据)
数据连接需要关注的点有:
数据传输格式:
文件传输
二进制传输
数据传输模式:
主动模式:由服务器端创建数据连接,用FTP服务器的21号端口
被动模式:由客户端创建数据连接,协商用FTP服务器的其他高位端口
两种数据传输模式的建立过程:
主动模式
命令连接(建立连接通道)
Client端以一个1024以上的随机端口(端口号大于1023小于65535)来连接Server端的21号端口
数据连接(传输数据)
Server端以20号端口去连接Client创建命令连接时使用的随机端口+1的端口
被动模式
命令连接
Client以一个1024以上的随机端口号(端口号大于1023小于65535)来连接Server端的21号端口,命令连接建立完毕后,Server端会告知Client端用于创建数据连接的随机端口号(端口号大于1023小于65535)
数据连接
Client以创建命令连接时使用的随机端口号+1去连服务器端通过命令连接告知自己的一个随机端口号来创建数据连接
是关闭的,启动服务 service vsftpd start
3、vsftpd的配置 /etc/vsftpd/
ftpusers 该文件用来指定那些用户不能访问ftp服务器。
user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp
vsftpd.conf vsftpd的主配置文件
4、共享目录 /var/ftp/pub
知识点
**Ftp有2种数据连接模式:**命令连接和数据连接
命令连接:是指文件管理类命令,始终在线的持久性连接,直到用户退出登录为止(可以简单的理解为建立连接)
数据连接:是指数据传输,按需创建及关闭的连接(可以简单的理解为传输数据)
数据连接需要关注的点有:
数据传输格式:
文件传输
二进制传输
数据传输模式:
主动模式:由服务器端创建数据连接,用FTP服务器的21号端口
被动模式:由客户端创建数据连接,协商用FTP服务器的其他高位端口
两种数据传输模式的建立过程:
主动模式
命令连接(建立连接通道)
Client端以一个1024以上的随机端口(端口号大于1023小于65535)来连接Server端的21号端口
数据连接(传输数据)
Server端以20号端口去连接Client创建命令连接时使用的随机端口+1的端口
被动模式
命令连接
Client以一个1024以上的随机端口号(端口号大于1023小于65535)来连接Server端的21号端口,命令连接建立完毕后,Server端会告知Client端用于创建数据连接的随机端口号(端口号大于1023小于65535)
数据连接
Client以创建命令连接时使用的随机端口号+1去连服务器端通过命令连接告知自己的一个随机端口号来创建数据连接