linux网络管理

第1章 网络管理

1.1 网络概述

1.1.1因特网

组成:

  • 边缘部分

    • 由所有连接在因特网上的主机组成
    • 供用户直接使用,用来进行数据交换(传送数据、音频或视频)和资源共享
  • 核心部分

    • 功能:
      • 向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据).
    • 关键组成部分:
      • 路由器(router),路由器是实现分组交换(packet switching)的关键构件,任务是转发收到的分组,这是网络核心部分最重要的功能
    • 由ISP (Internet Service Provider)因特网服务提供者提供
  • 三级计算机网络:

    • 主干网
    • 地区网
    • 校园网/企业网
  • 计算机网络向用户提供的最重要的功能:

    • 连通性: 使上网用户之间可以交换信息
    • 共享: 即资源共享(信息共享 软件共享 硬件共享)
  • 网络体系结构:

结构:

linux网络管理_第1张图片

特点:

  • 容错能力
  • 可扩展性
  • 安全
    • 网络中采取的安全措施包括:
      • 防止未经授权地披露或窃取信息
      • 防止未经授权地修改信息
      • 防止拒绝服务实现这些目标的方法
    • 确保机密性:
      • 用户认证
      • 数据加密
    • 维护通信完整性:
      • 数字签名
    • 确保可用性:
      • 防火墙
      • 冗余网络基础架构
      • 防止单点失效的硬件

网络划分:

  • 按范围划分:
    • 广域网 WAN (Wide Area Network)
    • 局域网 LAN (Local Area Network)
    • 城域网 MAN (Metropolitan Area Network)
    • 个人区域网 PAN (Personal Area Network)
  • 按使用者划分:
    • 公用网 (public network)
    • 专用网 (private network)

1.1.2计算机网络性能指标

速率(rate)

  • 连接计算机网络的主机在数字通道上传送数据的速率,单位是比特bit

带宽(bandwidth)

  • 定义 本来是指信号具有的频带宽度,单位是赫(或千赫,兆赫,吉赫等),现在是指数字信道所能传送的"最高数据率",单位是"比特每秒"或 b/s (bit/s)

吞吐量(throughput)

  • 定义 表示在单位时间内通过某个网络(或信道,接口)的数据量
  • 注意 吞吐量受网络的带宽或网络的额定速率的限制

时延(delay)

分类:
  • 传输时延(发送时延)
    • 发送数据时,数据块从结点进入传输媒体所需要的时间也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间
  • 传播时延
    • 电磁波在信道中需要传播一定的距离而花费的时间
  • 处理时延
    • 交换结点为存储转发而进行一些必要的处理所花费的时间
  • 排队时延
    • 定义:
      • 结点缓存队列中分组排队所经历的时延
    • 决定因素:
      • 排队时延的长短往往取决于网络中当时的通信量
    • 分类:
      • 输入队列中排队等待处理
      • 输出队列中排队等待处理
总时延:
  • 总时延= 发送时延+传播时延+输入处理时延+输出处理时延
注意:
  • 对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率提高链路带宽减小了数据的发送时延

时延带宽积

  • 时延带宽积 = 带宽 × 传播时延

往返时间RTT(round-Trip Time)

  • 从发送数据开始到接收到对方的确认的时间值

利用率

  • 信道利用率 某信道有百分之几的时间是被利用的(有数据通过,完全空闲的信道的利用率是零,信道利用率并非越高越好)
  • 网络利用率 则是全网络的信道利用率的加权平均值

1.1.3网络通信方式

客户/服务器方式_C/S (Client/Server方式)

  • 定义:
    • 描述的是进程之间服务和被服务的关系
  • 客户端:
    • 通信时主动向远地服务器发起通信(主动)
    • 不需要特殊的硬件和很复杂的操作系统(简单)
    • 客户端程序的地址为可变的(IP不固定)
  • 服务器端:
    • 被动地等待通信请求可同时处理多个远地或本地客户的请求(被动)
    • 需要强大的硬件和高级的操作系统支持.(复杂)
    • 服务器端程序的地址为固定的(IP固定)

对等方式P2P(Peer-to-Peer方式)

  • 连接方式:
    • 两个主机都运行对等连接软件(P2P 软件),它们就可以进行平等的,对等连接通信
  • 特点:
    • 通信时并不区分哪一个是服务请求方还是服务提供方,双方都可以下载对方已经存储在硬盘中的共享文档

浏览器/服务器_B/S(Browser/Server方式)

  • 说明:
    • 它是随着Internet技术的兴起,对C/S模式应用的扩展.在这种结构下,用户工作界面是通过IE浏览器来实现的
  • 客户端(也具备C/S客户端的三个特点): 浏览器(一般无须任何用户程序)
  • 服务器端(也具备C/S客户端的三个特点): Web服务器
  • 优点:
    • 具有分布性特点,可以随时随地进行查询、浏览等业务处理。
    • 业务扩展简单方便,通过增加网页即可增加服务器功能。
    • 维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
    • 开发简单,共享性强。
  • 缺点:
    • 个性化特点明显降低,无法实现具有个性化的功能要求。
    • 操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。
    • 页面动态刷新,响应速度明显降低。
    • 无法实现分页显示,给数据库访问造成较大的压力。
    • 功能弱化,难以实现传统模式下的特殊功能要求。

影响网络通信的成功与否的内部因素包括:

  • 消息的大小
  • 消息的复杂程度
  • 消息的重要程度

通信要素:

  • 三个共同的要素:
    • 消息来源
    • 通道
    • 消息的目的地址
  • 传达消息方法:
    • 分段 – 将通信划分为多个片段.
    • 多路复用 – 交替发送经过介质的片段

1.1.4网络交换方式

电路交换

特点:
  • 面向连接的
  • 传送计算机数据效率低(由于计算机数据具有突发性,这导致通信线路的利用率很低)

电路交换的三个阶段:

  • 建立连接
  • 通信
  • 释放连接

电路交换的"交换"含义:

  • 转接(把一条电话线转接到另一条电话线,使它们连通起来)

报文交换

  • 报文特点:
    • 发送端 把数据段前面添加上首部构成报文发送出去
    • 接收端 收到报文后剥去首部取得报文
  • 报文首部:
    • 报文的首部都含有地址等控制信息
    • 分报文换网中的结点交换机根据收到的报文首部中地址信息,把报文转发到下一个结点交换机.直到达最终目的地
  • 路由器处理报文的过程:
    • 把收到的报文先放入缓存(暂时存储)
    • 查找转发表,找出到某个目的地址应从哪个端口转发
    • 把报文送到适当的端口转发出去

分组交换

  • 分组特点:
    • 发送端 把较长的报文划分成较短的,固定长度的数据段,每一个数据段前面添加上首部构成分组。以"分组"作为数据传输单元,依次把各分组发送到接收端。
    • 接收端 收到分组后剥去首部,最后还原成原来的报文
  • 分组首部:
    • 每一个分组的首部都含有地址等控制信息
    • 分组交换网中的结点交换机根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机,直到达最终目的地
  • 路由器处理分组的过程:
    • 把收到的分组先放入缓存(暂时存储)
    • 查找转发表,找出到某个目的地址应从哪个端口转发
    • 把分组送到适当的端口转发出去
  • 因特网核心部分采用分组交换的优点:
    • 高效 动态分配传输带宽,对通信链路是逐段占用
    • 灵活 以分组为传送单位和查找路由
    • 迅速 不必先建立连接就能向其他主机发送分组
    • 可靠 保证可靠性的网络协议
  • 分组交换带来的问题:
    • 分组在各结点存储转发时需要排队,这就会造成一定的时延
    • 分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销

1.1.5网络分层协议模型

七层协议模型

  • 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP
  • 表示层 例如XDR、ASN.1、SMB、AFP、NCP
  • 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets
  • 传输层 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL
  • 网络层 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25
  • 数据链路层 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP
  • 物理层 例如线路、无线电、光纤

分层的好处:

  • 各层之间是独立的
  • 灵活性好
  • 结构上可分割开
  • 易于实现和维护
  • 能促进标准化工作

相关概念:

  • 实体(entity) 任何可发送或接收信息的硬件或软件进程
  • 协议 控制两个对等实体进行通信的规则的集合( 协议是"水平的",是控制对等实体之间通信的规则.下面的协议对上面的服务用户是透明的 )
  • 服务 服务是"垂直的",是由下层向上层或上层向下层通过层间接口提供

协议模型:

linux网络管理_第2张图片

1.2 路由配置

1.2.1路由概念

  • 路由: 跨越从源主机到目标主机的一个互联网络来转发数据包的过程。
  • 路由器:能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备。
  • 路由表:在路由器中维护的路由条目,路由器根据路由表做路径选择。
  • 直连路由:当在路由器上配置了接口的IP地址,并且接口状态为up的时候,路由表中就出现直连路由项。
  • 静态路由:是由管理员手工配置的,是单向的。
  • 默认路由:当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口 。

1.2.2静态路由和默认路由的特点

静态路由特点:

  • 路由表是手工设置的;
  • 除非网络管理员干预,否则静态路由不会发生变化;
  • 路由表的形成不需要占用网络资源;
  • 适用环境:一般用于网络规模很小、拓扑结构固定的网络中。

默认路由特点:

  • 在所有路由类型中,默认路由的优先级最低
  • 适用环境:一般应用在只有一个出口的末端网络中或作为其他路由的补充

浮动静态路由:

  • 路由表中存在相同目标网络的路由条目时,根据路由条目优先级的高低,将请求转发到相应端口;
  • 链路冗余的作用

1.2.3路由器转发数据包时的封装过程

  • 源IP和目标IP不发生变化,在网络的每一段传输时,源和目标MAC发生变化,进行重新封装,分别是每一段的源和目标地址

要完成对数据包的路由,一个路由器必须至少了解以下内容

a)目的地址
b)相连路由器,并可以从哪里获得远程网络的信息
c)到所有远程网络的可能路由
d)到达每个远程网络的最佳路由
e)如何维护并验证路由信息
f)路由和交换的对比

路由工作在网络层

a)根据“路由表”转发数据
b)路由选择
c)路由转发

交换工作在数据链路层

d)根据“MAC地址表”转发数据
e)硬件转发

1.2.4route命令

  • 使用route -n命令查看Linux内核路由表
[root@dev ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.17 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.1.32.14 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.1.32.12 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.4.8.2 192.168.9.254 255.255.255.255 UGH 0 0 0 eth0
10.4.9.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.9.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
10.2.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0
10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0
10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0
0.0.0.0 192.168.9.254 0.0.0.0 UG 0 0 0 eth0
  • route 命令的输出项说明
Destination 目标网段或者主机
Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码
Flags 标记。一些可能的标记如下:
U — 路由是活动的
H — 目标是一个主机
G — 路由指向网关
R — 恢复动态路由产生的表项
D — 由路由的后台程序动态地安装
M — 由路由的后台程序修改
! — 拒绝路由
Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref 路由项引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 该路由表项对应的输出接口

1.3 TCP/IP概述

1.3.1产生背景

  • Internet网络的前身ARPANET当时使用的并不是传输控制协议/网际协议(Transmission ControlProtocol/Internet Protocol,TCP/IP),而是一种叫网络控制协议(Network Control Protocol,NCP)的网络协议,但随着网络的发展和用户对网络的需求不断提高,设计者们发现,NCP协议存在着很多的缺点以至于不能充分支持ARPANET网络,特别是NCP仅能用于同构环境中(所谓同构环境是网络上的所有计算机都运行相同的操作系统),设计者就认为“同构”这一限制不应被加到一个分布广泛的网络上。1980年,用于“异构”网络环境中的TCP/IP协议研制成功,也就是说,TCP/IP协议可以在各种硬件和操作系统上实现互操作。1982年,ARPANET开始采用TCP/IP协议。

1.3.2产生过程

(1)1973年,卡恩与瑟夫开发出了TCP/IP协议中最核心的两个协议:TCP协议和IP协议。
(2)1974年12月,卡恩与瑟夫正式发表了TCP/IP协议并对其进行了详细的说明。同时,为了验证TCP/IP协议的可用性,使一个数据包由一端发出,在经过近10万km的旅程后到达服务端。在这次传输中,数据包没有丢失一个字节,这充分说明了TCP/IP协议的成功。
(3)1983年元旦,TCP/IP协议正式替代NCP,从此以后TCP/IP成为大部分因特网共同遵守的一种网络规则。
(4)1984年,TCP/IP协议得到美国国防部的肯定,成为多数计算机共同遵守的一个标准。
(5)2005年9月9日卡恩和瑟夫由于他们对于美国文化做出的卓越贡献被授予总统自由勋章。

1.3.3TCP/IP协议的组成

  • TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。但是这显然是有些复杂的,所以在TCP/IP协议中,它们被简化为了四个层次。

1.3.4特点

  • TCP/IP协议能够迅速发展起来并成为事实上的标准,是它恰好适应了世界范围内数据通信的需要。它有以下特点:
    (1)协议标准是完全开放的,可以供用户免费使用,并且独立于特定的计算机硬件与操作系统。
    (2)独立于网络硬件系统,可以运行在广域网,更适合于互联网。
    (3)网络地址统一分配,网络中每一设备和终端都具有一个唯一地址。
    (4)高层协议标准化,可以提供多种多样可靠网络服务。

1.3.5通信过程及相关协议

  • 在网络通信的过程中,将发出数据的主机称为源主机,接收数据的主机称为目的主机。当源主机发出数据时,数据在源主机中从上层向下层传送。源主机中的应用进程先将数据交给应用层,应用层加上必要的控制信息就成了报文流,向下传给传输层。传输层将收到的数据单元加上本层的控制信息,形成报文段、数据报,再交给网际层。网际层加上本层的控制信息,形成IP数据报,传给网络接口层。网络接口层将网际层交下来的IP数据报组装成帧,并以比特流的形式传给网络硬件(即物理层),数据就离开源主机。

1.链路层

  • 以太网协议规定,接入网络的设备都必须安装网络适配器,即网卡,数据包必须是从一块网卡传送到另一块网卡。而网卡地址就是数据包的发送地址和接收地址,有了MAC地址以后,以太网采用广播形式,把数据包发给该子网内所有主机,子网内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同就做下一步处理,如果不同,就丢弃这个包。

  • 所以链路层的主要工作就是对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。

2.网络层

IP协议
  • 网络层引入了IP协议,制定了一套新地址,使得我们能够区分两台主机是否同属一个网络,这套地址就是网络地址,也就是所谓的IP地址。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。如果两个IP地址在同一个子网内,则网络地址一定相同。为了判断IP地址中的网络地址,IP协议还引入了子网掩码,IP地址和子网掩码通过按位与运算后就可以得到网络地址。
ARP协议
  • 即地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
路由协议
  • 首先通过IP协议来判断两台主机是否在同一个子网中,如果在同一个子网,就通过ARP协议查询对应的MAC地址,然后以广播的形式向该子网内的主机发送数据包;如果不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将该数据包转发到目标IP所在的子网中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方。而完成这个路由协议的物理设备就是路由器,路由器扮演着交通枢纽的角色,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。所以,网络层的主要工作是定义网络地址、区分网段、子网内MAC寻址、对于不同子网的数据包进行路由。

3.传输层

  • 链路层定义了主机的身份,即MAC地址,而网络层定义了IP地址,明确了主机所在的网段,有了这两个地址,数据包就从可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包。因此传输层引入了UDP协议来解决这个问题,为了给每个应用程序标识身份。
UDP协议
  • UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,当数据包到达主机以后,就可以根据端口号找到对应的应用程序了。UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络可靠性,TCP协议就诞生了。
TCP协议
  • TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。为了保证传输的可靠性,TCP协议在UDP基础之上建立了三次对话的确认机制,即在正式收发数据前,必须和对方建立可靠的连接。TCP数据包和UDP一样,都是由首部和数据两部分组成,唯一不同的是,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

  • 传输层的主要工作是定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性。

4.应用层

  • 理论上讲,有了以上三层协议的支持,数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了,但此时传过来的数据是字节流,不能很好的被程序识别,操作性差,因此,应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等,在请求Header中,分别定义了请求数据格式Accept和响应数据格式Content-Type,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理,最后按照请求方要求的格式将数据返回,请求端接收到响应后,就按照规定的格式进行解读。所以应用层的主要工作就是定义数据格式并按照对应的格式解读数据。

1.3.6安全隐患

1.链路层上的攻击

  • 在TCP/IP网络中,链路层这一层次的复杂程度是最高的。其中最常见的攻击方式通常是网络嗅探组成的TCP/IP协议的以太网。当前,我国应用较为广泛的局域网是以太网,且其共享信道利用率非常高。以太网卡有两种主要的工作方式,一种是一般工作方式,另一种是较特殊的混杂方式。这一情况下,很可能由于被攻击的原因而造成信息丢失情况,且攻击者可以通过数据分析来获取账户、密码等多方面的关键数据信息。

2.网络层上的攻击

ARP欺骗
  • ARP(地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议。通常情况下,在IP数据包发送过程中会存在一个子网或者多个子网主机利用网络级别第一层,而ARP则充当源主机第一个查询工具,在未找到IP地址相对应的物理地址时,将主机和IP地址相关的物理地址信息发送给主机。与此同时,源主机将包括自身IP地址和ARP检测的应答发送给目的主机。如果ARP识别链接错误,这样的话ARP直接应用可疑信息,那么可疑信息就会很容易进入目标主机当中。ARP协议没有状态,不管有没有收到请求,主机会将任何受到的ARP相应自动缓存。如果信息中带有病毒,采用ARP欺骗就会导致网络信息安全泄露。因此,在ARP识别环节,应加大保护,建立更多的识别关卡,不能只简单通过IP名进行识别,还需充分参考IP相关性质等。
ICMP欺骗
  • ICMP协议也是因特网控制报文协议,主要用在主机与路由器之间进行控制信息传递。通过这一协议可对网络是否通畅、主机是否可达、路由是否可用等信息进行控制。一旦出现差错,数据包会利用主机进行即时发送,并自动反回描述错误的信息。该协议在网络安全当中是十分重要的协议。但由于自身特点的原因,其极易受到入侵,通常而言,目标主机在长期发送大量ICMP数据包的情况下,会造成目标主机占用大量CPU资源,最终造成系统瘫痪。

3.传输层上的攻击

  • 在传输层还存在网络安全问题。如在网络安全领域中,IP欺骗就是隐藏自己的有效手段,主要是通过将自身IP地址进行伪造,并向目标主机发送恶意的请求,攻击主机,而主机却因为IP地址被隐藏而无法准确确认攻击源。或者通过获取目标主机信任而趁机窃取相关的机密信息。在DOS攻击中往往会使用IP欺骗,这是因为数据包地址来源较广泛,无法进行有效过滤,从而使IP基本防御的有效性大幅度下降。此外,在ICMP传输通道,由于ICMP式IP层的组成部分之一,在IP软件中任何端口向ICMP发送一个PING文件,借此用作申请,申请文件传输是否被允许,而ICMP会做出应答,这一命令可检测消息的合法性。所有申请传输的数据基本上传输层都会同意,造成这一情况的原因主要是PING软件编程无法智能识别出恶意信息,一般网络安全防护系统与防火墙会自动默认PING存在,从而忽视其可能带来的安全风险。

4.应用层上的攻击

  • 对于因特网而言,IP地址与域名均是一一对应的,这两者之间的转换工作,被称为域名解析。而DNS就是域名解析的服务器。DNS欺骗指的是攻击方冒充域名服务器的行为,使用DNS欺骗能将错误DNS信息提供给目标主机。所以说,通过DNS欺骗可误导用户进入非法服务器,让用户相信诈骗IP。另外,PTP网络上接口接受到不属于主机的数据,这也是应用层存在的安全问题,一些木马病毒可趁机入侵,造成数据泄露,从而引发网络安全问题。

1.4 TCP三次握手四次断开

  • TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。

  • TCP/IP协议是Internet最基本的协议,其中应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层;传输层的主要协议有UDP、TCP,是使用者使用平台和计算机信息网内部数据结合的通道,可以实现数据传输与数据共享;网络层的主要协议有ICMP、IP、IGMP,主要负责网络中数据包的传送等;而网络访问层,也叫网路接口层或数据链路层,主要协议有ARP、RARP,主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。

1.4.1TCP 三次握手

  • 第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认

  • 第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态

  • 第三次握手:客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手

1.4.2为什么要三次握手

  • 已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接防止服务器端一直等待而浪费资源

1.4.3TCP四次断开

  • 第一次断开:主机1(可以使客户端,也可以是服务器端),设置Sequence Number和Acknowledgment Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了

  • 第二次断开:主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,AcknowledgmentNumber为Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求

  • 第三次断开:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态

  • 第四次断开:主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待主机2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了

  • TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。TCP是全双工模式,这就意味着,当主机1发出FIN报文段时,只是表示主机1已经没有数据要发送了,主机1告诉主机2,它的数据已经全部发送完毕了;但是,这个时候主机1还是可以接受来自主机2的数据;当主机2返回ACK报文段时,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的;当主机2也发送了FIN报文段时,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,我也没有数据要发送了,之后彼此就会愉快的中断这次TCP连接。

1.5 网络抓包tcpdump

  • tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具

  • tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息

1.5.1安装tcpdump

yum install -y tcpdump

1.5.2实用命令实例

默认启动

tcpdump
  • 普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

参数说明:

  • -a 尝试将网络和广播地址转换成名称。
  • -c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
  • -d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
  • -dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
  • -ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
  • -e 在每列倾倒资料上显示连接层级的文件头。
  • -f 用数字显示网际网络地址。
  • -F<表达文件> 指定内含表达方式的文件。
  • -i<网络界面> 使用指定的网络截面送出数据包。
  • -l 使用标准输出列的缓冲区。
  • -n 不把主机的网络地址转换成名字。
  • -N 不列出域名。
  • -O 不将数据包编码最佳化。
  • -p 不让网络界面进入混杂模式。
  • -q 快速输出,仅列出少数的传输协议信息。
  • -r<数据包文件> 从指定的文件读取数据包数据。
  • -s<数据包大小> 设置每个数据包的大小。
  • -S 用绝对而非相对数值列出TCP关联数。
  • -t 在每列倾倒资料上不显示时间戳记。
  • -tt 在每列倾倒资料上显示未经格式化的时间戳记。
  • -T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
  • -v 详细显示指令执行过程。
  • -vv 更详细显示指令执行过程。
  • -x 用十六进制字码列出数据包资料。
  • -w<数据包文件> 把数据包数据写入指定的文件。

1.实例一

  • 监视指定网络接口的数据包
tcpdump -i ens33
  • 如果不指定网卡,默认tcpdump只会监视第一个网络接口

2.实例二

  • 抓取指定数量的包
tcpdump -c 20 -i ens33

3.实例三

  • 抓取指定数量的包,并保存到指定文件
tcpdump -c 20 -i ens33 -w /data/test.log

4.实例四

  • 读取指定文件
tcpdump -r /data/test.log

1.6 网络防火墙概述

1.6.1基本功能

  • 所谓“防火墙”,是一种特殊的访问控制设施,是一道介于内部网络和Internet 之间的安全屏障, 防火墙的基本功能是根据各种网络安全策略的要求对未经授权的访问和数据传递进行筛选和屏蔽, 它保护着内部网络数据的安全。从逻辑上讲防火墙既是一个分析器又是一个限制器, 它要求所有进出内部网络的数据流都必须通过安全策略和安全计划的确认与授权, 并在逻辑上实现内外网络的分离, 从而保证内部网络的安全。防火墙既可以是一组硬件,也可以是一组软件,还可以是软件和硬件的组合。

1.6.2主要作用

  • 防火墙作为内部网与外部网之间的一种访问控制设备, 常常安装在内部网和外部网交界点上。防火墙具有很好的网络安全保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。你可以将防火墙配置成许多不同保护级别。高级别的保护可能会禁止一些服务,如视频流等,但至少这是你自己的保护选择。网络防火墙的主要作用如下:
  1. internet防火墙可以防止Internet上的危险(病毒、资源盗用)传播到网络内部
  2. 能强化安全策略
  3. 能有效记录Internet上的活动
  4. 可限制暴露用户点
  5. 它是安全策略的检查点。

1.6.3分类

1.网络层防火墙

  • 网络层防火墙保护整个网络不受非法入侵,其典型技术是包过滤技术,即检查进入网络的分组, 将不符合预先设定标准的分组丢掉,而让符合标准的分组通过。包过滤技术主要是基于路由的技术,它依据静态的或动态的过滤逻辑, 在对数据包进行转发前根据数据包的目的地址、源地址及端口号来过滤数据包。

2.应用级网关防火墙

  • 应用级网关防火墙控制对应用程序的访问, 即允许访问某些应用程序而阻止访问其他应用程序。采用的方法是在应用层网关上安装代理软件, 每个代理模块分别针对不同的应用。例如, 远程登录代理Telnetproxy负责Telnet 在防火墙上的转发,文件传输代理FTPproxy 等。管理员可以根据需要安装相应的代理,用以控制对应用程序的访问。各个代理模块相互无关,即使某个代理模块的工作发生问题,只需要将它拆卸, 不会影响其他代理模块的正常工作, 从而保证了防火墙的安全性。这种防火墙又叫做代理防火墙, 它由代理服务器和过滤路由器组成, 是目前较流行的一种防火墙。

3.监测型防火墙

  • 监测型防火墙是新一代的产品, 这一技术实际已经超越了最初的防火墙定义。监测型防火墙能够对各层的数据进行主动的、实时的监测, 在对这些数据加以分析的基础上,监测型防火墙能够有效地判断出各层中的非法侵入。同时,这种检测型防火墙产品一般还带有分布式探测器, 这些探测器安置在各种应用服务器和其他网络的节点之中, 不仅能够检测来自网络外部的攻击,同时对来自内部的恶意破坏也有极强的防范作用。

1.7 防火墙四表五链

  • iptables可谓是SA的看家本领,需要着重掌握。随着云计算的发展和普及,很多云厂商都提供类似安全组产品来修改机器防火墙。iptables只是Linux防火墙的管理工具而已。真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。

linux网络管理_第3张图片

1.7.1四表五链概念

1.四表

  • filter表——过滤数据包
  • Nat表——用于网络地址转换(IP、端口)
  • Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
  • Raw表——决定数据包是否被状态跟踪机制处理

2.五链

  • INPUT链——进来的数据包应用此规则链中的策略
  • OUTPUT链——外出的数据包应用此规则链中的策略
  • FORWARD链——转发数据包时应用此规则链中的策略
  • PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
  • POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

1.8 远程管理-SSH

  • 传统的网络服务程序,FTP、POP、telnet 本质上都是不安全的,因为它们在网络上通过明文传送口令和数据,这些数据非常容易被截获。SSH叫做Secure Shell。通过SSH,可以把传输数据进行加密,预防攻击,传输的数据进行了压缩,可以加快传输速度。
  • SSH是芬兰一家公司开发。但是受到版权和加密算法限制,现在很多人都使用OpenSSH。OpenSSH是SSH的替代软件,免费。
  • ssh可以基于密码进行认证,也可以基于密钥去认证用户,基于密钥认证时可以实现免密码登录的效果利用SSH telnet服务实现远程连接
  • SSH :加密传输数据方式(安全性更高,复杂性更高) 经过互联网连接 访问端口:22 默认支持root用户远程连接
  • telnet :明文传输数据方式(安全性更低,复杂性更低) 经过局域网连接 访问端口:23 默认禁止root用户远程连接

1.8.1远程服务连接原理

1.ssh连接示意图

linux网络管理_第4张图片

2.ssh连接流程

  • 客户端:发送建立连接通讯请求
  • 服务端:回复密钥信息确认
  • 客户端:进行密钥信息确认
  • 服务端:将公钥信息进行发送传递
  • 客户端:接收公钥进行保存, 并发送确认信息 (~/.ssh/known_hosts)
  • 服务端: 发送密码验证信息 (加密处理)
  • 服务端:输入密码信息 (加密处理)
  • 数据连接建立完毕
  • 传输数据(加密处理)

1.9 VPN概述

1.9.1简介

  • 虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN可通过服务器、硬件、软件等多种方式实现。例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。
  • 在传统的企业网络配置中,要进行远程访问,传统的方法是租用DDN(数字数据网)专线或帧中继,这样的通讯方案必然导致高昂的网络通讯和维护费用。对于移动用户(移动办公人员)与远端个人用户而言,一般会通过拨号线路(Internet)进入企业的局域网,但这样必然带来安全上的隐患。
  • 让外地员工访问到内网资源,利用VPN的解决方法就是在内网中架设一台VPN服务器。外地员工在当地连上互联网后,通过互联网连接VPN服务器,然后通过VPN服务器进入企业内网。为了保证数据安全,VPN服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上VPN使用的是互联网上的公用链路,因此VPN称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了VPN技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用VPN访问内网资源,这就是VPN在企业中应用得如此广泛的原因。

1.9.2工作原理

  1. 通常情况下,VPN网关采取双网卡结构,外网卡使用公网IP接入Internet。
  2. 网络一(假定为公网internet)的终端A访问网络二(假定为公司内网)的终端B,其发出的访问数据包的目标地址为终端B的内部IP地址。
  3. 网络一的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查,如果目标地址属于网络二的地址,则将该数据包进行封装,封装的方式根据所采用的VPN技术不同而不同,同时VPN网关会构造一个新VPN数据包,并将封装后的原数据包作为VPN数据包的负载,VPN数据包的目标地址为网络二的VPN网关的外部地址。
  4. 网络一的VPN网关将VPN数据包发送到Internet,由于VPN数据包的目标地址是网络二的VPN网关的外部地址,所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。
  5. 网络二的VPN网关对接收到的数据包进行检查,如果发现该数据包是从网络一的VPN网关发出的,即可判定该数据包为VPN数据包,并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离,再将数据包反向处理还原成原始的数据包。
  6. 网络二的VPN网关将还原后的原始数据包发送至目标终端B,由于原始数据包的目标地址是终端B的IP,所以该数据包能够被正确地发送到终端B。在终端B看来,它收到的数据包就和从终端A直接发过来的一样。
  7. 从终端B返回终端A的数据包处理过程和上述过程一样,这样两个网络内的终端就可以相互通讯了。
  • 通过上述说明可以发现,在VPN网关对数据包进行处理时,有两个参数对于VPN通讯十分重要:原始数据包的目标地址(VPN目标地址)和远程VPN网关地址。根据VPN目标地址,VPN网关能够判断对哪些数据包进行VPN处理,对于不需要处理的数据包通常情况下可直接转发到上级路由;远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址,即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的,在进行VPN通讯时,隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。

1.9.3工作过程

  • VPN的基本处理过程如下:
    ①要保护主机发送明文信息到其他VPN设备。
    ②VPN设备根据网络管理员设置的规则,确定是对数据进行加密还是直接传输。
    ③对需要加密的数据,VPN设备将其整个数据包(包括要传输的数据、源IP地址和目的lP地址)进行加密并附上数据签名,加上新的数据报头(包括目的地VPN设备需要的安全信息和一些初始化参数)重新封装。
    ④将封装后的数据包通过隧道在公共网络上传输。
    ⑤数据包到达目的VPN设备后,将其解封,核对数字签名无误后,对数据包解密。

1.9.4分类标准

  • 根据不同的划分标准,VPN可以按几个标准进行分类划分:

1.按VPN的协议分类

  • VPN的隧道协议主要有三种,PPTP、L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议;IPSec是第三层隧道协议。

2.按VPN的应用分类

(1)Access VPN(远程接入VPN):客户端到网关,使用公网作为骨干网在设备之间传输VPN数据流量;
(2)Intranet VPN(内联网VPN):网关到网关,通过公司的网络架构连接来自同公司的资源;
(3)Extranet VPN(外联网VPN):与合作伙伴企业网构成Extranet,将一个公司与另一个公司的资源进行连接。

3.按所用的设备类型进行分类

  • 网络设备提供商针对不同客户的需求,开发出不同的VPN网络设备,主要为交换机、路由器和防火墙:
    (1)路由器式VPN:路由器式VPN部署较容易,只要在路由器上添加VPN服务即可;
    (2)交换机式VPN:主要应用于连接用户较少的VPN网络;

1.9.5按照实现原理划分

(1)重叠VPN:此VPN需要用户自己建立端节点之间的VPN链路,主要包括:GRE、L2TP、IPSec等众多技术。
(2)对等VPN:由网络运营商在主干网上完成VPN通道的建立,主要包括MPLS、VPN技术。

1.9.6实现方式

  • VPN的实现有很多种方法,常用的有以下四种:
    1.VPN服务器:在大型局域网中,可以通过在网络中心搭建VPN服务器的方法实现VPN。
    2.软件VPN:可以通过专用的软件实现VPN。
    3.硬件VPN:可以通过专用的硬件实现VPN。
    4.集成VPN:某些硬件设备,如路由器、防火墙等,都含有VPN功能,但是一般拥有VPN功能的硬件设备通常都比没有这一功能的要贵。

1.9.7优缺点

1.优点

  1. VPN能够让移动员工、远程员工、商务合作伙伴和其他人利用本地可用的高速宽带网连接(如DSL、有线电视或者WiFi网络)连接到企业网络。此外,高速宽带网连接提供一种成本效率高的连接远程办公室的方法。
  2. 设计良好的宽带VPN是模块化的和可升级的。VPN能够让应用者使用一种很容易设置的互联网基础设施,让新的用户迅速和轻松地添加到这个网络。这种能力意味着企业不用增加额外的基础设施就可以提供大量的容量和应用。
  3. VPN能提供高水平的安全,使用高级的加密和身份识别协议保护数据避免受到窥探,阻止数据窃贼和其他非授权用户接触这种数据。
  4. 完全控制,虚拟专用网使用户可以利用ISP的设施和服务,同时又完全掌握着自己网络的控制权。用户只利用ISP提供的网络资源,对于其它的安全设置、网络管理变化可由自己管理。在企业内部也可以自己建立虚拟专用网。

2.缺点

  1. 企业不能直接控制基于互联网的VPN的可靠性和性能。机构必须依靠提供VPN的互联网服务提供商保证服务的运行。这个因素使企业与互联网服务提供商签署一个服务级协议非常重要,要签署一个保证各种性能指标的协议。
  2. 企业创建和部署VPN线路并不容易。这种技术需要高水平地理解网络和安全问题,需要认真的规划和配置。因此,选择互联网服务提供商负责运行VPN的大多数事情是一个好主意。
  3. 不同厂商的VPN产品和解决方案总是不兼容的,因为许多厂商不愿意或者不能遵守VPN技术标准。因此,混合使用不同厂商的产品可能会出现技术问题。另一方面,使用一家供应商的设备可能会提高成本。
  4. 当使用无线设备时,VPN有安全风险。在接入点之间漫游特别容易出问题。当用户在接入点之间漫游的时候,任何使用高级加密技术的解决方案都可能被攻破。

1.9.8常见开源产品

1.PPTP VPN

  • PPTP VPN的最大优点是,不需要在windows客户端单独安装客户端软件,windows默认就支持
  • PPTP VPN拨号连接功能。PPTP VPN属于点对点方式的应用,比较适合远程的企业用户拨号到企业进行办公等的应用,但是很多网络设备不支持PPTP,导致无法访问。典型的Linux平台上的开源软件是pptp。

2.SSL VPN

  • PPTP主要为那些经常外出移动或家庭办公的用户考虑的,而OpenVPN不但可以使用于PPTP的应用场景,还适合针对企业异地两地总分公司之间的VPN不间断按需连接,例如:ERP,OA,及时通讯工具等在总分企业中的应用。但是需要在系统上单独安装客户端软件。典型的Linux平台的开源软件是open。

3.IPSEC VPN

  • IPSEC VPN也适合针对企业异地两地总分公司或多个IDC机房之间的VPN不间断连接,并且在部署使用上更加方便,典型的Linux平台上IPSEC VPN的开源产品是openswan。

1.10 企业级Open搭建及部署

1.10.1安装解压缩工具

yum install -y unzip
yum install -y wget

1.10.2下载资料

https://github.com/Nyr/open-install

1.10.3安装open

  • 配置服务器步骤
  1. 设置服务器IP
  2. 配置网络协议
  3. 配置通讯端口
  4. 配置DNS服务
  5. 配置用户名
unzip open-install-master.zip
cd open-install-master
bash open-install.sh

1.10.4新建用户

cd open-install-master
bash open-install.sh

你可能感兴趣的:(运维,linux,运维,tcp/ip)