20252811 2025-2026-2 《网络攻防实践》第五周作业
实验五
一、 实践内容
1.1 配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址,访问主机的某一网络服务,而其他的IP地址无法访问
1.2 动手实践:Snort
使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明。在Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
1.3 分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
二、知识点梳理
2.1 iptables
iptables 是 Linux 上传统、强大且必不可少的防火墙和网络工具。它通过表、链、规则的组合,提供了精细的网络流量控制能力。
表:iptables定义了 iptables 的主要功能类别。最常用的有三个:
- filter 表:默认表,主要用于包过滤,决定是否允许一个包通过。它包含我们最熟悉的
INPUT、OUTPUT、FORWARD链。 - nat表:用于网络地址转换,如修改源/目标IP地址/端口,包括SNAT和DNAT。
- mangle 表:用于修改数据包的元数据(如 TTL字段,或给包打标记)。
链:链是规则的有序列表,存在于表中。数据包到达一个检查点时,会按顺序匹配对应链中的规则。主要内置链有:
- INPUT:处理发往本机的数据包。
- OUTPUT:处理从本机发出的数据包。
- FORWARD:处理经过本机路由转发的数据包(当本机充当路由器时)。
- PREROUTING:数据包进入后,在路由决策之前进行处理。常用于 共享上网。
- POSTROUTING:数据包发出前,在路由决策之后进行处理。常用于端口映射。
规则 规则是用户定义的具体条件和动作。当数据包符合一条规则的条件时,就会执行对应的动作。
动作常见的有:
- ACCEPT:接受数据包,允许其通过。
- DROP:丢弃数据包,不给发送方任何回应。
- REJECT:拒绝数据包,但会向发送方返回一个错误响应(如
connection refused)。 - SNAT:在
nat表中,修改源地址。 - DNAT:在
nat表中,修改目标地址。 - LOG:将匹配的数据包信息记录到系统日志,然后继续匹配下一条规则。
- MASQUERADE:
SNAT的一种特殊形式,常用于动态获取IP的接口,会自动获取出口IP地址。
2.2 IDS/IPS
入侵检测系统(IDS)的核心职能在于监测、分析与告警。它如同部署在关键区域的“监控网络”,通过旁路监听的方式,对网络流量或主机行为进行深度分析,一旦识别出可疑或已知的攻击模式,便立即向安全管理员发出警报。
入侵防御系统(IPS)则更进一步,实现了监测、分析与实时阻断的主动防御闭环。它以串联方式部署在网络流量的关键路径上,作为所有数据包的“必经关卡”。当检测到恶意流量时,IPS能够依据预设规则,在攻击报文到达目标前实施即时拦截——或丢弃恶意数据包,或主动重置恶意连接。
三、实验过程
3.1 防火墙部署
首先打开Seedlab-Ubuntu20.04虚拟机,输入指令
sudo iptables -L
查看防火墙
用winxp测试连通性
然后回到Ubuntu输入
sudo iptables -A INPUT -p icmp -j DROP
实现丢弃icmp数据包
再次查看可发现防火墙被修改
此时winxp虚拟机ping不通,防火墙起作用了
在Ubuntu上启用http服务
输入指令
sudo python3 -m http.server 80
即使用python3内置的网页页面
然后用winxp访问192.168.200.3的80端口
下图为winxp正常访问ubuntu
然后在ubuntu上输入指令
sudo iptables -I INPUT -p tcp --dport 80 -j DROP
将80端口的包全部丢弃
再输入
sudo iptables -I INPUT -p tcp -s 192.168.200.8 --dport 80 -j ACCEPT
仅允许Kali(192.168.200.8)连接80端口
刷新Winxp无法访问
Kali可以正常访问
3.2 动手实践:Snort
将listen.pcap文件下载到/home/diven/Desktop/listen.pcap路径下
输入指令
sudo snort -c /etc/snort/snort.conf -r /home/diven/Desktop/listen.pcap -A fast -l /home/diven/Desktop
运行后桌面会生成两个文件,一个是告警日志,一个是wireshark可以查看的数据包文件
查看文件输入如下指令
sudo chmod +r /home/diven/Desktop/snort.log.1776523906
将用户权限添加到文件中
wireshark /home/diven/Desktop/snort.log.1776523906
使用Wireshark打开
告警文件如下
3.3 分析配置规则
首先分析蜜网网关的防火墙,我使用的是Centos07操作系统,并安装了Hfish蜜罐
通过iptables进行防火墙编辑
输入指令
iptables -L -n -v
查看防火墙的全部配置
防火墙流程:
1. 数据包进入INPUT 链
当外部数据试图进入蜜罐时,系统会读取其目标 IP和端口。运行逻辑是自上而下逐条匹配:如果该数据包的目标端口被明确配置为 ACCEPT,它就会被允许进入;如果没有匹配到任何放行规则,或者不符合特定的诱捕条件,数据包最终会撞上默认策略DROP,被直接丢弃。
2. 出站OUTPUT 链与自定义链
这是蜜网防逃逸的核心。假设攻击者突破了防线并试图从蜜罐向外发起连接,数据包会进入 OUTPUT 链。此时,规则会将数据包引导至特定的围栏链。在这里,防火墙会检查流量的频率或目标地址。如果超出了安全阈值,连接会被立即切断,从而在运行层面阻止了蜜罐成为攻击内网的“跳板”。
3. 日志记录
在整个运行过程中,每当数据包匹配到关键的监控规则,系统就会触发日志记录模块。它会将攻击者的 IP、动作和时间戳打上专属标签写入系统日志。这使得安全人员无需实时监控,就能在事后回溯整个攻击过程。
IDS/IPS分析:
由于IDS/IPS集成在snort中,找到snort.config文件
该文件包含了snort的核心配置以及IDS/IPS规则
通过元宝分析该文件可知:
Snort规则由两部分组成:规则头(Rule Header)和规则选项(Rule Options)。
规则头定义了规则的动作、协议、源地址、源端口、方向、目标地址和目标端口。
规则选项包含在圆括号内,定义了具体的检测条件和规则属性。
规则动作类型
Snort支持多种规则动作,根据部署模式不同可分为:
| 动作类型 | 描述 | IDS模式 | IPS模式 |
|---|---|---|---|
| alert | 生成告警 | ✓ | ✓ |
| log | 记录日志 | ✓ | ✓ |
| pass | 忽略匹配 | ✓ | ✓ |
| drop | 丢弃数据包 | - | ✓ |
| reject | 丢弃并发送RST/ICMP | - | ✓ |
| sdrop | 静默丢弃 | - | ✓ |
IDS 规则:在IDS模式下,Snort主要使用alert、log和pass动作来检测网络威胁。
IPS 规则:在IPS模式下,Snort除使用IDS的所有动作外,还增加了drop、reject和sdrop等阻断动作。
此外,在rules文件夹可以找到snort将攻击类型归类的规则文件,选取DDoS的规则文件,内容如下图所示
这个文件的结构和内容分析:
从内容看,这个文件检测多种DDoS工具:
a. TFN/TFN2K 攻击:
- 特征:ICMP ID 678/456,内容"1234"、"AAAAAAAAAA"
b. Trin00 攻击:
- 端口:31335(UDP), 27665(TCP)
- 特征:内容"PONG"、"l44"、"HELLO"、"betaalmostdone"
c. Shaft 攻击:
- 端口:20432/20433/18753
- 特征:内容"alive tijgu"、"login|3A|"
d. MStream 攻击:
- 端口:6838/10498/12754/15104
- 特征:内容"newserver"、"stream/"、"ping"/"pong"
e. Stacheldraht 攻击:
- 特征:ICMP ID 666/667/668/669,内容"ficken"、"skillz"等德语单词
蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求?
1. 防火墙实现受控的访问与隔离
防火墙在蜜网网关中主要扮演访问控制器和数据流限制器的角色,确保攻击者既能与蜜罐交互,又不能对真实网络造成危害。
-
入站控制
防火墙规则会故意开放蜜罐系统的某些高危端口,吸引攻击者尝试入侵。但所有入站流量必须经过网关的防火墙,确保只流向蜜罐,不泄露到其他网络。
-
出站控制
这是蜜网防火墙的核心控制机制,采用“出站连接限制”策略:
- 数量限制:例如每小时只允许蜜罐发起1–5个对外连接,超出则阻断。这既允许攻击者展示后续攻击步骤,又大幅降低其攻击外部真实系统的能力。
- 内容过滤:阻止已知恶意IP或域名的访问,或拦截含有敏感数据的外传流量。
-
隔离与分段
防火墙将蜜网划分为独立的安全区域,确保蜜罐与真实网络物理或逻辑隔离。即使攻击者完全控制蜜罐,也无法横向移动至生产网络。
2. 入侵检测系统实现深度捕获与分析
蜜网网关通常集成网络入侵检测系统(NIDS) 和主机入侵检测系统(HIDS),用于捕获攻击流量和行为数据,并实时告警。
-
网络层捕获(NIDS)
NIDS(如Suricata、Snort)部署在网关或镜像端口,全面记录所有进出蜜网的原始网络流量(PCAP格式)。这可以用于:
- 分析攻击者的扫描、漏洞利用、C2通信等协议行为。
- 基于特征或异常检测实时告警,如检测到SQL注入、勒索软件签名等。
-
主机层监控(HIDS)
在蜜罐内部署HIDS代理(如Wazuh、OSSEC),捕获:
- 系统调用、文件改动、进程创建、登录日志等。
- 攻击者成功入侵后的操作记录(如提权、驻留、窃取数据)。
3. 协同工作流程示例
假设一个针对SSH暴力破解的蜜网场景:
-
诱捕阶段
防火墙开放蜜罐的22端口(SSH),攻击者开始暴力破解尝试。
→ NIDS检测到高频SSH登录失败,触发告警。
-
入侵阶段
攻击者成功破解密码,登录蜜罐并尝试下载恶意脚本。
→ HIDS检测到异常进程并记录操作命令。
-
控制阶段
攻击者试图从蜜罐向外发起扫描。
→ 防火墙检测到出站连接数超标,立即阻断并记录目标IP。
→ NIDS同时检测到扫描流量,生成告警。
-
数据分析
网关将所有日志汇总,分析攻击者IP、工具、意图及攻击链。
四、遇到的困难以及解决方法
最大的问题就是蜜网honey-pot无法查看防火墙状态,输入指令iptables显示失败
解决方法:升级操作系统
原系统为Centos05,我选择升级为Centos07,安装Hfish蜜罐,并测试外部网络攻击是否能够引发蜜罐管理系统报警
首先下载华为centos07镜像
下载跟随教程完成虚拟机安装,虚拟网卡选择VMnet8即可,IP由DHCP自行分配
链接:CentOS 7超详细安装教程(含镜像)_centos7镜像-CSDN博客
完成操作系统安装后部署Hfish
登陆链接:https://[ip]:4433/web/
账号:admin
密码:HFish2021
进入节点管理界面
点击内置节点,添加蜜罐服务
在云端蜜罐中选择高交互ssh添加
显示不启用的话手动在防火墙中开通TCP/22端口重启服务即可
然后选用Ubuntu作为攻击机对该蜜罐进行ssh连接
ubuntu中输入ssh root@192.168.200.14(Centos07的IP)
密码任意
登录成功,输入任意指令后退出
返回Centos07,查看攻击列表
可以看到登录账号,密码以及攻击执行的指令,环境测试成功
五、实践总结
通过本次实验,我对网络攻防中的防御技术有了更深入的了解和实践。实验重点围绕防火墙策略配置、Snort入侵检测规则解析,以及蜜网网关中防火墙与IDS/IPS的联动部署等核心内容展开。
在动手操作过程中,我逐步掌握了如何通过合理配置防火墙规则来管控网络流量,并学习了如何使用Snort定制检测规则以识别潜在威胁。尤其对蜜网网关的设计有了更具体的认识——它如何将防火墙的访问控制与入侵检测系统的实时监控相结合,在诱捕攻击的同时,实现对网络环境的主动防护。
这次实验让我对“防御是动态、多层次的技术体系”这一观点有了更切实的体会。我不只学习了配置命令和规则语法,更理解了这些技术协同运作的逻辑,以及它们在真实网络安防场景中的角色。这些积累对我后续开展更复杂的攻防实践具有重要意义,也增强了我在实际环境中分析和部署网络防御方案的信心。

浙公网安备 33010602011771号