20252907 2025-2026-2 《网络攻防实践》第五周作业

20252907 2025-2026-2 《网络攻防实践》第五周作业

1.实践内容

1.1 实验的目的与核心知识点梳理

本次实验核心目标是深入理解网络安全防范技术,通过在Linux(iptables)或Windows平台配置防火墙,掌握访问控制与数据包过滤的基本原理及实操方法;同时借助Snort工具开展流量监测与入侵检测,提升对网络攻击的识别与防御能力。

实验核心知识点与能力要求包括:配置防火墙规则,实现ICMP等特定类型数据包的过滤,防范未授权访问及潜在网络攻击;限制特定IP对主机关键网络服务(如FTP、HTTP、SMB)的访问权限,降低服务被恶意利用的风险;熟练运用Snort工具,实现网络流量的实时监测与分析,及时发现并预警网络攻击行为,保障网络环境整体安全。

1.2 实验核心内容与原理

本次实验涉及多种网络安全技术及攻击原理,核心内容如下:

  1. 防火墙技术:核心功能包括访问控制、网络地址转换(NAT)、内容过滤、攻击防范、VPN支持及日志记录与审计。其工作机制可通过伪造ARP请求实现中间人攻击,将目标主机IP与攻击者MAC绑定,拦截、篡改或伪造数据;同时依据规则处理数据包,符合允许规则则放行,符合禁止规则则阻断,无匹配规则则按默认策略处理。防火墙主要分为包过滤防火墙、状态检测防火墙、下一代防火墙三类。
  2. 包过滤技术:属于网络层防火墙技术,通过路由器或防火墙设备对流入流出的IP数据包进行监视和过滤,可实现VPN支持、攻击防范、网络地址转换,能识别并防范IP欺骗、端口扫描等常见网络攻击,还可过滤含特定关键词的网页内容。
  3. 代理技术:一方面可用于拒绝服务攻击,即向目标服务器发送大量伪造SYN请求,耗尽服务器资源,使其无法响应合法请求;另一方面可实现隐私保护、内容过滤、负载均衡、网络加速及访问控制,通过配置规则屏蔽不良网站、广告、恶意软件等,同时记录分析网络流量与用户行为,为网络管理提供依据。
  4. TCP会话劫持攻击:攻击者获取通信双方的会话信息(如序列号),插入通信过程中冒充一方进行数据交互,进而获取敏感信息或执行恶意操作。
  5. Linux开源防火墙iptables:Linux系统内置防火墙工具,可在核层面实现数据包过滤与转发控制,功能强大、规则灵活但配置较复杂,主要包含三类规则表及对应规则链、处理动作,具体如下:
规则表 规则链 处理动作
filter INPUT、OUTPUT、FORWARD 过滤、接受等
nat PREROUTING、POSTROUTING、OUTPUT DNAT、NAT等
mangle 以上五个规则链 特殊目的的头部数据包修改

1.3 实验实践内容

1.3.1 防火墙配置

在Linux系统配置iptables防火墙或Windows系统配置个人防火墙,实现以下功能并完成验证:

  1. ICMP数据包过滤:配置防火墙规则,使主机不响应ping请求(屏蔽ICMP协议数据包);测试方法为从另一台主机执行ping命令,验证目标主机是否成功丢弃ICMP请求。
  2. 基于IP地址的网络访问控制:仅允许特定IP(如局域网内Linux攻击机192.168.200.7)访问主机指定服务(如FTP、HTTP、SMB);禁止其他IP(如seed攻击机192.168.200.4)访问该服务。
1.3.2 Snort入侵检测实践

使用Snort对指定pcap文件(如“解码网络扫描”实验数据包)进行入侵检测分析,记录攻击行为,具体步骤及结果如下:

  1. 实验步骤:在Kali Linux或Windows攻击机上部署Snort,加载规则集(如community-rules或自定义规则);运行Snort对pcap文件进行分析,检查生成的报警日志(如alert.ids),识别攻击类型。
  2. 实验结果:提取Snort日志中的关键告警信息,分析攻击手法(如Nmap扫描、SYN Flood等);结合pcap文件中的流量特征,明确攻击者的行为模式。
1.3.3 蜜网网关的防火墙与IDS/IPS配置分析

分析虚拟攻防环境中蜜网网关的防火墙和入侵检测/防御系统(IDS/IPS)配置,明确其攻击数据捕获与管控的实现方式:

  1. 防火墙配置分析:通过iptables/nftables规则实现流量控制,允许攻击流量进入蜜罐但阻止蜜罐向外发起恶意连接,同时记录可疑IP访问行为用于后续分析;通过流量重定向,将攻击流量引导至日志服务器或沙箱环境。
  2. IDS/IPS配置分析:使用Snort或Suricata实时分析流量,匹配已知攻击特征(如SQL注入、暴力破解);配置IPS自动拦截高风险行为,如阻断扫描IP、关闭异常连接。

2.实践过程

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

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

image-20260330140450915

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

image-20260330140802861

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

image-20260330140955301

切换回seed虚拟机,再次ping kali虚拟机发现已经无法ping通,显然使用icmp协议的ping命令被kali虚拟机中刚刚下发的防火墙规则过滤掉了

image-20260330141051465

切换回kali虚拟机输入命令sudo iptables -D INPUT -p icmp -j DROP将刚才下发的这条规则删除

回到seed虚拟机ping kali虚拟机,能够正常ping通,恢复正常

image-20260330141317956

2.2 防火墙配置特定IP访问

打开Kali虚拟机,输入指令

service apache2 start # 启动Apache2网页服务

image-20260413141248819

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

image-20260413141629355

image-20260413141800328

回到Kali中,输入以下指令

iptables -I INPUT -p tcp --dport 80 -j DROP # 禁止所有IP访问本机80端口(HTTP服务)

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

image-20260413142043850

image-20260413142738189

在Kali中输入以下指令

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

image-20260413142922253

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

image-20260413143020266

2.3 动手实践:Snort

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

snort -c /etc/snort/snort.lua -r /home/kali/Desktop/listen.pcap # 离线分析pcap流量包

image-20260413143309327

可以查看到,显示的数据包基本都是tcp包(99.95%)

image-20260413143341648

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

image-20260413144852929

2.4 分析配置规则

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

vim /etc/init.d/rc.firewall # 编辑防火墙启动脚本

image-20260413145512858

进入后向下滑,找到create_chain,可以查看到黑名单,白名单以及防护名单

image-20260413145751715

再往下滑,找到default_policy,这是防火墙的默认策略

image-20260413145839278

黑名单加载模块,阻断恶意IP的所有通信

image-20260413145933682

白名单加载模块,信任IP的所有通信不受限

image-20260413150025860

在WinXP虚拟机中,打开蜜网网关的图形化界面(http://192.168.200.8/)

账号是roo,密码为第一次实验修改后的

image-20260413151805544

点击Firewall Rules可以查看蜜网网关所使用的防火墙规则

image-20260413151846886

回到HoneyWall,输入指令查看snort的脚本文件

vim /etc/init.d/snortd # 编辑Snort入侵检测系统的启动服务脚本

image-20260413151922019

image-20260413152027618

输入指令查看服务是否开机自动启动

chkconfig --list | grep iptables # 查看防火墙开机自启状态

chkconfig --list | grep snort # 查看入侵检测/防御服务开机自启状态

image-20260413152129732

3.遇到的问题

问题:使用 Snort 检测listen.pcap文件时,无法生成日志文件。

执行命令:snort -c /etc/snort/snort.lua -r /home/kali/Desktop/listen.pcap -l /home/kali/Desktop -A fast

查阅大量相关资料后找到解决方案:

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

img

到这一步理论上就能成功生成日志文件了,但我实际生成的日志文件内容始终为空。查找大量相关内容, 我反复排查尝试后,终于找到解决方案:只需在 snort.lua 配置文件中添加一行enable_builtin_rules = true即可解决。

img

保存后再输入指令就能成功了

4.学习感想和体会

这次实验让我对防火墙、入侵检测等网络安全技术有了更为系统和深入的认识。很多概念此前只是停留在理论层面、听过而已,真正亲手配置、实操验证后,理解才变得更加透彻扎实。
实验过程中也遇到了不少问题,实际操作远比预想中复杂,并没有一开始想象得那么顺利。但好在通过边动手、边查阅资料、边排查修改,一步步解决问题,不仅把知识点真正吃透,也积累了很多实用的排错经验,收获满满。

posted @ 2026-04-13 21:11  起个名字叫土匪  阅读(8)  评论(0)    收藏  举报