20252808 2025-2026-2 《网络攻防实践》第五次作业
一. 实验内容
1.1 实验内容概述
本次实验主要包含了以下内容:
防火墙配置(IP地址仅供参考,以实际为准)
任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问。
动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在学习通中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
1.2 实验相关知识概述
网络防御技术
网络防御技术是网络攻防技术中的重要组成部分,旨在保护网络系统、数据和信息的安全,防止未经授权的访问、攻击和破坏。
① 防火墙技术:防火墙是设置在不同网络(如内部网络和外部网络)之间的一道屏障,根据预定的安全策略,对进出网络的信息流进行监测、过滤和控制。它可以阻止外部网络的非法访问和恶意攻击,同时限制内部网络对外部网络的访问,保护内部网络的安全。
② 入侵检测与防御系统(IDS/IPS):入侵检测系统(IDS)通过监测网络中的数据流,分析其中的异常行为和特征,及时发现潜在的入侵行为,并发出警报。入侵防御系统(IPS)则不仅能够检测入侵,还能在检测到入侵行为时自动采取措施,如阻断连接、过滤恶意流量等,以阻止攻击的进一步发展。
③ 蜜罐技术:蜜罐是一种故意设置的诱骗系统,它模拟真实的网络服务和系统漏洞,吸引攻击者前来攻击。通过对蜜罐中攻击行为的监测和分析,安全人员可以了解攻击者的手段和策略,及时发现新型攻击方式,并为网络防御提供参考。
iptables工具
iptables 是 Linux 系统中一个强大且常用的防火墙工具,通常用于配置和管理网络数据包的过滤规则。
基本原理: iptables 主要通过规则来控制网络数据包的流动,这些规则被组织成不同的链(Chain),每个链又包含多个规则。当一个网络数据包进入系统时,iptables 会根据规则链中的规则依次对数据包进行匹配和处理,决定是允许数据包通过、丢弃数据包还是进行其他操作。
常用规则链:
① INPUT 链:处理进入本机的数据包,比如外部用户访问本机的 Web 服务,对应的数据包就会经过这个链。
② OUTPUT 链:处理从本机发出的数据包,例如本机访问外部网站时发出的请求数据包会经过该链。
③ FORWARD 链:处理经过本机但并不进入本机的数据包,在做网络地址转换(NAT)或者路由器功能时会用到这个链。
④ PREROUTING 链:在数据包进行路由选择之前进行处理,常用于 DNAT(目标地址转换)。
⑤ POSTROUTING 链:在数据包进行路由选择之后进行处理,常用于 SNAT(源地址转换)。
二. 实验过程
2.1 防火墙配置过滤ICMP数据包
打开kali虚拟机,切换到root权限后输入命令iptables -L查看当前的防火墙规则,结果显示当前的规则列表为空

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

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

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

最后输入以下命令恢复之前的状态:
sudo iptables -F
sudo iptables -P INPUT ACCEPT

2.2 动手实践:Snort
打开Kali虚拟机,输入以下指令进行分析
sudo snort -r /home/kali/Desktop/listen.pcap -c /etc/snort/snort.lua -A alert_fast -l /var/log/snort


可以看到检测到的数据包信息有UDP、TCP等,其主要是TCP



2.3 分析配置规则
2.3.1 防火墙查看
打开HoneyWall虚拟机,输入指令查看蜜网网关防火墙的配置规则
vim /etc/init.d/rc.firewall # 编辑防火墙启动脚本
进入后向下滑,找到create_chain,可以查看到黑名单,白名单以及防护名单


flush():此函数用于清除并创建防火墙中的链(chains)。通常会清除现有的防火墙链,并创建所需的链,如输入链(INPUT)、输出链(OUTPUT)和转发链(FORWARD)等。
default_policy():此函数用于设置防火墙的默认策略。通常会设置默认策略,如允许输入链(INPUT)和输出链(OUTPUT)的默认行为。
local_host_policy():此函数用于设置蜜网网关自身的策略。其可能包含一些针对本地主机的特定防火墙规则和策略设置,以确保本地主机的安全性。
management_policy():此函数用于设置管理策略,通常是指允许或限制对蜜网网关的管理访问的策略。可能包括允许特定IP地址或网络对蜜网网关进行管理操作(如Web管理界面等),以及限制其他来源的管理访问。



2.3.2 iptables规则表查看
使用以下命令进行查看规则列表:
iptables -t filter -L | less


可以看到规则INPUT、FORWARD、OUTPUT都已经关闭。
2.3.3 Snort规则查看
使用以下命令即可查看相关Snort规则(便可得到Snort实际执行参数):
vim /etc/rc.d/init.d/snortd
输入字母 i 进入写入模式后查看:可以看到eth0这一网络接口的配置情况,即虚拟网卡端口eth0的规则


2.3.4 查看Snort_inline参数
使用以下命令可以看到Snort_inline运行时的一些相关参数,例如路径信息等内容,涉及启动、停止、重启 Snort Inline 等服务。
vim /etc/init.d/hw-snort_inline


2.3.5 查看蜜网网关服务情况
通过以下命令,可以查看网关利用防火墙等技术完成攻击数据捕获等服务情况,例如以下命令查看iptables和snort的情况,下面如果是on,则该服务是开机自动启动的;如果是off,则是需要手动打开的。
chkconfig --list | grep iptables
chkconfig --list | grep snort
输入以下命令可查看防火墙开启状态:
su-
chkconfig --list | grep iptables
chkconfig --list | grep snort


2.3.6 查看更新方式
使用以下命令查看Snort规则更新方式:
vim /etc/honeywall.conf

可以看到其默认为不更新

三. 学习中遇到的问题及解决
在这次实验中,主要问题有以下几点:
问题1:FTP服务命令无法使用
解决方案:检查发现问题可能是因为服务未启动,通过使用启动命令后解决问题。详情可见2.1.2中第2小节。
问题2:Snort无法识别listen.pcap文件
解决方案:与之前的实验一样,文件路径错误,将代码中路径更改即可识别成功。详情可见2.2.2。
四. 学习感悟、思考
在本次实验中,实验目标主要是学习并网络攻防技术中的防御技术,例如防火墙配置、Snort规则查看以及蜜网网关的防火墙和IDS/IPS配置规则等三个方面相关知识。
在实验过程中,我了解到相关的防御技术,以及蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的,对网络防御技术的理解进一步加深。
通过这次实验中,我加深了对于网络防御技术的知识学习,进一步巩固了相关知识,为后面开展网络攻防实验打下坚实的基础。
