第5次作业 实践五 网络安全防范技术

实验五:网络安全防范技术

一、实验目的

  1. 掌握 Linux 平台下 iptables 防火墙的基本配置方法。
  2. 理解 Snort 入侵检测系统的基本使用方法及规则机制。
  3. 学会使用 Snort 对离线 pcap 文件进行入侵检测并分析攻击行为。
  4. 分析蜜网网关中防火墙与 IDS/IPS 的配置规则。
  5. 理解蜜网网关如何利用防火墙和入侵检测技术实现攻击数据捕获与攻击行为控制。

二、实验环境

虚拟机 IP 地址 说明
Kali 192.168.200.6 Linux 攻击机 / Snort 实验机
Metasploitable 192.168.200.5 靶机
Windows XP 192.168.200.7 Windows 攻击机

三、实验内容

  1. 配置 Linux 平台上的 iptables 防火墙,完成如下功能:
    • 过滤 ICMP 数据包,使主机不接收 Ping 包;
    • 只允许特定 IP 地址访问主机某一网络服务,而其他 IP 地址无法访问。
  2. 使用 Snort 对给定的 listen.pcap 文件进行入侵检测,并对检测出的攻击进行说明。
  3. 分析虚拟网络攻防环境中蜜网网关的防火墙和 IDS/IPS 配置规则,说明蜜网网关如何利用防火墙和入侵检测技术完成攻击数据捕获和控制需求。

四、防火墙配置实验

4.1 查看当前 iptables 规则

首先查看系统当前的防火墙规则:

iptables -L

image

该命令用于查看系统中已经生效的 iptables 规则,包括 INPUTOUTPUTFORWARD 三条链的默认策略和具体规则,为后续实验提供基础。


4.2 过滤 ICMP 数据包,使主机不接收 Ping 包

首先确认 Kali 主机的 IP 地址为:

192.168.200.6

image

实验开始前,使用 Windows XP 攻击机对 Kali 主机进行 Ping 测试,发现可以正常 Ping 通,说明当前主机能够接收 ICMP 回显请求。
image

随后在 Kali 主机上配置如下防火墙规则:

iptables -A INPUT -p icmp -j DROP

该规则表示:在 INPUT 链中追加一条规则,凡是进入主机的 ICMP 数据包一律丢弃。
image

配置完成后,再次从 Windows XP 攻击机对 Kali 主机发起 Ping 测试,发现 Kali 主机已经无法响应 Ping,说明规则生效。
image

为了恢复原状态,执行如下命令删除该规则:

iptables -D INPUT -p icmp -j DROP

image

删除规则后,再次测试可发现 Kali 主机恢复对 Ping 请求的响应。
image

分析

该规则通过丢弃进入主机的 ICMP 数据包,实现了禁止主机响应 Ping 请求的目的。
ICMP 协议常用于网络探测和连通性测试,阻止主机响应 Ping 可以在一定程度上降低主机被发现和被探测的概率。

需要说明的是,这条规则丢弃的是所有进入主机的 ICMP 数据包,因此其作用范围不仅限于 Ping 请求。若仅希望禁止响应 Ping,更精确的写法应为仅过滤 echo-request 类型的 ICMP 报文。但本实验以实现“主机不接收 Ping 包”为目标,因此使用上述规则也能够达到实验要求。


4.3 限制特定 IP 访问主机服务

本实验以远程连接服务作为访问对象,测试只有指定 IP 地址可以访问靶机,而其他主机无法访问。

首先确认 Metasploitable 靶机 IP 地址为:

192.168.200.5

image

在 Kali 和 Windows XP 上分别测试远程连接 Metasploitable 主机:

telnet 192.168.200.5

image
image

实验表明,在默认情况下,两台攻击机均可尝试连接靶机。

随后在 Metasploitable 主机上设置默认策略为丢弃所有进入主机的流量:

iptables -P INPUT DROP

该命令的作用是将 INPUT 链默认策略设置为 DROP,即默认拒绝所有进入主机的网络流量。
image

配置后,再次从 Kali 和 Windows XP 发起连接,发现两者均无法连接目标主机。
image
image

接下来添加允许 Kali 主机访问的规则:

iptables -A INPUT -p tcp -s 192.168.200.6 -j ACCEPT

该规则表示:允许源 IP 为 192.168.200.6 的主机发送 TCP 数据包进入当前主机。
image

再次进行测试后发现:

  • Kali 可以成功连接目标主机;
    image
  • Windows XP 仍然无法连接目标主机。
    image

分析

该实验实现了基于源 IP 地址的访问控制。通过先将默认策略设为 DROP,再添加白名单规则,只允许指定 IP 地址访问目标主机,从而实现“仅特定主机可访问”的目标。

需要指出的是,上述规则允许的是 Kali 主机发起的所有 TCP 访问,并未限定具体端口。如果实验要求更加严格,可以进一步限定端口,例如只允许访问 Telnet、HTTP 或 FTP 等特定服务端口。但从实验现象来看,该规则已经实现了“只允许特定 IP 地址访问主机服务”的基本要求。


五、Snort 入侵检测实验

5.1 实验目的

使用 Snort 对给定的离线 pcap 文件 listen.pcap 进行入侵检测,并通过日志分析检测到的攻击行为。

由于实验环境中使用的是 Kali 2025,自带 Snort 3,因此实际使用的配置文件为 snort.lua,命令格式与旧版 Snort 2 的 snort.conf 存在差异。本实验采用 Snort 3 的实际可运行方式完成检测。


5.2 编写本地规则

编辑本地规则文件:

sudo nano /etc/snort/rules/local.rules

在文件中添加如下规则:

alert icmp any any -> any any (msg:"ICMP Ping detected"; sid:1000001;)
alert tcp any any -> any any (msg:"TCP connection detected"; sid:1000002;)
alert udp any any -> any any (msg:"UDP traffic detected"; sid:1000003;)

规则说明

Snort 规则的一般格式为:

动作 协议 源IP 源端口 -> 目标IP 目标端口 (规则选项)

上述三条规则分别用于检测:

  • ICMP 数据包;
  • TCP 数据包;
  • UDP 数据包。

其中:

  • alert 表示命中规则后触发报警;
  • msg 用于指定报警信息;
  • sid 是规则的唯一标识符。

这些规则较为基础,主要用于识别抓包文件中的流量类型,为后续攻击分析提供依据。
image


5.3 运行 Snort 进行离线检测

在 Kali 主机上运行 Snort,对离线抓包文件 listen.pcap 进行分析:

sudo snort -r /home/kali/listen.pcap -c /etc/snort/snort.lua -R /etc/snort/rules/local.rules -A alert_fast -l /var/log/snort

参数说明

  • -r:指定从离线 pcap 文件读取数据,而不是实时监听网卡;
  • -c:指定 Snort 配置文件;
  • -R:指定加载的规则文件;
  • -A alert_fast:指定以快速报警格式输出;
  • -l:指定日志输出目录。
    image

实验中,Snort 成功读取 listen.pcap 并根据自定义规则生成告警日志。


5.4 查看日志文件

分析完成后,进入日志目录并查看日志内容:

cd /var/log/snort
sudo cat alert_fast.txt

image

日志中记录了被规则匹配到的告警信息,包括协议类型、源 IP 地址、目标 IP 地址以及目标端口等。


5.5 攻击分析

通过查看 alert_fast.txt 文件,可以发现日志中出现了大量如下告警信息:

TCP connection detected

并可从日志中提取出如下关键通信信息:

  • 源 IP 地址:172.31.4.178
  • 目标 IP 地址:172.31.4.188
  • 存在多个目标端口访问行为,例如 8009 等端口

从这些特征可以看出,源主机在较短时间内对目标主机多个端口发起了大量 TCP 连接请求,表现出明显的端口扫描特征。

因此可以判断:

本次攻击行为属于基于 TCP 的端口扫描,极有可能是使用 nmap 工具发起的扫描攻击。

从攻击过程的角度分析,这种行为通常属于攻击前期的信息收集阶段,攻击者通过扫描目标系统开放端口和服务,为后续进一步攻击做准备。

需要说明的是,本实验中使用的本地规则主要用于对流量类型进行识别,因此对“nmap 扫描”的判断并非直接来自某条专用规则,而是结合日志中大量 TCP 连接、多个目标端口被探测这一行为特征做出的分析结论。这种分析方法符合入侵检测中“结合日志特征判断攻击性质”的基本思路。


六、蜜网网关规则分析

6.1 实验目的

分析虚拟网络攻防环境中蜜网网关的防火墙和 IDS/IPS 配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成攻击数据捕获和控制需求的。


6.2 查看蜜网网关防火墙规则

进入蜜网网关后,使用 root 权限查看当前防火墙规则:

iptables -L -n -v

该命令用于以数字形式显示当前 iptables 的详细规则、数据包计数和字节计数。
通过分析这些规则,可以了解蜜网网关允许、拒绝和转发哪些流量。
image

此外,为了查看蜜网网关实际加载规则的脚本,还可以查看核心防火墙配置文件:

cat /etc/init.d/rc.firewall

image

该文件通常是蜜网网关启动时自动执行的防火墙脚本,里面定义了蜜网环境所使用的主要 iptables 规则。

分析

蜜网网关的防火墙并不是简单地禁止所有流量,而是承担着“控制攻击行为”的核心职责。其设计思想通常包括:

  1. 允许攻击流量进入蜜罐
    为了诱捕攻击者,蜜网必须允许外部攻击流量到达蜜罐主机,否则将失去观察攻击行为的意义。

  2. 限制蜜罐主动向外发起攻击
    当蜜罐被入侵后,为防止攻击者利用蜜罐继续攻击其他系统,蜜网网关会通过防火墙限制蜜罐对外发起新的连接。

  3. 记录与控制异常流量
    通过对关键流量进行匹配、记录和限制,既保证蜜网能够收集攻击数据,又避免蜜罐成为攻击跳板。

因此,蜜网网关的防火墙规则本质上服务于两大目标:
一是让攻击发生,便于观察;二是限制攻击扩散,保证实验环境安全。


6.3 查看 IDS/IPS 配置与规则

在蜜网网关上查看 Snort 配置文件:

cat /etc/snort/snort.conf

image

由于蜜网环境中通常采用的是 Snort 2,因此配置文件为 snort.conf,而不是 snort.lua

继续查看规则目录:

ls /etc/snort/rules

image

以及查看本地自定义规则文件:

cat /etc/snort/rules/local.rules

image

实验中可以看到,local.rules 文件默认内容较少甚至为空,而规则目录中存在大量系统自带规则文件,例如:

  • web-attacks.rules
  • scan.rules
  • dos.rules
  • exploit.rules
  • 其他针对不同攻击类型的规则文件

分析

这说明蜜网网关中的 Snort 主要依赖系统预置规则库进行入侵检测,而不是完全依赖用户自定义规则。
其中:

  • local.rules 用于用户手动添加自定义规则;
  • 系统自带规则库用于识别常见的扫描、Web 攻击、拒绝服务攻击和漏洞利用行为。

即使在实验过程中未直接查看到具体某条规则的详细匹配逻辑,也可以通过规则文件的分类看出,Snort 已具备对多种典型攻击行为进行检测的能力。


6.4 蜜网网关如何实现攻击数据捕获

蜜网网关通常部署在攻击者与蜜罐系统之间,所有进出蜜罐的网络流量都必须经过该网关。
正因为网关处于这一关键位置,它能够完整观察到攻击者对蜜罐的访问过程。

攻击数据捕获过程可以概括为:

  1. 攻击者向蜜罐主机发起扫描、连接或利用行为;
  2. 所有流量先经过蜜网网关;
  3. 网关上的 IDS(如 Snort)对流量进行规则匹配和分析;
  4. 命中规则的可疑流量被记录到日志中;
  5. 同时,网关还可以借助抓包工具对原始流量进行保存,以便后续分析。

通过这种机制,蜜网网关能够捕获如下信息:

  • 攻击源 IP 地址;
  • 被攻击目标 IP 地址;
  • 协议类型;
  • 目标端口;
  • 攻击行为特征;
  • 攻击发生时间及顺序。

因此,蜜网网关在攻击数据捕获方面的核心优势在于:
它位于所有攻击流量的必经路径上,并结合 IDS 对经过流量进行检测和记录。


6.5 蜜网网关如何实现攻击行为控制

蜜网不仅要“看见”攻击,还要防止被攻陷的蜜罐继续危害外部网络。
这就需要蜜网网关通过防火墙和 IPS 功能对攻击行为进行控制。

其控制方式主要体现在以下几个方面:

  1. 允许外部流量进入蜜罐
    这样才能吸引攻击者并收集攻击数据。

  2. 限制蜜罐对外主动连接
    防止攻击者利用蜜罐向外传播恶意流量、继续扫描其他主机或发起新的攻击。

  3. 对部分危险流量进行阻断或限速
    在不影响蜜网诱捕能力的前提下,避免实验环境对真实网络造成影响。

  4. 通过 IDS/IPS 结合实现检测与响应
    IDS 负责识别可疑行为,IPS 或防火墙规则负责执行控制策略,从而实现既可观测又可防护的目的。

简而言之,蜜网网关采用的是一种“允许攻击进入,限制攻击扩散”的策略。
这种策略既满足了安全研究中对真实攻击数据的采集需求,又保证了整个实验环境不会因为蜜罐被攻陷而失控。


七、实验总结

本实验围绕防火墙配置、Snort 入侵检测以及蜜网网关规则分析三个部分展开,完成了从基础安全控制到攻击检测再到蜜网机制分析的全过程。

在防火墙配置部分,通过 iptables 实现了:

  • 过滤 ICMP 数据包,使主机不接收 Ping;
  • 通过白名单方式限制特定主机访问目标服务。

在 Snort 实验部分,通过自定义规则对离线 listen.pcap 文件进行了分析,成功识别出大量 TCP 连接行为,并结合源 IP、目标 IP 和端口信息判断出该流量具有典型的端口扫描特征,推测攻击工具为 nmap

在蜜网网关分析部分,通过查看防火墙规则、核心脚本和 Snort 配置,明确了蜜网网关的工作机制:
一方面利用防火墙对流量进行控制,允许攻击流量进入但限制蜜罐对外扩散;另一方面利用 IDS/IPS 对流量进行检测与记录,从而实现攻击数据的捕获与控制。

综上所述,蜜网网关通过结合防火墙与入侵检测技术,实现了以下目标:

  • 防火墙负责流量控制;
  • IDS/IPS 负责攻击检测与记录;
  • 网关负责在保证安全的前提下完整捕获攻击行为。

这说明在网络攻防实验环境中,合理配置防火墙与 IDS/IPS,不仅能够提高系统安全性,还能为后续攻击分析和安全研究提供有价值的实验数据。


八、实验结论

通过本次实验可以得出以下结论:

  1. iptables 可以有效实现主机级网络访问控制,包括屏蔽 Ping 和限制特定主机访问服务;
  2. Snort 可以通过规则匹配机制对离线流量进行入侵检测,并通过日志反映攻击行为特征;
  3. 端口扫描行为通常表现为短时间内对多个端口发起大量连接请求,可结合日志特征进行分析判断;
  4. 蜜网网关通过“允许攻击进入、限制攻击扩散”的策略,结合防火墙与 IDS/IPS 技术,实现了对攻击行为的监控、记录与控制;
  5. 防火墙和入侵检测系统在网络安全防护与安全研究中具有重要作用,两者结合能够显著提高对攻击行为的可见性和可控性。

九、学习上遇到的困难及解决

在本次实验过程中,我主要遇到了以下几个方面的困难:

1. 对 iptables 规则理解不够准确

在防火墙实验中,虽然能够按照要求添加和删除规则,但一开始对规则的匹配范围理解不够准确。例如,iptables -A INPUT -p icmp -j DROP 实际上是丢弃所有进入主机的 ICMP 数据包,而不仅仅是禁止主机响应 Ping 请求。
同样,在“只允许特定 IP 访问主机服务”的实验中,最初添加的规则只限定了源 IP 和协议类型,没有进一步限定端口,因此实际上允许的是该主机对所有 TCP 服务的访问,而不仅是某一个特定服务。通过后续分析,我进一步理解了防火墙规则中协议、源地址、目标端口等条件的重要性,也认识到规则描述必须与实际配置严格对应。

2. 对 Linux 权限和远程登录方式不够熟悉

在实验操作中,多次遇到权限问题。例如在 Metasploitable 靶机上执行 iptables 命令时,由于当前用户不是 root,导致命令无法执行;而在蜜网网关环境中,已经是 root 用户时又误用了 sudo
此外,在使用 telnet 远程连接靶机时,还遇到了终端显示异常、退格字符显示混乱等问题,刚开始不清楚这是 Telnet 协议本身较老、终端兼容性较差所造成的。这说明自己对 Linux 用户权限机制和不同远程登录工具的特点理解还不够深入。

3. Snort 版本差异带来的配置困难

本次实验中最明显的困难之一,是 Snort 版本差异导致的配置问题。教程中的命令和配置方式主要基于旧版 Snort 2,而我实际实验环境中的 Kali 2025 自带的是 Snort 3,两者在配置文件和命令格式上差别较大。
例如,教程中使用的是 snort.conf-A console 等写法,而在 Snort 3 中需要使用 snort.lua,并采用 -A alert_fast 等格式。这导致我在实验初期多次遇到命令参数不兼容的问题。

4. 对 Snort 规则与配置文件关系理解不够清晰

在 Snort 实验中,我一开始尝试直接修改 snort.lua 来加载本地规则,但由于对 Lua 配置结构不熟悉,导致配置文件语法错误,Snort 无法正常启动。
后续通过不断排查,才逐渐理解到:在 Snort 3 中,可以直接通过命令行参数 -R 加载规则文件,而不一定需要手动修改主配置文件。
这一过程说明我对“配置文件负责总体设置、规则文件负责具体匹配条件”这一层次关系理解不够清晰,也暴露出自己在面对新版本工具时,缺乏快速适应配置方式变化的能力。

致谢

在本次实验过程中,我完成了基于 iptables 的防火墙规则配置、Snort 离线入侵检测实验,以及蜜网网关防火墙与 IDS/IPS 配置分析。实验过程中,我对 Linux 权限机制、Snort 版本差异、规则配置方法以及蜜网网关工作机制有了更深入的理解。感谢王老师在实验内容设计和方法指导上的帮助,使我能够围绕“攻击数据捕获”和“攻击行为控制”两个核心目标开展实验;同时也感谢学习通相关技术文档与官方资料提供的参考,使我能够在实验中逐步理解 iptables 规则机制、Snort 规则语法及告警日志分析方法。最后也感谢我的舍友,在我遇到问题时不嫌麻烦地帮我解决问题。通过本次实验,我不仅掌握了基本的安全工具使用方法,也进一步认识到:网络安全实验不仅要求能够完成操作,更要求能够理解规则含义、分析攻击特征,并用严谨的方式总结实验结论。


参考资料

[1] Snort 3 官方文档. https://docs.snort.org/

[2] iptables(8) Linux Manual Page. https://www.man7.org/linux/man-pages/man8/iptables.8.html

[3] Netfilter 官方文档. https://netfilter.org/documentation/

[4] Cisco Snort 3 Configuration Guide. https://www.cisco.com/c/zh_cn/td/docs/security/secure-firewall/management-center/snort/740/snort3-configuration-guide-v74.pdf

[5] iptables 项目介绍. https://www.iptables.org/about-website.html

posted @ 2026-04-13 22:16  dky王铖浩  阅读(10)  评论(0)    收藏  举报