图书前言

前言

本书的作者主要是来自清华大学、山东大学和中山大学网络安全方向的教师,在计算机网络安全领域长期承担着教学与科研任务。在多年的教学实践中,我们有一个共识:计算机网络安全是一门实践性强的学科,在明晰网络安全技术原理的同时,通过动手实验加深对网络安全理论与技术的理解、增强实践能力,对于网络安全的教学至关重要。然而,目前适合高校网络安全专业实践教学的教材相对较少。这是因为网络安全实验往往涉及多台机器组成的较为复杂的网络拓扑结构、依赖特定版本的软件以及预设漏洞的软件系统等,任课教师常年维护这样的教学实验平台并不容易。同时,对学生来说,常常为搭建复杂的实验环境投入了大量时间和精力,难以聚焦在网络安全知识点本身的理解和思考上。

于是,本书作者基于各自教学工作的需要,几年前便开始共享课程的内容和某些实验的设计。在此基础上,萌生了编写网络安全实践教材、建设共享实验平台的想法。我们不仅希望共享网络安全教学的内容,还希望通过一个开放的协作式实验平台在高校教师社区中共享所设计的实验。我们也希望通过虚拟化技术为广大师生提供一个在线的虚拟实验环境和相应的算力资源,这将省去学生为搭建实验环境所耗费的资源和精力。在安全企业奇安信集团的支持下,本书和相应的网络安全在线实验平台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章介绍远程接入或异地办公必需的虚拟私有网络(VPN)技术,包括虚拟网卡技术、密码技术和密钥管理、身份认证以及PPTP、L2TP、GRE、IPSec和SSL/TLS VPN等常见协议。

第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月