20252910 2025-2026-2《网络攻防实践》第5次作业

20252910 2025-2026-2《网络攻防实践》第5次作业

1、实验内容

本次实验涵盖防火墙配置、入侵检测与蜜网网关规则分析三大核心内容:

  • 防火墙配置:在 Linux(iptables)或 Windows 个人防火墙上操作,一是过滤 ICMP 数据包,禁止主机接收 Ping 包;二是仅允许特定 IP 访问主机指定网络服务,禁止其他 IP 访问。

  • Snort 实践:在指定攻击机上,使用 Snort 读取给定 pcap 文件进行入侵检测,配置日志输出,获取报警日志并说明检测到的攻击。

  • 规则分析:分析蜜网网关的防火墙及 IDS/IPS 配置规则,说明其如何通过相关技术实现攻击数据捕获与控制。

2、实验过程

2.1 环境准备

虚拟机 信息 核心角色
Kali IP地址:192.168.200.6 Snort检测执行机、靶机、iptables防火墙配置机
SEED Ubuntu IP地址:192.168.200.4 攻击机
WinXPattacker IP地址:192.168.200.5 对比测试攻击机
蜜网网关 - 防火墙与IDS/IPS规则分析对象

所有虚拟机均处于同一 VMnet8 局域网段,实验前已确认各节点间初始网络连通正常,且 SeedUbuntu9、Kali 均已完成 apt 源更新,具备基础工具安装环境。

2.2 iptables 防火墙配置实践

2.2.1 防火墙配置过滤ICMP数据包

打开kali虚拟机,切换到root权限后输入命令iptables -L查看当前的防火墙规则,结果显示当前的规则列表为空

image-20260414103954501

打开seed虚拟机,使用ping命令测试seed与kali(192.168.200.6)的连通性,结果显示可以正常ping通

image-20260414104044346

在kali虚拟机的root权限下输入命令iptables -A INPUT -p icmp -j DROP配置防火墙,过滤icmp包,并通过iptables -L查看规则,结果显示规则配置成功

  • iptablesLinux 防火墙管理工具

  • -A INPUT追加规则INPUT 链(处理进入本机的流量)

  • -p icmp匹配协议为 ICMP(ping 协议使用的就是 ICMP)

  • -j DROP匹配到的流量直接丢弃(无任何响应)

image-20260416153308766

切换回seed虚拟机,再次ping kali虚拟机发现终端无任何 ICMP 响应包返回,持续发送的请求包 100% 丢失,防火墙过滤规则生效。

抓包验证

在 Kali 中打开 Wireshark,对 eth0 网卡进行抓包,可看到 目标主机(192.168.200.6)防火墙拦截了 ICMP 请求,导致源主机(192.168.200.4)seedPing 不通,只有请求没有响应no response found!)。

image-20260416154101621

显然使用icmp协议的ping命令被kali虚拟机中刚刚下发的防火墙规则过滤掉了

规则验证完成后,在 kali中执行以下命令,清空本次添加的自定义规则,恢复防火墙初始状态:

iptables -F

清空所有 iptables 防火墙规则(一键恢复默认放行)

2.2.2 防火墙配置特定ip访问

打开kali虚拟机输入一下命令

service apache2 start

启动Apache2网页服务

image-20260416155047571

在不进行任何设置的情况下,SEED和WinXP都可以访问http://192.168.200.6

image-20260416155245305

回到Kali中,输入以下指令

iptables -I INPUT -p tcp --dport 80 -j DROP

  • iptables:防火墙工具

  • -I INPUT插入一条规则到入站流量链

  • -p tcp:匹配 TCP 协议

  • --dport 80:匹配目标端口 80(HTTP 网页服务)

  • -j DROP:匹配到就直接丢弃

此时发现SEED和WinXP已经无法访问网址了

image-20260416155806121

image-20260416155918747

在Kali中输入以下指令

iptables -I INPUT -p tcp -s 192.168.200.5 --dport 80 -j ACCEPT # 仅允许WinXP虚拟机访问本机80端口

image-20260416160153800

此时发现WinXP虚拟机中可以访问网址了

image-20260416160122834

iptables -F

清空所有 iptables 防火墙规则(一键恢复默认放行)

image-20260416160226498

2.3 Snort 入侵检测实践

打开Kali虚拟机,输入以下指令进行分析

snort -c /etc/snort/snort.lua -r /home/kali/Desktop/listen.pcap

离线分析pcap流量包

image-20260416182943946

命令执行完成后,终端输出流量解码统计信息:本次共分析 135580 个数据包,其中以太网帧 135580 个,IPv4 数据包 135560 个,TCP 数据包 135512 个(占比 99.95%),UDP 数据包 3 个,ARP 数据包 20 个,整体流量以 TCP 协议为主。

image-20260416183021406

生成报警日志

snort -c /etc/snort/snort.lua -r /home/kali/Desktop/listen.pcap -l /home/kali/Desktop -A full

  • snort:启动入侵检测工具
  • -c 配置文件:指定 Snort 配置
  • -r pcap文件:离线分析抓包文件
  • -A full(详细 / 完整)

报警日志查看

image-20260417081520237

打开日志文件,即可查看到检测的详细信息,发现是Nmap发起的端口扫描攻击,并且能够看到攻击机的IP地址为172.31.4.178,靶机的IP地址为172.31.4.188

2.4 蜜网网关防火墙与 IDS/IPS 配置规则分析

打开HoneyWall虚拟机,输入指令查看蜜网网关防火墙的配置规则

执行以下命令,打开蜜网网关的防火墙核心配置文件,查看规则定义逻辑:

vim /etc/init.d/rc.firewall

配置文件中通过多个核心函数定义了防火墙的完整规则体系,核心内容如下:

create_chains() 函数

创建了三大核心规则链,分别是 BlackList(黑名单,禁止特定 IP 通信)、WhiteList(白名单,放行可信 IP 流量)、FenceList(防护名单,限制蜜罐对外访问的高危 IP);同时创建了 tcpHandler、udpHandler、icmpHandler 等协议专属处理链,实现对不同协议流量的精细化管控。

image-20260416234551202

load_modules() 函数

加载 iptable_filter、iptable_nat、ipt_LOG 等内核模块,为防火墙提供包过滤、地址转换、日志记录等核心功能支持。

image-20260416234644616

default_policy() 函数

设置防火墙默认策略,将 FORWARD、INPUT、OUTPUT 三条链的默认策略均设置为 DROP,遵循最小权限原则,仅放行明确配置的流量。

image-20260416234730113

management_policy() 函数

定义蜜网网关的管理口访问规则,仅允许指定管理网段通过 SSH、HTTPS 协议访问网关管理界面,限制非法管理访问,保障网关自身安全。

localhost_policy() 函数

放行本地环回接口 lo 的流量,保障网关本地服务的正常运行。

image-20260416234821327

执行以下命令,查看防火墙生效的规则表,验证默认策略与规则配置:

iptables -t filter -L | less

image-20260416234954842

执行结果显示,INPUT、FORWARD、OUTPUT 链默认策略均为 DROP,仅放行管理网段的 SSH、HTTPS 流量,以及已建立的 TCP 连接回程流量;对蜜罐网段的入站流量进行了详细的日志记录与转发管控,符合蜜网网关的流量控制需求。

2.5 IDS/IPS 配置规则分析

Snort IDS 运行参数分析

执行以下命令,查看 Snort 入侵检测系统的启动脚本,获取实际运行参数:

vim /etc/rc.d/init.d/snortd

image-20260416235158486

脚本中定义了 Snort 的核心启动参数:默认监听 eth0 网卡,加载 /etc/snort/snort.conf 配置文件中的检测规则,以守护进程模式运行,将报警日志输出至指定目录,实现对蜜网流量的实时入侵检测。

Snort_inline IPS 运行参数分析

执行以下命令,查看 Snort_inline 入侵防御系统的启动脚本,分析防御机制:

vim /etc/init.d/hw-snort_inline

image-20260416235302491

脚本中定义了 Snort_inline 的核心启动参数:以 -D 守护进程模式运行,-c 加载配置文件,-Q 开启 QUEUE 模式,与 iptables 联动实现流量的实时拦截。该模式下,Snort_inline 不仅能检测攻击,还能直接丢弃恶意数据包、阻断攻击连接,实现入侵防御功能。

服务自启状态查看

执行以下命令,查看防火墙与 IDS/IPS 服务的开机自启配置:

chkconfig --list | grep iptables

chkconfig --list | grep snort

image-20260416235919522

执行结果显示:iptables 服务与 hw-snort_inline 服务在 2/3/4/5 运行级别均为 on,开机自动启动;snortd 服务默认关闭,按需手动启动。说明蜜网网关默认开启防火墙与入侵防御功能,保障蜜网环境持续防护。

规则更新配置查看

执行以下命令,查看蜜网网关的全局配置文件,确认 Snort 规则更新策略:

image-20260417000045529

配置文件中显示,Snort 检测规则默认关闭自动更新,可手动配置规则更新服务器与更新周期,同时定义了蜜罐网段、管理口白名单、DNS 服务器白名单等核心配置,为防火墙与 IDS/IPS 提供基础配置参数。

3、实验中遇到的问题

  • 在使用 Snort 检测listen.pcap文件时,无法生成日志文件。

一开始我是利用重定向,把检测的信息直接输入到文件中,发现根本不对。和别人做的不一样,后来问了豆包需要改配置文件。

解决办法:

执行命令vim /etc/snort/snort.lua编辑 Snort3 主配置文件,在文件中添加配置项alert_full = {file=true}即可解决问题。

image-20260417081343253

  • honeywall的web的密码忘记了登录不上

解决方法:直接重置 Walleye 网页密码

执行以下命令登录 Walleye 数据库

mysql -u roo -p walleye_users_0_3

执行密码重置 SQL

UPDATE user SET password='honey' WHERE login_name='roo'; FLUSH PRIVILEGES; exit;

最后成功修改密码

4、学习感悟与思考

通过本次实践,我掌握了iptables防火墙配置和Snort入侵检测的基本操作,理解了蜜网网关的核心工作原理。防火墙是网络安全的第一道防线,能有效控制访问权限;Snort作为IDS工具,可及时发现异常攻击行为,两者结合是保障网络安全的重要手段。在实际网络环境中,单一安全工具难以抵御所有攻击,需结合防火墙、IDS/IPS、蜜罐等多种工具,构建多层次安全防护体系。同时,安全配置需贴合实际需求,规则需定期更新,才能有效应对不断变化的网络攻击手段。

posted @ 2026-04-17 08:56  lLct  阅读(16)  评论(0)    收藏  举报