欢迎各位参加本次工作坊。本课程旨在通过一系列实践练习,带您进入引人入胜的网络安全领域,让您理解并掌握网络安全的关键概念。
您将学到什么在本次工作坊中,我们将通过实践练习探讨网络安全的若干方面。您将从简单的任务开始,熟悉基本的工具和概念,然后逐步进入更复杂的练习,这些练习会带来挑战并提升您的能力。为什么要学网络安全?在我们这个联系日益紧密的世界中,网络安全已成为一项必备能力。网络攻击不断增多,而且越来越复杂,影响着个人、企业乃至政府。对任何从事数字技术工作的人来说,理解如何保护网络和数据都至关重要。练习的组织方式循序渐进:每项练习都配有清晰详细的说明,便于您照着操作。逐步推进:先从基础练习开始熟悉工具,然后再进入更复杂的任务。参考答案与解析:每项练习的结尾都有一个「spoiler」部分,您可以在其中核对结果并理解解法。投入实践我们鼓励您保持好奇,探索每项练习的不同侧面,并非常鼓励在互联网上查阅资料。提出问题,在可能的情况下与身边的人讨论,最重要的是在学习中获得乐趣。网络安全是一个引人入胜且不断演进的领域,这些实践活动旨在让您预先了解职业世界中等待着您的东西。
那么,请准备好您的计算机,敞开思路,让我们一同进入网络安全的世界。祝学习顺利,祝您好运!
目录与快捷入口
1. 使用 nslookup 进行信息侦察
2. 使用 WHOIS 查询信息
3. 使用 netstat 监控连接
4. 使用 Wireshark 分析网络流量
5. 通过防火墙制定一套安全策略
6. 使用自签名 HTTPS 证书保护 Web 服务器
7. 使用 Certbot 和 Let's Encrypt 获取可信的 HTTPS 证书

1. 使用 nslookup 进行信息侦察
目标 :学习使用 nslookup 工具获取 DNS 服务器的信息,以及与域名相关联的 IP 地址。
所需材料:
- 一台可以上网的计算机
步骤:
1. 打开终端/命令提示符:
- 在 Windows 上,打开命令提示符(CMD)。
- 在 macOS 或 Linux 上,打开终端。
2. 使用 nslookup:
- 输入 nslookup 加上一个域名,以获取 DNS 服务器的信息。
3. 分析结果:
- 记下 nslookup 返回的 IP 地址。
- 换几个域名试一试,看看不同的响应结果。
4. 查找邮件服务器(MX):
- 使用 nslookup 查找某个域名的邮件服务器。

命令示例:
- nslookup cyber.gouv.fr 用于获取与该域名关联的 IP 地址。
- nslookup -type=mx cyber.gouv.fr 用于获取该域名的 MX 记录。
2. 使用 WHOIS 查询信息
目标 :学习使用 WHOIS 工具获取域名或 IP 地址的注册信息。
所需材料:
- 一台可以上网的计算机
步骤:
1. 访问一个 WHOIS 服务:
- 使用一个在线服务,例如 whois.domaintools.com。
2. 查询信息:
- 在该 WHOIS 服务的搜索框中输入域名。
- 域名示例:cyber.gouv.fr
3. 分析结果:
- 记下域名所有者的信息、注册与到期日期,以及域名服务器。
4. 查询多个域名:
- 换用不同的域名试一试,比较 WHOIS 提供的信息。
3. 使用 netstat 监控连接
目标:学习使用 netstat 监控网络连接和开放端口。
所需材料:
- 一台可以上网的计算机
步骤:
1. 打开终端/命令提示符:
- 在 Windows 上,打开命令提示符(CMD)。
- 在 macOS 或 Linux 上,打开终端。
2. 使用 netstat:
- 输入 netstat 以显示所有活动的网络连接。
3. 使用附加选项获取详细信息:
- netstat -a 用于显示所有连接和处于监听状态的端口。
- netstat -n 用于以数字形式显示地址和端口号。
- netstat -o(Windows)用于显示与每个连接关联的进程 ID。
4. 分析结果:
- 记录活动连接、本地和远程地址,以及所使用的端口。
- 判断是否存在可疑或未经授权的连接。
命令示例:
- netstat -ano 用于以数字形式显示所有网络连接和端口,并附带关联的进程 ID。
- netstat -anp tcp 用于筛选并仅显示 TCP 连接。
4. 使用 Wireshark 分析网络流量
目标 :学习捕获并分析网络流量,以发现异常或潜在的攻击。
所需材料:
- 一台可以上网的计算机
- Wireshark(免费且开源)
步骤:
1. 安装 Wireshark:从其官网下载并安装 Wireshark。
2. 捕获流量:
- 打开 Wireshark,选择要监控的网络接口。
- 点击「Start」开始捕获流量。
3. 产生流量:
- 打开一个网页浏览器,访问几个网站以产生流量。
4. 分析流量:
- 回到 Wireshark,停止捕获。
- 使用过滤器查找特定的数据包,例如 http 或 dns。
- 查看所捕获数据包的详细内容,以理解网络通信。

分析示例:
- 使用过滤器 http.request,只查看从您的机器发出的 HTTP 请求。
- 找出一个 HTTP 数据包,查看其首部和内容。
5. 通过防火墙制定一套安全策略
目标:配置防火墙以阻止或放行特定连接,并理解防火墙在网络安全中的作用。
所需材料:
- 一台可以上网的计算机
- 一款软件防火墙(例如 Windows Firewall)
步骤:
1. 打开防火墙:在 Windows 上,依次进入「控制面板」>「系统和安全」>「Windows Defender 防火墙」。
2. 创建一条规则:
- 点击「高级设置」,打开防火墙规则管理控制台。
- 创建一条新的入站或出站规则。
3. 配置该规则:
- 选择阻止某个特定应用程序或某个端口(例如用于 HTTP 的 80 端口)。
- 为该规则命名并保存。
测试该规则:
- 尝试通过浏览器访问一个网站,以验证该规则是否生效。
- 调整规则,观察其对网络流量的影响。
规则示例:
阻止 80 端口,然后尝试访问一个 HTTP 网站。您应当会看到访问被拒绝,这说明您的防火墙规则是有效的。
6. 使用自签名 HTTPS 证书保护 Web
目标 :学习生成并安装自签名 HTTPS 证书,以保护局域网上的一个网站。
所需材料:
一台安装在本地计算机或测试服务器上的 Web 服务器(Apache/Nginx)
前提条件:
拥有该 Web 服务器的管理员权限
步骤:
1. 生成自签名证书:
- 使用 OpenSSL 生成一个私钥和一份自签名证书。
命令:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt
- 按照提示填写所要求的信息(域名等)。
2. 配置 Web 服务器(Apache):
- 修改站点的配置文件,使用该自签名证书启用 HTTPS。
Apache 的配置示例(/etc/apache2/sites-available/default-ssl.conf):
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/selfsigned.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
3. 启用站点和 SSL 模块(Apache):
启用 SSL 站点和 SSL 模块:
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2
4. 验证安装结果:
在浏览器中通过 https://<saisir_IP_de_votre_serveur_web> 访问该站点,出现安全警告时,选择继续以接受该自签名证书。
7. 使用 Certbot 和 Let's Encrypt 获取可信的 HTTPS 证书
目标:
- 学习使用 HTTPS 配置一台安全的 Web 服务器,以保护传输中的数据。
- 学习使用 Certbot 从 Let's Encrypt 获取并安装一份有效的 HTTPS 证书。
前提条件:
- 一个指向该服务器的域名
- 服务器上已开放 80(HTTP)和 443(HTTPS)端口
所需材料:
- 一台拥有管理员权限的计算机
- 一台本地 Web 服务器(例如 XAMPP、WAMP,或一台 Apache/Linux 服务器)
- 用于从 Let's Encrypt 获取免费 SSL/TLS 证书的 Certbot
步骤:
1. 安装 Web 服务器:
- 安装一台本地 Web 服务器,例如 LAMP、XAMPP 或 WAMP。
- 在浏览器中访问 http://localhost,确认服务器正常运行。
2. 获取一份 SSL/TLS 证书:
- 从 Certbot 官网下载并安装 Certbot。
- 按照针对您所用 Web 服务器的具体说明操作,获取一份免费的 SSL/TLS 证书。
3. 为 HTTPS 配置 Web 服务器:
- 修改您的 Web 服务器配置,使其使用所获取的 SSL/TLS 证书。
- 重启 Web 服务器以使修改生效。
4. 测试配置:
- 在浏览器中通过 https://<IP_de_votre_serveur_web> 访问该站点
- 确认连接是安全的(浏览器地址栏中应当出现一把锁的图标)。
向您表示祝贺
祝贺您完成了这些 Web 安全加固和网络侦察练习!您现在已经掌握了保护网站和分析网络所必需的实践能力,这为在网络安全领域继续进步打下了坚实的基础。
已覆盖的要点
- 使用简单工具进行网络侦察:您使用了 nslookup、whois、ping、tracert、ipconfig 和 netstat 等基础工具来获取网络和域名的信息。
- 使用自签名证书进行加固:您学会了生成并安装自签名 HTTPS 证书,以保护本地服务器上的通信。
- 使用 Let's Encrypt 和 Certbot:您部署了有效的 SSL/TLS 证书来保护一个可公开访问的网站,同时实现了证书续期的自动化。
后续步骤
这些安全与侦察方面的基础能力,只是您网络安全之旅的开端。接下来的活动将聚焦于更进阶的内容,例如:
- 安全开发:学习把安全实践融入软件开发周期(DevSecOps)。
练习:分析代码以发现并修复漏洞。练习:使用静态和动态分析工具提升应用程序的安全性。 - 练习:分析代码以发现并修复漏洞。
- 练习:使用静态和动态分析工具提升应用程序的安全性。
- 渗透测试与道德黑客:深入学习渗透测试技术,以发现并利用系统中的漏洞。
练习:使用 Nmap 和 Nessus 等工具进行扫描和漏洞分析。练习:在受控环境中执行 SQL injection 和 XSS 类型的攻击。练习:使用 Metasploit 利用漏洞并测试系统的防御能力。 - 练习:使用 Nmap 和 Nessus 等工具进行扫描和漏洞分析。
- 练习:在受控环境中执行 SQL injection 和 XSS 类型的攻击。
- 练习:使用 Metasploit 利用漏洞并测试系统的防御能力。
- 事件检测与响应:培养检测、分析并有效响应安全事件的能力。
练习:配置入侵检测系统(IDS)和告警。练习:分析日志并响应一次模拟事件。练习:制定并实施事件响应预案。 - 练习:配置入侵检测系统(IDS)和告警。
- 练习:分析日志并响应一次模拟事件。
- 练习:制定并实施事件响应预案。
邀请您继续前行
我们鼓励您继续探索和练习这些技能。网络安全是一个不断演进的领域,紧跟新技术和新工具,对于成为一名称职且高效的专业人员至关重要。
请关注后续的课程,我们将更深入地探讨安全开发和道德黑客。随着知识和技能的不断拓展,您将更有能力保护系统和信息,抵御网络空间中日益增长的威胁。
感谢您,祝一切顺利!
感谢您的积极参与和投入。我们期待您在网络安全的道路上取得更大的进步。期待很快在下一次技术与安全的探索中再会!
