03-网络安全与服务保障
学习目标
- [ ] 理解哈希(摘要)算法的特性及其在安全中的应用。
- [ ] 掌握ACL的原理与配置,实现基本的访问控制。
- [ ] 理解NAT原理,能配置NAT实现内网访问互联网。
- [ ] 会配置DHCP服务,为终端自动分配IP地址。
- [ ] 能配置SSH实现设备的安全管理。
- [ ] 能综合运用安全与服务技术,完成一个安全的企业网搭建。
网络安全基础概念
安全目标
网络安全的所有技术和措施,最终都围绕“机密性、完整性、可用性”三大核心目标展开。
这三大目标也被称为信息安全的CIA三元组(Confidentiality 机密性、Integrity 完整性、Availability可用性),是安全领域的基石。

☆ 机密性
核心含义:确保信息仅被授权的主体访问,未授权者无法获取信息内容。
简单来说,就是“加密信息,只有钥匙能解开”。
恩尼格玛密码机 二战时期德军使用的“恩尼格玛密码机”就是为了保障军事通信的机密性。德军通过密码机将作战指令加密后发送。 一个在恩尼格玛机制造工厂的波兰人,看到了关于该机器的详细制造流程。波兰科学家在花费了大量的时间后,破解了第一代加密机,并在被灭国前把图纸送给了英国。 盟军花费大量人力物力破解该密码,最终成功解密后掌握了德军的作战计划,成为二战转折点之一。

☆ 完整性
确保信息在传输或存储过程中不被未授权篡改、删除或伪造,保持信息的原始状态。
在收快递和外卖的时候,我们经常会看到包裹上的“防拆封条”,它就是为了保证运输过程中不被篡改的。 日常下载软件时,官网会提供“校验值”,也是为了验证下载的软件是否被篡改(后续哈希用途会详细讲解)。
☆ 可用性
确保授权主体在需要时能够正常访问信息和使用相关服务,避免因故障、攻击等导致服务中断。
比如医院的挂号系统,在就诊高峰时必须保持稳定可用。
可用性最常见的攻击方式,就是DDoS攻击(分布式拒绝服务攻击),攻击者通过控制大量智能设备发送垃圾请求,导致网站陷入瘫痪,数百万用户无法访问,直接破坏服务的可用性,造成巨大的经济损失和社会影响。
密码学基石
哈希(摘要)
哈希技术(Hash)又称“摘要技术”,是密码学中一种核心的单向加密技术。
它能将任意长度的输入数据,通过特定的哈希算法,转化为固定长度的输出值,这个输出值就称为“哈希值”、“摘要”或“数字指纹”。
哈希技术要求满足如下特性:
☆ 单向性
通过哈希算法由原始数据生成哈希值的过程是不可逆的,即无法通过哈希值反推出原始数据。
通俗解释 就像把一张纸烧成灰烬(原始数据→哈希值),这很容易,但把灰烬还原成原来的纸,就很难。
☆ 雪崩效应
原始数据只要有任何微小的变化(哪怕只修改一个字符、一个像素),通过哈希算法生成的哈希值都会发生巨大的改变,就像雪崩一样,一点微小的扰动会引发连锁反应。
☆ 防篡改(数字指纹)
相同的原始数据通过相同的哈希算法,必然生成相同的哈希值;
而不同的原始数据(在安全算法下)几乎不可能生成相同的哈希值(即“抗碰撞性”)。
常见算法
如何设计哈希技术中的算法,是最关键的一个问题。我们举一个例子来体会一下。

《岳阳楼记》是中国文学史上的千古名篇,其中的关键一句话,一直流传至今,熠熠生辉。

想起这句话,就会想到《岳阳楼记》 和范仲淹,而不会想到别的人。这就是摘要的防篡改特性。
第一步:这句话有14个字,如果提炼成8个字,你会提炼成哪8个字,同时不失本意。
先天下忧,后天下乐
第二步:如果继续提炼,只保留4个字,你会提炼成哪4个字,同时不失本意。
A. 天下忧乐
B. 忧乐天下
C. 先忧后乐
总结:这道题没有标准答案,但从问题中,可以体会出摘要算法的重要性。注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
☆ MD5
由美国密码学家罗纳德·李维斯特于1992年设计,输出长度固定为128位(16字节),通常用32位十六进制字符串表示。MD5算法计算速度快,曾被广泛应用。
# MD5 校验
[root@nodename ~]# md5sum [选项]... [文件]...注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
# 举例,在任一目录下,执行命令
[root@master ~]# md5sum *
md5sum: 00-pod: Is a directory
348bd3ce10ec00ecc29d31ec97cd5839 1.txt
864bf4c4232696b440a5bec6c6ce379a 1.yaml
ef841769cb14cab7d7c26f1569bb6281 anaconda-ks.cfg注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
☆ SHA
SHA(Secure Hash Algorithm,安全哈希算法)是美国国家标准与技术研究院(NIST)设计的系列算法,安全性远高于MD5,目前主流的是SHA-1、SHA-2、SHA-3系列。
# SHA256 校验
[root@nodename ~]# sha256sum [选项]... [文件]...注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
# 在任一目录,执行
[root@master ~]# sha256sum *
# 部分效果如下
sha256sum: 00-pod: Is a directory
8f8eea956d0ea50d6442fdab213326f75bb6f584268b0795ad452faa85db5f9d 1.txt
572933281dd62ebc7a3cb39b6a6dbe9888403dc9e0e4d1d45f36f7bfff6a8ef1 1.yaml
340ef2273f16c56fad3339b48a77c081d57b96e4fecc9f2654c572fe09c828d5 anaconda-ks.cfg注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
☆ 商密
商密是指我国的“商用密码”,是指用于商业活动、社会公共服务等领域,保障信息安全的密码技术、产品和服务,与用于国家秘密保护的“国密”(国家秘密密码)共同构成我国密码保障体系。
2004年,我国密码学家王小云院士带领团队破解了当时全球广泛应用的MD5算法。 2005年,王小云院士又攻破美国政府常用的SHA-1算法,震惊国际密码学界。 为摆脱对境外算法的依赖,王小云院士与国内专家联合设计了我国首个自主哈希函数算法标准SM3,成为商密体系的核心算法之一。 除SM3外,商密算法体系还包括 SM1(对称加密算法) SM2(非对称加密算法) SM4(分组加密算法)等, 形成了覆盖哈希、加密、签名等全场景的技术体系,其中SM3的安全性得到国内外专家高度认可。


哈希用途
密码存储
网站或APP在存储用户密码时,不会直接存储明文密码(如“123456”),而是将密码通过哈希算法处理后,存储其哈希值。
有的密文也会使用一些盐值(Salt Value)进行“加盐调料” 一些大型平台通常采用“哈希+盐值”(在密码中加入随机字符串后再哈希)的方式存储密码,即使哈希值被窃取,黑客破解难度也极大。 例如,用户密码“abc123”加“盐值”“x9#kL2”后,变为“abc123x9#kL2”再进行哈希处理,安全性大幅提升。
国内CSDN密码泄漏事件 2011年12月,CSDN的安全系统遭到黑客攻击,600万用户的登录名、密码及邮箱遭到泄露。随后,CSDN密码外泄门持续发酵,天涯、世纪佳缘等网站相继被曝用户数据遭泄密。 天涯网于12月25日发布致歉信,称天涯4000万用户隐私也遭到了黑客泄露。
案例:加盐哈希 vs 纯哈希
我们用相同密码“123456”做两组测试,对比安全性差异:
| 测试组 | 处理方式 | 最终存储的哈希值 | 破解难度 |
|---|---|---|---|
| 组1 | 纯MD5哈希 | e10adc3949ba59abbe56e057f20f883e | 极低,黑客可通过“彩虹表”(预存常见密码哈希值的数据库)1秒内查出明文 |
| 组2 | MD5+随机盐值“y7\*pQ5” | d41d8cd98f00b204e9800998ecf8427e(实际为“123456y7\*pQ5”的MD5值) | 极高,彩虹表失效,需暴力破解盐值+密码组合,成本远超收益 |
该实验清晰说明:纯哈希仅能防“明文直接泄露”,而“哈希+盐值”能从根本上提升密码存储的安全性,这也是当前主流平台的标准做法。
课上作业: 搜索一下相关资料,什么是彩虹表?
文件完整性校验
软件官网、操作系统镜像下载页面,当用户下载文件后,通过本地哈希工具(如Windows的CertUtil命令、第三方工具HashTab)计算下载文件的哈希值,然后与官网提供的哈希值对比。
如果一致,说明文件完整且未被篡改;
如果不一致,则可能是下载过程中出错,或文件被黑客植入病毒、恶意代码。

路由器与路由原理
路由器与路由表
路由器是工作在网络层(第三层)的设备,其核心功能是为数据包选择最佳路径并将其转发到目的地网络。
路由器连接不同的网络,并根据一张“地图”——路由表——来做出转发决策。

路由类型
按照路由器是如何学到这条路由(也就是路由来源),我们可以把路由类型分为直连(Direct)路由和静态(Static)路由。
☆ 直连路由
当路由器接口配置了IP地址并处于UP状态时,该接口所属的网络会自动出现在路由表中。
也就是自动生成了直连路由。
举例如下:
当管理员在路由器的 GigabitEthernet0/0/0 接口上配置了IP地址 192.168.1.1/24并激活该接口后,
路由器会自动学习并生成这条路由
路由表记录
Destination/Mask: 192.168.1.0/24
Protocol: Direct # 路由来源:直连
NextHop: 192.168.1.1 # 下一跳:通常是路由器接口自身地址(表示直接交付)
Interface: GE0/0/0 # 出接口:配置了该IP的接口
意思是
凡是要发送到 192.168.1.0/24这个网段的数据包,直接从我(路由器)的 GigabitEthernet0/0/0 接口发出即可,下一跳就是最终目的地(因为目标设备就在这个直连的网络上)注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
☆ 静态路由
静态路由是由网络管理员手动配置的,可以主动控制流量路径。
适合于那些网络结构简单或设备资源有限,无法运行动态路由协议的场景。
静态路由在实际生产环境中应用非常广泛,但通常不是作为唯一的、主导的路由协议,而是扮演着关键的“配角”和“补充”角色。
大家想想为什么?(因为人工操作往往伴随着误配置、维护成本高等问题)
[实验1] 连接两个办公室
核心技能
路由器接口配置、静态路由配置、路由表查看
学习目标
理解不同网段通信原理,掌握静态路由配置方法
仿真实验步骤
实验目的:掌握路由器接口配置与静态路由编写,理解不同网段通信的“路由转发”核心,学会路由表分析
步骤1:拓扑搭建
2台2911路由器(R1-办公室A、R2-办公室B)、2台2960交换机(SW1-办公室A、SW2-办公室B)、4台PC(办公室A:PC1-192.168.1.2/24、PC2-192.168.1.3/24;办公室B:PC3-192.168.2.2/24、PC4-192.168.2.3/24);


其他的主机类似。
SW1连R1的Fa0/0,SW2连R2的Fa0/0,R1的Fa0/1与R2的Fa0/1用交叉线连接(网段10.0.0.0/24)

步骤2:路由器接口配置
R1配置:1. 全局模式:“enable”→“conf t”;2. 局域网接口:“interface fa0/0”→“ip address 192.168.1.1 255.255.255.0”→“no shutdown”;3. 互联接口:“interface fa0/1”→“ip address 10.0.0.1 255.255.255.0”→“no shutdown”;4. 命名:“hostname R1-办公室A”
步骤3:R2配置
同理,Fa0/0配置192.168.2.1/24,Fa0/1配置10.0.0.2/24,命名“R2-办公室B”;执行“show ip interface brief”确认所有接口状态为up/up
步骤4:静态路由配置
1. R1配置去往办公室B网段的静态路由:“ip route 192.168.2.0 255.255.255.0 10.0.0.2”(目标网段:192.168.2.0/24;下一跳:R2的互联接口IP 10.0.0.2);
2. R2配置去往办公室A网段的静态路由:“ip route 192.168.1.0 255.255.255.0 10.0.0.1”
步骤5:验证与分析
1. 路由表查看:R1执行“show ip route”,可见“192.168.2.0/24 [1/0] via 10.0.0.2”(S类路由,静态路由标识);
2. 连通性测试:PC1 ping PC3(成功);3. 排错:若失败,检查接口状态、静态路由的目标网段与下一跳是否正确
总结
静态路由需手动指定目标网段和下一跳,适用于小型固定网络。
访问控制列表 ACL
在网络通信中,并非所有流量都能自由进出设备或网络,需要一套规则来筛选和控制流量。
访问控制列表(ACL,Access Control List)就是实现这一功能的核心技术,它根据预设规则决定放行或阻断数据包。
核心原理
ACL是路由器、交换机等网络设备上的一组规则集合。这些规则以“条件判断+动作”的形式存在,设备接收数据包后,会按顺序匹配ACL规则。
若匹配成功则执行预设动作(放行permit或阻断deny);
若所有规则都不匹配则执行“隐含拒绝”(默认阻断所有未匹配流量)。

标准 ACL 和扩展 ACL
ACL主要分为标准ACL和扩展ACL两大类,两者的核心区别在于“匹配条件的精细度”,适用于不同场景。
| 对比项 | 标准ACL(Standard ACL) | 扩展ACL(Extended ACL) |
|---|---|---|
| 核心匹配条件 | 仅基于“源IP地址”判断 | 基于“源IP、目的IP、协议类型、源端口、目的端口”等多维度判断 |
| 规则编号范围 | 1-99、1300-1999 | 100-199、2000-2699 |
| 精细度 | 粗粒度,无法区分同一源IP的不同服务流量 | 细粒度,可精准控制特定服务的流量 |
| 适用场景 | 限制特定网段的整体访问 | 精准控制特定服务或交易流量 |
| 简单场景案例 | “禁止研发部192.168.3.0网段所有设备访问外网”——无需区分访问的是网页还是视频,整体限制即可 | “允许市场部192.168.2.0网段访问客户的Web服务器(80端口),但禁止访问该服务器的FTP服务(21端口)”——需精准区分不同服务 |
| 配置原则 | 靠近目的设备配置(避免误阻断其他流量) | 靠近源设备配置(尽早阻断无用流量,节省资源) |
初学者,了解标准的 ACL 即可。
通配掩码
通配掩码(Wildcard Mask)是ACL中用于匹配IP地址段的特殊“掩码”,由0和1组成。
“0”表示“必须精确匹配”;
“1”表示“任意匹配”;
通常与IP地址配合使用(格式:IP地址+通配符掩码)
Wildcard Wildcard 早期就是指扑克牌中的特殊万能牌(也叫百搭牌),由持有者来决定充当任意一张牌使用; 在台湾地区,wildcard 也被翻译成“万用字元”。
通配掩码 vs 子网掩码
子网掩码“1表网络位、0表主机位”。
通配符掩码“0表必须匹配、1表任意匹配”。
简单记为“通配符1变0不变”。
常见规则
☆ 匹配单个IP地址
IP地址 0.0.0.0 # 匹配单个IP需通配符全0
IP地址 255.255.255.255 # 所有位都可任意匹配
192.168.1.10 0.0.0.0 # 表示4个字节的每一位都必须精确匹配。注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
☆ 匹配连续网段
根据网段的主机位数量确定通配符的1的位数。
192.168.1.0 0.0.0.255 # 主机位全1,任意匹配,表示匹配192.168.1.0/24网段
10.0.0.0 0.0.255.255 # 匹配10.0.0.0/16网段注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
☆ 匹配不连续IP地址
利用通配符“1”可任意匹配的特性,匹配特定不连续的IP。
192.168.1.1 0.0.0.254 # 匹配192.168.1.1、192.168.1.3、192.168.1.5等奇数IP注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
☆ 特殊通配符 any
表示匹配所有IP地址
permit ip any any # 表示允许所有IP的所有流量,等价于“0.0.0.0 255.255.255.255”注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。