本书基于多所重点高校网络安全的多年教学实践编著而成。针对网络安全实践性强的特点,作者为网络安全重要知识点的教学设计了一系列配套实验,并且都部署在网络安全在线实验平台http://seclab.online上,使用本书的读者可以通过在线的安全实验加深相关知识点的理解,增强动手能力。本书从常用的网络安全分析工具开始,涵盖局域网安全、传输层协议安全、域名系统(DNS)安全、Web系统安全、电子邮件系统安全、防火墙技术、虚拟私有网络()技术、网络入侵检测系统等内容,每部分内容在实验平台上都有相应的实验。使用本书的读者不必费时费力地搭建实验环境,可直接使用在线平台上已部署的实验环境进行操作,将精力聚焦在网络安全相关知识点的学习和思考上,进而加深对网络安全知识和技能的理解,增强网络攻防实战技能。使用本书的教师也可以在实验平台上方便地设计自己的在线实验,并与其他教师共享。本书可作为网络空间安全、信息安全、密码科学与技术、计算机科学与技术、保密管理等相关专业的本科生或研究生教材,也可作为网络与信息安全领域从业人员自学的参考书。
本书为战略性新兴领域“十四五”高等教育教材体系建设团队——新一代信息技术(网络空间安全)建设项目。本书注重网络攻防实战式实操,真正的落地技能。本书旨在为网络安全专业教育提供实战性的实验设计和内容。学生通过练习本书所提供的实验,可以更好地掌握网络安全理论知识,提升对网络安全学科的学习兴趣,提高网络攻防技能;教师基于本书所提供的实验,可以组织开展网络安全实验教学,提高学生的培养质量,也可将本书每章提供的高阶实验作为网络攻防竞赛的基础训练题目。通过本书学习,读者将获得防御网络攻击、加固网络安全的实战技能。收获在实际生活和工作中使用所学来保护个人、组织及单位网络安全的信心和能力。
前言
本书的作者主要是来自清华大学、山东大学和中山大学网络安全方向的教师,在计算机网络安全领域长期承担着教学与科研任务。在多年的教学实践中,我们有一个共识:计算机网络安全是一门实践性强的学科,在明晰网络安全技术原理的同时,通过动手实验加深对网络安全理论与技术的理解、增强实践能力,对于网络安全的教学至关重要。然而,目前适合高校网络安全专业实践教学的教材相对较少。这是因为网络安全实验往往涉及多台机器组成的较为复杂的网络拓扑结构、依赖特定版本的软件以及预设漏洞的软件系统等,任课教师常年维护这样的教学实验平台并不容易。同时,对学生来说,常常为搭建复杂的实验环境投入了大量时间和精力,难以聚焦在网络安全知识点本身的理解和思考上。
于是,本书作者基于各自教学工作的需要,几年前便开始共享课程的内容和某些实验的设计。在此基础上,萌生了编写网络安全实践教材、建设共享实验平台的想法。我们不仅希望共享网络安全教学的内容,还希望通过一个开放的协作式实验平台在高校教师社区中共享所设计的实验。我们也希望通过虚拟化技术为广大师生提供一个在线的虚拟实验环境和相应的算力资源,这将省去学生为搭建实验环境所耗费的资源和精力。在安全企业奇安信集团的支持下,本书和相应的网络安全在线实验平台SecLab(https://seclab.online)把我们的设想变成了现实。
本书的内容是在清华大学、山东大学、中山大学教师多年教学实践的基础上凝练而成的,书中所设计的安全实验均已经部署在SecLab平台上,供广大教师、学生和读者进行实操。本书每章的内容均独立成体系:前半部分主要介绍网络安全知识点及其技术原理,后半部分包含多个完整的实验设计,介绍实验目的、实验内容和关键的实验步骤。每章最后提供了若干思考题及关键参考文献,便于读者对章节内容进一步延伸学习。本书共11章,内容概述如下:
第1章介绍本书的计算机网络基础知识及常用的网络安全分析工具,包括TCP/IP的基本概念、常见网络服务及网络设备的工作原理、tcpdump、Wireshark和 Scapy等分析工具,为后续章节的学习与实践奠定基础。
第2章介绍局域网安全相关的基础协议及其工作原理,同时介绍局域网中常见的攻击手段。内容涵盖以太网工作原理、地址解析协议(ARP)和动态主机配置协议(DHCP)工作机制,以及ARP欺骗、DHCP劫持和拒绝服务等攻击。
第3章介绍传输层协议TCP和UDP的安全问题及常见攻击,包括端口扫描、TCP洪泛攻击(SYN Flood)、TCP序列号预测攻击、UDP反射放大等攻击。
第4章介绍互联网域名系统(DNS)的工作原理、常见攻击手段及防范措施,包括DNS劫持、DNS缓存污染、反射放大等攻击。
第5章介绍Web应用系统安全,包括Web系统的核心协议HTTP,浏览器相关的CSS、JavaScript、插件等技术,Web服务器相关的持续对话、分段传输、缓存、认证等技术,Web系统面临的主要威胁,Web系统中常见的安全防范机制、如浏览器的沙箱、同源策略(SOP)和Cookie等,以及Web系统的常见攻击,如SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等。
第6章介绍传输层安全(TLS)协议及内容分发网络(CDN)的工作原理。TLS协议依赖公钥基础设施实现对数据的加密传输,CDN已被业界广泛采纳,并被视为对抗大规模分布式拒绝服务攻击的防范措施。
第7章探讨电子邮件系统的安全性,包括电子邮件的基本工作原理、邮件发信人身份伪造攻击。在此基础上,介绍了邮件安全当前主流的防范措施,如发信人策略框架(SPF)、基于数字签名的域名密钥识别邮件(DKIM)机制、基于域的消息验证、报告和一致性(DMARC)等。
第8章介绍防火墙技术,包括包过滤防火墙、状态检测防火墙和应用层防火墙等防火墙常见类型、常见的Linux系统内置的防火墙Netfilter的实现机制,以及iptables规则等。读者在本章将会学习如何设计防火墙的访问控制策略。
第9章介绍远程接入或异地办公必需的虚拟私有网络()技术,包括虚拟网卡技术、密码技术和密钥管理、身份认证以及PPTP、L2TP、GRE、IPSec和SSL/TLS 等常见协议。
第10章介绍网络入侵检测系统及常见的网络入侵检测技术。本章结合业界广泛采用的两类开源入侵检测系统(Snort和Zeek),介绍网络入侵检测系统的组成、入侵检测规则设计等关键技术。
第11章介绍本书所使用的网络安全在线实验平台SecLab的功能和使用方法,以及如何在SecLab平台上进行本书所提供实验的实操。SecLab平台除对个人用户提供云端的计算资源外,还对学校以班级为单位的课堂教学提供混合云的部署方式,即学校提供边缘接入服务器,学生实验所需要的计算资源分配到本地。混合云的部署方式可支持大规模、高并发的网络安全实验。
本书凝聚了清华大学、山东大学、中山大学多位教师、学生和奇安信集团开发人员的共同努力。清华大学段海新教授组织协调本书内容的编写工作以及SecLab平台的设计,并编写了第1章和第6章的主要内容。清华大学刘保君老师负责第3、4、10章内容的编写;山东大学郭山清教授负责第2、8、9章内容编写;中山大学金舒原教授负责第5、7章内容的编写;奇安信集团林雪纲博士负责 SecLab 的设计与开发,产品经理谷敏编写了第11章实验平台的介绍。清华大学刘武老师和王浩铭老师在本书的审校和排版工作中付出了大量精力,王浩铭老师还完成了SecLab平台上所有实验的部署和测试工作。
清华大学陈建军副教授和博士生王一航为第6章中的内容分发网络贡献了部分内容并设计了相关实验。清华大学研究生许威为传输层协议安全章节的编写付出了辛勤努力,孙俊哲与陆超逸则协助编写了域名系统安全章节的部分内容,李瑞烜为电子邮件系统安全章节做出了贡献,吴大帅协助编写了网络入侵检测系统章节部分内容。山东大学研究生潘浩和臧传超在局域网安全章节的编写中提供了宝贵的支持,胡成田在防火墙技术章节中做出了贡献,孙景阁和吴虹霖则帮助完成了虚拟专用网络章节的部分内容。中山大学研究生张笑天为本书文字内容整理、实验环境搭建与测试付出了辛苦努力,李维龙参与了Web系统安全章节和网络入侵检测系统章节的编写,王亚博对域名系统安全和电子邮件系统安全等章节的编写也做出了重要贡献。作者对他们付出的辛苦努力表示衷心感谢,没有他们就没有本书的顺利出版。
由于编写时间紧迫,书中难免存在不足之处。我们诚恳地希望各位读者不吝指正,提出宝贵意见,这将有助于我们不断完善和改进本书的内容。希望本书的出版可以为我国计算机网络安全的教育做出贡献。
作者2025年6月
目录
第1章计算机网络基础及常用工具1
1.1计算机网络基本组成和协议1
1.1.1常用网络设备和子网划分2
1.1.2局域网常用的网络服务4
1.1.3上网过程实例: 一次Web访问5
1.2IPv4协议报文格式6
1.3网络流量分析和构造常用工具简介7
1.3.1tcpdump7
1.3.2Wireshark9
1.3.3Scapy11
1.3.4Burp Suite15
1.4网络基础实验16
1.4.1实验1: 使用tcpdump分析ICMP流量17
1.4.2实验2: 使用Wireshark分析访问Web过程19
1.4.3实验3: 使用Scapy构造ICMP Echo Request数据包21
1.4.4实验4: 使用Burp Suite修改HTTP请求25
1.5思考题27
第2章局域网安全28
2.1局域网协议概述28
2.1.1以太网协议28
2.1.2ARP30
2.1.3DHCP32
2.2局域网常见攻击34
2.2.1MAC地址泛洪攻击34
2.2.2ARP攻击36
2.2.3DHCP攻击39
2.3局域网攻击实验41
2.3.1实验1: ARP缓存污染攻击41
2.3.2实验2: ARP中间人攻击44
2.3.3实验3: DHCP拒绝服务攻击46
2.3.4实验4: DHCP假冒攻击49
2.4思考题51
第3章传输层协议常见攻击与防范52
3.1传输层协议简介52
3.1.1TCP简介52
3.1.2UDP简介56
3.1.3协议的端口57
3.2传输层常见攻击的原理与防范措施58
3.2.1端口扫描及资产探查58
3.2.2TCP SYN泛洪攻击61
3.2.3TCP会话的劫持与重置62
3.2.4UDP 反射放大攻击64
3.3传输层安全实验65
3.3.1实验1: 资产探查与端口扫描66
3.3.2实验2: SYN洪泛攻击与防范68
3.3.3实验3: TCP连接重置70
3.3.4实验4: TCP会话劫持72
3.4思考题74
第4章域名系统安全75
4.1域名系统的基本工作原理75
4.1.1互联网域名空间76
4.1.2互联网域名解析过程78
4.1.3域名协议报文79
4.2域名系统的典型攻击及防范措施80
4.2.1DNS劫持攻击81
4.2.2DNS缓存污染攻击82
4.2.3DNS反射放大攻击83
4.2.4DNS重绑定攻击84
4.2.5常见DNS安全防护措施85
4.3域名系统安全实验86
4.3.1实验1: DNS缓存污染攻击实验87
4.3.2实验2: DNS反射放大攻击实验90
4.3.3实验3: DNS重绑定攻击93
4.4思考题97
第5章Web系统安全98
5.1Web系统及HTTP98
5.1.1Web客户端相关技术99
5.1.2Web服务器相关技术101
5.1.3统一资源定位符102
5.1.4HTTP103
5.1.5HTTP的状态管理和Cookie 109
5.1.6访问Web系统的一个例子111
5.2Web系统面临的常见威胁112
5.2.1身份假冒攻击112
5.2.2网络流量监听和中间人攻击113
5.2.3Web客户端和Web服务器端的系统入侵攻击114
5.2.4拒绝服务攻击114
5.3Web系统主要安全机制概要115
5.3.1沙箱116
5.3.2同源策略117
5.3.3浏览器插件的安全规则119
5.3.4HTTP Cookie的安全策略119
5.4Web系统常见攻击原理120
5.4.1SQL注入120
5.4.2跨站脚本130
5.4.3跨站请求伪造135
5.4.4服务器端请求伪造137
5.4.5文件上传漏洞142
5.5Web系统安全实验145
5.5.1实验1: SQL注入攻击146
5.5.2实验2: 跨站脚本攻击151
5.5.3实验3: 服务器端请求伪造攻击155
5.5.4实验4: 文件上传漏洞的利用159
5.6思考题163
第6章传输层安全协议与内容分发网络164
6.1传输层安全协议164
6.1.1传输层安全协议的设计目标164
6.1.2Web公钥证书基础165
6.1.3SSL/TLS发展历程169
6.1.4TLS协议工作原理169
6.2内容分发网络174
6.2.1内容分发网络的基本原理和主要功能174
6.2.2CDN的基本结构175
6.3TLS和CDN实验177
6.3.1实验1: Web服务配置TLS证书实验177
6.3.2实验2: 构建CDN对抗DoS攻击实验180
6.4思考题184
第7章电子邮件系统安全185
7.1电子邮件系统工作原理185
7.1.1电子邮件通信过程185
7.1.2电子邮件基础协议187
7.2电子邮件系统常见攻击及安全扩展协议190
7.2.1电子邮件身份伪造攻击190
7.2.2电子邮件身份验证机制190
7.2.3电子邮件身份验证绕过攻击198
7.3邮件系统安全实验206
7.3.1实验1: 搭建MTA、用命令行及Web两种MUA实现邮件收发207
7.3.2实验2: 邮件系统未配置安全扩展协议下的电子邮件伪造攻击213
7.3.3实验3: 邮件系统有安全扩展协议SPF下的电子邮件伪造攻击 ……215
7.3.4实验4: 实现有签名验证的邮件通信219
7.4思考题223
第8章防火墙技术224
8.1防火墙技术原理224
8.1.1防火墙介绍224
8.1.2包过滤防火墙226
8.1.3状态检测防火墙228
8.1.4应用层防火墙229
8.2Linux内置防火墙介绍230
8.2.1Netfilter介绍230
8.2.2iptables介绍232
8.3防火墙实验236
8.3.1实验1: 实现包过滤防火墙并尝试绕过该防火墙236
8.3.2实验2: 防火墙综合应用实验240
8.4思考题247
第9章虚拟专用网络248
9.1虚拟专用网络的工作原理248
9.1.1虚拟专用网络介绍248
9.1.2虚拟专用网络工作原理介绍248
9.2虚拟专用网络的关键技术和协议249
9.2.1虚拟网卡技术(TUN/TAP)249
9.2.2密码技术与密钥管理250
9.2.3用户和设备身份认证技术251
9.2.4隧道技术251
9.3虚拟专用网络实验255
9.3.1实验1: 使用OpenSSL实现加密通信256
9.3.2实验2: 用虚拟网卡实现数据包收发259
9.3.3实验3: 实现基于SSL/TLS双向认证的加密261
9.4思考题 266
第10章网络入侵检测技术267
10.1网络入侵检测技术的基本原理267
10.1.1入侵检测系统的发展历程267
10.1.2常见的入侵检测技术269
10.1.3网络入侵检测的当前挑战270
10.2典型网络入侵检测系统272
10.2.1Snort系统简介及语法规则272
10.2.2Zeek系统简介及语法规则276
10.2.3典型网络入侵检测系统对比279
10.3入侵检测实验280
10.3.1实验1: 基于Snort的Web SQL注入攻击检测280
10.3.2实验2: 基于Zeek的恶意挖矿通信流量检测286
10.4思考题291
第11章网络安全在线实验平台292
11.1网络安全在线实验平台简介292
11.2教材配套实验的使用方法294
11.2.1个人学习294
11.2.2学校教学294
参考文献297