前言
在学习安全技术之前,首先我们应该了解网络的基本概念,如网络的基本通信原理,网络的组成和常见的网络协议等。在了解网络协议的基础上,能够理解网络安全威胁,从而部署安全防御策略。
OSI七层模型
OSI:Open System Interconnect Reference Model, 开放式系统互联参考模型。OSI模型的设计目的是成为一个开放网络互联模型,来克服使用众多网络模型所带来的互联困难和低效性。 OSI参考模型很快成为计算机网络通信的基础模型。在设计时遵循了以下原则: 1、各个层之间有清晰的边界,便于理解; 2、每个层实现特定的功能,且相互不影响; 3、每个层是服务者又是被服务者,即为上一层服务,又被下一层服务; 4、层次的划分有利于国际标准协议的制定; 5、层次的数目应该足够多,以避免各个层功能重复。
OSI参考模型具有以下优点: 1、简化了相关的网络操作; 2、提供即插即用的兼容性和不同厂商之间的标准接口; 3、使各个厂商能够设计出互操作的网络设备,加快数据通信网络发展; 4、防止一个区域网络的变化影响另一个区域的网络,因此,每一个区域的网络都能单独快速升级; 5、把复杂的网络问题分解为小的简单问题,易于学习和操作。
各层次的作用: 物理层涉及到在通信信道(channel)上传输的原始比特流,是OSI参考模型的基础,它实现传输数据所需要的机械、电气功能特性。它不关心每一bit流(0,1)所代表的含义( 如代表地址还是应用数据),只关注如何把bit流通过不同物理链路传输至对端。典型的像中继器、集线器(hub)就属于物理层设备。 链路层主要任务是提供对物理层的控制,检测并纠正可能出现的错误,使之对网络层显现一条无错线路,并且进行流量调控。 网络层检查网络拓扑,以决定传输报文的最佳路由,转发数据包。其关键问题是确定数据包从源端到目的端如何选择路由。网络层设备通过运行路由协议(Routing Protocol)来计算到目的地的最佳路由,找到数据包应该转发的下一个网络设备,然后利用网络层协议封装数据包,利用下层提供的服务把数据发送到下一个网络设备。 传输层位于OSI参考模型第四层,最终目标是向用户(一般指应用层的进程),提供有效、可靠的服务。 在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。 表示层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩,加密和解密等工作都由表示层负责。 应用层为操作系统或网络应用程序提供访问网络服务的接口。
TCP模型
TCP模型在OSI模型基础上进一步缩减了层数,将应用层表示层会话层统一合并为应用层,因为这三个层次所做的行为都是应用相关的。而将物理层与数据链路层合并成了网络接口层。当然在有的地方也会把网络接口层分为数据链路层和网络层来学习。 这是TCP/IP中各个层次上的知名协议,比如应用层上HTTP网页服务,Telnet提供远程连接的服务,FTP,TFTP提供文件传输服务,TFTP属于快捷的文件传输,其用UDP传输数据。DNS提供了域名解析服务。而往下传输层提供了TCP建立稳定连接为数据提供了重传、确认、分段等功能。而UDP提供了高效的传输速率。再往下网络层,IP协议提供了数据在网络中IP寻址和路由器选择路由的功能,ARP、RARP分别为地址解析反向地址解析协议,一个是通过目的IP地址解析出目的MAC地址,另一个是通过目的MAC地址解析出目的IP地址。而ICMP是链路控制管理协议,用来提供网络层差错控制与网络连通性测试的功能,最重要的应用又ping和tracert命令。IGMP是组播管理协议,用来管理组播组成员的加入退出。最后网络接口层其实在这里指的是数据链路层的协议,其中Ethernet是我们的以太网协议,负责数据最后的交付。还有PPP和HDLC是广域网中使用的链路层协议。
数据封装过程
数据在应用层准备APP相关的数据,然后执行加密压缩,如果电脑有多个应用传输数据,那么还要建立应用间的回话连接,然后数据加密压缩完后下发给传输层加入一个传输层的头部,如果用的TCP就是TCP头部,UDP就是UDP头部,封装的重点是源端口和目的端口用来区分访问网络的应用已经要访问对端的某个应用。然后往下到网络层封装IP头部,重点是源IP地址和目的IP地址,用来在互联网中通过IP地址进行寻址或者说寻路。并且路由器通过IP地址进行选路。然后到了数据链路层封装以太网帧头部,重点是源MAC地址与目的MAC地址,用来进行最后的交付,因为MAC地址一般情况下是不可更改的代表了设备的身份。而IP地址其实是可以随意更改的。当然后面还有一个物理层,数据转为比特流进行传输。到了对端后一层层往上验证后剥开相应的头部最后到达应用层的就是原始的应用数据。
五元组
在数据传输的过程中有个五元组的概念,任何应用服务器要想对外提供业务服务,均需在服务启动期间在TCP/UDP上进行端口注册,以便响应业务服务请求。通过五元组,应用服务器可响应任何并发服务请求,且能保证每一链接在本系统内是唯一的。五元组包括:源IP地址+目的IP地址+源端口+目的端口+协议。
常见的网络层协议
ARP
ARP协议为地址解析协议,作用是通过IP地址来请求相应的MAC地址,当设备刚启动时,是不知道其他设备MAC地址的,这时候主机A想要与主机C进行通信,数据封装到了目的MAC地址就进行不下去了,这就需要我们ARP登场了,主机中有个ARP缓存表,存放着IP地址与MAC地址的对应关系,表中的条目要发起相应请求后才会有条目,刚开机后表中是没有条目的,这时候就需要发起一个ARP请求。 ARP数据时封装在以太网帧内的,虽然是个网络层的协议当时封装却封装在数据链路层,这也是ARP的特点。然后数据帧以广播的形式发送,这是肯定的,因为我们一开始并不知道对端主机在哪里,所以直接在整个网络中广播找人,ARP数据内包含了目的IP地址源IP地址,目的MAC地址不知道所以用全0代替,以及源MAC地址,最后操作类型为请求。让后广播发送,主机C收到后第一步是先将相应的主机A的IP地址与MAC地址添加到自己的ARP缓存表中,然后查看ARP中的数据,发现是请求自己的MAC地址则发送ARP回应报文: 这时会把自己的MAC地址填入源MAC地址中,其他的数据都相应齐全了,这样主机A收到后会将ARP缓存表中填上主机C的对应条目,之后数据封装目的MAC地址时查看ARP缓存表中找到对应的MAC地址封装进以太网帧中,进行正常的数据转发。
免费ARP
免费ARP与普通的ARP不同,在发起ARP请求时源目IP地址都是自己的IP地址,这样的一个请求报文发出后,如果收到回应说明网络中有与自己IP地址冲突的主机。那么我们就换个IP地址。免费ARP在修改IP地址以及通过DHCP自动获取IP地址后会发送免费ARP来检测IP地址的冲突现象。
ICMP
ICMP叫链路控制管理协议,它是网络层中用来进行IP网络设备之间发送控制报文,传递差错、控制、查询等信息作用的协议。因为网络层中的IP协议并有相关作用的字段,因此我们需要一个专门的协议来弥补IP协议在这方面的不足。 ICMP应用-ping命令 ping命令用来检测2个网络设备间的连通性,ping命令使用了ICMP中的echo request和echo replay2种报文。
ICMP应用-tracert命令 ICMP的另一个典型应用是Tracert。Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。该报文到达第一个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,以此类推,直到报文到达目的地。这样,源端根据返回的报文中的信息可以跟踪到报文经过的每一个节点,并根据时间戳信息计算往返时间。Tracert是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。
路由协议
路由是数据通信网络中最基本的要素。路由信息就是指导报文发送的路径信息,路由的过程就是报文转发的过程。 根据路由目的地的不同,路由可划分为:
路由 | 说明 |
---|
网段路由 | 目的地为网段,IPv4地址子网掩码长度小于32位或IPv6地址前缀长度小于128位。 | 主机路由 | 目的地为主机,IPv4地址子网掩码长度为32位或IPv6地址前缀长度为128位。 |
根据目的地与该路由器是否直接相连,路由又可划分为:
路由 | 说明 |
---|
直连路由 | 目的地所在网络与路由器直接相连。 | 间接路由 | 目的地所在网络与路由器非直接相连。 |
根据目的地址类型的不同,路由还可以分为:
路由 | 说明 |
---|
单播路由 | 表示将报文转发的目的地址是一个单播地址。 | 组播路由 | 表示将报文转发的目的地址是一个组播地址。 |
静态路由与动态路由的区别:
路由 | 说明 |
---|
静态路由 | 配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。缺点是不能自动适应网络拓扑的变化,需要人工干预。 v | 动态路由 | 有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络。缺点是配置对用户要求比较高,对系统的要求高于静态路由,并将占用一定的网络资源和系统资源。 |
动态路由的分类 根据作用范围不同,路由协议可分为:
路由协议 | 说明 |
---|
内部网关协议IGP(Interior Gateway Protocol) | 在一个自治系统内部运行。常见的IGP协议包括RIP、OSPF和IS-IS。 | 外部网关协议EGP(Exterior Gateway Protocol) | 运行于不同自治系统之间。BGP是目前最常用的EGP协议。 |
根据使用算法不同,路由协议可分为:
路由协议 | 说明 |
---|
距离矢量协议(Distance-Vector Protocol) | 包括RIP和BGP。其中,BGP也被称为路径矢量协议(Path-Vector Protocol)。 | 链路状态协议(Link-State Protocol) | 包括OSPF和IS-IS。 |
SNMP
SNMP叫做简单网络管理协议,用来统一管理网络中不同厂商的不同设备,SNMP支持一下操作: NMS通过SNMP协议给网络设备发送配置信息。 NMS通过SNMP来查询和获取网络中的资源信息。 网络设备主动向NMS上报告警消息,使得网络管理员能够及时处理各种网络问题。 其中NMS是网络管理系统,是一个应用在管理设备上的管理软件,通过SNMP协议在被管理设备上发送配置信息或者查询相关信息等。 SNMP包括了NMS和Agent以及MIB,NMS上面也说过了是用来在管理设备上运行的管理软件,统一监控管理运行了SNMP协议的系统,Agent是运行在被管理设备上的代理进程。被管理设备在接收到NMS发出的请求后,由Agent作出响应操作。Agent的主要功能包括:收集设备状态信息、实现NMS对设备的远程操作、向NMS发送告警消息。MIB是一个虚拟出来的数据库,它包含了被管理设备的所维护的各类信息。 SNMP的版本如下:
版本 | 作用 |
---|
SNMPv1 | 实现方便,安全性弱。 | SNMPv2c | 有一定的安全性。 现在应用最为广泛。 | SNMPv3 | 定义了一种管理框架,为用户提供了安全的访问机制。 |
NTA
eSight NTA即网流分析系统(Network Traffic Analyzer)是纯软件解决方案,无需硬件探针,不会额外增加用户投资;通过NetFlow、NetStream、sFlow协议,对常见的IP报文进行采集和分析,提供贴近客户的分析报表,能实时准确的监控全网流量,是企业运维管理的一大利器。 NTA功能特点:
功能 | 特点 |
---|
流量可视 | 提供实时的IP流量监控,显示网络流量趋势,方便管理者及时发现异常,并进行处理。 | 异常可查 | 通过NTA网流分析组件,可对原始IP流量进行分析审计,找到异常流量的根源。 | 规划可依 | NTA网流分析组件提供的流量趋势、自定义报表的功能为管理者在进行网络容量规划时提供参考依据。 |
NetStream
NetStream是华为技术有限公司的专利技术,是一种网络流信息的统计与发布技术。NDE把获得的统计信息定期向NSC发送,由NSC进行进一步的处理,然后交给后续的NDA进行数据分析,分析的结果为网络计费与规划提供依据。 NetStream功能的实现主要涉及三种设备:
设备 | 功能 |
---|
NDE(NetStream Data Exporter) | 负责流量的采集和发送。 | NSC(NetStream Collector) | 负责解析来自NDE的报文,把统计信息收集到数据库中,可供NDA进行解析。 | NDA(NetStream Data Analyzer) | 负责对统计信息进行分析,进一步的加工处理,生成报表,为各种业务提供依据(比如流量计费、网络规划,监测)。 |
NetStream系统的工作过程如下: 配置了NetStream功能的设备(即NDE)把采集到的关于流的详细统计信息定期发送给NSC;信息由NSC初步处理后发送给NDA;NDA对数据进行分析,以用于计费、网络规划等应用。
传输层协议
TCP
TCP作为传输层上重要的协议,用来在2台设备之间建立连接,提供可靠稳定的数据传输,而UDP不建立连接,但是UDP的传输速率比TCP要快,因此在什么环境下使用TCP和UDP是需要考虑的问题。 TCP的连接建立需要进行三次握手: 主机想要与服务器建立TCP连接好获取数据,首先发送SYN置位的报文,并且随机出一个序号a,server收到后回应ACK,ack确认为收到的序号+1,因此是a+1,然后自己也发起连接的请求SYN并且随机出序号b,这2个动作可以合二为一。主机收到回应后发送ACK并且序号正常增加1,对服务器的确认b+1,连接建立成功。
当数据传输完成后需要断开连接,因为连接建立后维护是需要消耗相关资源的,因此我们需要避免务必要的连接建立,在数据传完后要断开连接: 主机在发送完数据后发起断开连接请求,FIN置位,序号位最后一次数据序列号+1,假定为a,服务器收到后回应ACK,ack确认为a+1,然后当服务器数据发送完后,发起FIN置位数据,假定最后一次数据序列号为c-1,因此这次序号为c,然后主机收到后回应ACK。连接断开。
应用层协议
FTP
FTP 提供了一种在服务器和客户机之间上传和下载文件的有效方式。使用FTP传输数据时,需要在服务器和客户机之间建立控制连接和数据连接。使用FTP进行文件传输时,会使用两个TCP连接。第一个连接是FTP客户端和FTP服务器间的控制连接。FTP服务器开启21号端口,等待FTP客户端发送连接请求。FTP客户端随机开启端口,向服务器发送建立连接的请求。控制连接用于在服务器和客户端之间传输控制命令。
HTTP/HTTPS
Web基于客户端(Client)/服务器(Server)架构实现,包含三个部分: 使用HTML(HyperText Mark-up Language)描述文件 使用URL(Uniform Resource Locator)指定文件的所在 透过HTTP(HyperText Transfer Protocol)协议与服务器沟通 HTTP由于是面向连接的协议,且没有加密验证机制,导致安全性不足;而HTTPS协议由于加密功能,某些病毒攻击可能隐藏其中而不能被安全设备发现,这也成为网络安全的一大隐患。 HTTP有两类报文: 请求报文—从客户端向服务器发送请求报文。 响应报文—从服务器到客户端的回答。
HTTP工作流程: 客户机(浏览器)主动向服务器(web server)发出连接请求。 服务器接受连接请求并建立起连接。(1,2步即我们所熟知的TCP三次握手) 客户机通过此连接向服务器发出GET等http命令(HTTP请求报文)。 服务器接到命令并根据命令向客户机传送相应的数据(HTTP响应报文)。 客户机接收从服务器送过来的数据。 服务器发送完数据后,主动关闭此次连接(TCP四次挥手)。
DNS
域名解析要由专门的域名解析系统(Domain Name System,简称DNS)来完成。在DNS系统中,涉及以下几种类型的服务器:
服务器 | 作用 |
---|
根服务器 | 主要用来管理互联网的主目录,全世界只有13个根逻辑服务器节点。这13个节点其中10个设置在美国,另外各有一个设置于英国、瑞典和日本。虽然网络是无国界的,但服务器还是有国界的。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理。 | 顶级域名服务器 | 一般用于存储.com、.edu、.cn等顶级域名。 | 递归服务器 | 可理解为存储着官方域名解析授权的授权服务器,一般存储着这个网络中域名和IP地址的解析关系,也就是DNSPod充当的角色。试想一下,如果每个上网用户在上网的时候都向授权服务器发送请求,那授权服务器必然承受不住,所以就有了缓存服务器存在的必要。 | 缓存服务器 | 授权服务器的一个代理,可以缓解授权服务器的压力。我们每次上网的时候,域名解析的请求都是发给缓存服务器的,缓存服务器第一次收到用户请求的时候,会向授权服务器请求域名和IP地址的解析表,然后储存在本地,等后续再有用户请求相同的域名时,就会直接答复,不再请求。毕竟一个网站的IP地址不是经常变换的。当然,这个解析表是有一定的有效期的,等有效期到了,这个解析表就会自动老化,等下次有用户请求时重新向授权服务器询问。这个定期老化机制,可以保证缓存服务器上域名解析的定期更新。 |
SMTP/POP3/IMAP
SMTP定义了计算机如何将邮件发送到SMTP Server,SMTP Server之间如何中转邮件。 POP3(Post Office Protocol 3,邮局协议版本3)和IMAP(Internet Mail Access Protocol,交互式邮件存取协议)规定计算机如何通过客户端软件管理、下载邮件服务器上的电子邮件。 基于该种方式,网络管理员需要在邮件服务器上部署SMTP服务、POP3服务(或IMAP服务);终端用户需要在PC上安装邮件客户端软件(例如MicroSoft OutLook、FoxMail等邮件管理软件)。 IMAP与POP3主要区别在于:使用POP3,客户端软件会将所有未阅读邮件下载到计算机,并且邮件服务器会删除该邮件。使用IMAP,用户直接对服务器上的邮件进行操作,不需要把所有邮件下载到本地再进行各项操作。
|