简介 在本实验中,你将踏上一段激动人心的旅程,进入使用 Wireshark 进行网络分析的世界。Wireshark 是网络安全领域中一款强大的工具。想象一下,你是一名数字侦探,任务是理解计算机网络上发生的复杂对话。你如何看到表面之下真正发生的事情?这就是 Wireshark 的用武之地。 Wireshark 就像网络流量的显微镜。它允许你实时捕获和检查通过网络传输的数据。这种能力对于排查网络问题、检测异常活动以及理解应用程序之间的通信方式至关重要。 在本实验结束时,你将获得以下实践经验: 安装和设置 Wireshark 捕获网络流量 分析数据包 过滤网络捕获 识别常见协议 让我们一起潜入网络分析的迷人世界吧!
安装 Wireshark 在这一步中,我们将在 Ubuntu 系统上安装 Wireshark。Wireshark 在默认的 Ubuntu 软件仓库中可用,这使得安装过程非常简单。 首先,打开终端。在桌面上找到并打开 Xfce 终端。 注意:免费用户无法连接到互联网,因此 Wireshark 已在实验室环境中预安装。你可以跳到列表中的第 5 项(检查 Wireshark 是否已安装)。升级为专业用户 以练习自行安装 Wireshark。 Pro Users Only 更新软件包列表,以确保我们拥有最新的可用软件信息。运行以下命令: sudo apt update 现在我们的软件包列表已经是最新的了,接下来安装 Wireshark。输入以下命令: sudo apt install wireshark -y 在安装过程中,系统会询问你是否允许非超级用户捕获数据包。使用方向键选择 "Yes" 并按 Enter 键。这将允许你在不需要以 root 权限运行的情况下使用 Wireshark,这样更安全。 安装完成后,通过检查 Wireshark 的版本来验证是否安装成功: wireshark --version 你应该会看到显示 Wireshark 版本号的输出。 为了确保你拥有捕获数据包所需的权限,将你的用户添加到 wireshark 组中: 首先,检查 wireshark 组是否存在: getent group wireshark 如果 wireshark 组不存在,使用以下命令创建该组: sudo groupadd wireshark 默认情况下,Wireshark 以非 root 权限运行,这可能会限制其从某些接口或协议捕获数据包的能力。为了赋予 Wireshark 使用 Dumpcap(一个随 Wireshark 一起安装的工具)所需的权限,请使用以下命令: sudo chgrp wireshark /usr/bin/dumpcap sudo chmod 4755 /usr/bin/dumpcap sudo gpasswd -a $USER wireshark 恭喜!你已经安装了网络分析师工具包中最强大的工具之一。
捕获网络流量 现在我们已经安装了 Wireshark,接下来让我们捕获一些网络流量。这就像设置一张网,捕捉流经我们网络接口的所有数据包。 在终端中输入 wireshark 并按 Enter 键打开 Wireshark。 当 Wireshark 打开时,你会看到一个网络接口列表。寻找标有 "eth0" 或 "eth1" 的接口——这些通常是主要的网络接口。 双击接口以开始捕获数据包。你会看到主窗口中开始出现数据包流。 让我们生成一些流量来捕获。打开一个新的终端窗口并输入以下命令: curl http://example.com 该命令将获取 example.com 的网页,生成一些 HTTP 流量。 捕获几秒钟后,点击 Wireshark 窗口顶部的红色“停止”按钮以停止捕获。 你刚刚捕获了第一批网络流量!捕获中的每一行代表一个数据包——通过网络发送的小数据单元。 要将此捕获保存以供后续分析,请转到 文件 > 保存,并将文件保存为 myfirstcapture.pcapng,保存到你的主目录中(/home/labex)。 捕获网络流量的过程是网络分析的基础。在接下来的步骤中,我们将学习如何理解这些数据。
分析数据包 现在我们已经捕获了一些网络流量,接下来让我们深入数据,看看能学到什么。 在 Wireshark 中打开你保存的捕获文件,方法是转到 文件 > 打开,然后从主目录中选择 myfirstcapture.pcapng。或者,双击文件直接打开。 在顶部窗格中,你会看到所有捕获的数据包列表。每一行代表一个数据包,并包含诸如源 IP 地址、目标 IP 地址、使用的协议以及简要信息字段等内容。 点击一个数据包以选中它。在中间窗格中,你会看到数据包详细信息被分解为不同的协议层。这就像剥洋葱一样——每一层都揭示了数据包的更多信息。 让我们查找 HTTP 流量(网页浏览)。在窗口顶部的过滤器栏中输入 http 并按 Enter 键。这将仅显示 HTTP 数据包。 找到一个在信息字段中包含 "GET" 的数据包。这表示对网页的请求。点击它以查看详细信息。 在数据包详细信息窗格(中间)中,展开 "Hypertext Transfer Protocol" 部分。在这里,你可以看到有关 HTTP 请求的详细信息,包括请求的特定页面。 现在,让我们查找服务器的响应。找到一个在信息字段中包含 "HTTP/1.1 200 OK" 的数据包。这表示来自 Web 服务器的成功响应。 检查此数据包的详细信息。你可能会在 "Line-based text data" 部分看到网页的内容。 这种分析过程对于理解网络行为至关重要。这就像阅读对话日志——你可以看到谁在和谁交谈、他们在说什么以及他们是如何说的。
使用过滤器 Wireshark 的真正强大之处在于它能够快速过滤和分析大量网络数据。在这一步中,我们将学习如何使用过滤器来专注于特定类型的流量。 在 Wireshark 中打开你的捕获文件后,让我们从使用一些简单的显示过滤器开始: 要仅显示 TCP 流量,在过滤器栏中输入 tcp 并按 Enter 键。 要显示与特定 IP 地址相关的流量,输入 ip.addr == 93.184.215.14(这是 example.com 的 IP 地址,但你可以将其替换为你捕获中看到的任何 IP 地址)。 要显示所有 HTTP GET 请求,输入 http.request.method == "GET"。 让我们创建一个更复杂的过滤器。我们将查找所有对 example.com 的 HTTP GET 请求: 在过滤器栏中输入:http.request.method == "GET" && http.host contains "example.com" 此过滤器显示所有对包含 "example.com" 的域名的 GET 请求。 Wireshark 还允许你保存过滤器以供以后使用。让我们保存我们的 HTTP GET 过滤器: 点击过滤器栏旁边的加号("+")。 将过滤器命名为 "HTTP GETs" 并点击保存。 现在你可以通过从保存的过滤器列表中选择它来快速应用此过滤器。 最后,让我们导出一些发现。转到 统计 > HTTP > 请求,然后点击 "另存为" 将 HTTP 请求列表导出到文件。 选择 /home/labex 并将文件保存为 http_requests.txt。 通过这种方式使用过滤器,你可以快速筛选大量网络数据并专注于重要内容。这就像拥有一个超级放大镜,可以立即显示特定类型的网络流量。
总结 在本实验中,你迈出了使用 Wireshark 进入网络分析世界的第一步。你已经学会了如何: 在 Linux 系统上安装和设置 Wireshark 捕获网络流量并保存以供分析 检查数据包以理解网络对话 使用过滤器专注于特定类型的流量 这些技能构成了网络分析的基础,对于任何对网络安全或网络管理感兴趣的人来说都至关重要。随着你继续深入探索,你会发现 Wireshark 是理解网络行为、排查问题甚至检测安全威胁的宝贵工具。继续练习和探索——在网络分析的迷人世界中,总有更多东西值得学习! 要加深你对 Wireshark 和网络分析的理解,请查看 LabEx 上的“Wireshark 快速入门”课程。该课程涵盖高级主题,并包含实践练习,帮助你掌握这一强大工具:https://labex.io/courses/quick-start-with-wireshark。