20253915 2025-2026-2 《网络攻防实践》实践5报告
1.实践内容
1.1 iptables科普
iptables是Linux操作系统内核自带的防火墙工具,基于包过滤机制,通过定义规则链(INPUT、OUTPUT、FORWARD)来控制数据包的进出,是Linux系统网络安全防护的核心工具之一。它并非独立的防火墙软件,而是内核级的包过滤框架,能够根据数据包的源IP、目标IP、协议类型、端口号等属性,执行允许(ACCEPT)、拒绝(REJECT)、丢弃(DROP)等操作,从而实现访问控制、数据包过滤等安全功能。需要注意的是,iptables默认配置的规则在系统重启后会失效,需通过iptables-persistent工具或iptables-save命令将规则持久化保存,避免配置丢失。
1.2 Snort科普
Snort是一款开源的网络入侵检测系统(NIDS),能够实时监控网络流量、分析数据包,识别已知的网络攻击行为(如端口扫描、恶意代码攻击、DoS攻击等),并生成报警日志,为网络安全分析提供依据。它支持三种工作模式:嗅探模式(仅查看网络流量)、日志模式(记录网络流量)、报警模式(检测到攻击时生成报警),本次实践主要使用报警模式,结合离线pcap文件进行入侵检测。Snort的核心是规则库,通过匹配数据包与规则库中的攻击特征,判断是否存在入侵行为,同时可通过配置文件自定义日志输出格式和存储路径。
1.3 IDS/IPS科普
IDS(入侵检测系统)和IPS(入侵防御系统)是网络安全防护体系的重要组成部分,二者相辅相成。IDS是一种被动式安全工具,主要功能是监视网络流量和系统活动,按照一定的安全策略识别潜在的攻击企图、攻击行为或攻击结果,发现威胁后仅生成报警日志,不主动阻断攻击,需人工或联动其他设备处理,通常采用旁路监听部署,不影响正常网络流量,相当于网络安全的“观察员”。
IPS是在IDS基础上发展而来的主动式安全工具,串联在网络流量路径中,不仅能检测入侵行为,还能在检测到威胁后实时采取措施(如阻断连接、封锁IP),主动阻止攻击扩散,响应时间可达毫秒级,相当于网络安全的“守卫员”。IPS弥补了IDS无法主动防御的不足,也弥补了防火墙无法识别复杂攻击行为的缺陷,与防火墙、IDS协同工作,构建完整的网络安全防护体系。
蜜网网关是一种研究型的高交互诱捕网络体系,核心需求包括数据控制、数据捕获和数据分析,通过整合防火墙、IDS/IPS等技术,实现对攻击行为的捕获、控制和分析,其本质是一个包含一个或多个蜜罐的可控网络,用于收集黑客攻击信息,研究攻击方法和工具。
2.实践过程
2.1 防火墙配置(IP地址仅供参考,以实际为准)
任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
2.1.1 虚拟机IP
本次实验使用以下虚拟机:
| 主机 | IP地址 |
|---|---|
| Kali | 192.168.200.3 |
| Metasploitable_ubuntu | 192.168.200.130 -> 192.168.200.4 |
| WinXPattacker | 192.168.200.102 |
| 蜜网网关 | 192.168.200.8 |
- Kali虚拟机的网络适配器:
![image]()
- Metasploitable_ubuntu虚拟机的网络适配器:
![image]()
- WinXPattacker虚拟机的网络适配器:
![image]()
- 蜜罐网关虚拟机的网络适配器:
![image]()
2.1.2 过滤ICMP数据包,使得主机不接收Ping包
① 在kali中使用命令iptables -L查看当前防火墙配置信息,对iptables的操作都必须有root权限,可以看到没有防火墙措施;

② 在WinXP使用命令ping kali虚拟机192.168.200.3,即ping 192.168.200.3能够正常ping通;

③ 接着在kali中使用命令iptables -A INPUT -p icmp -j DROP添加规则,然后使用 iptables -L查看当前防火墙配置信息,添加成功;
> -A INPUT:将input规则添加到链尾;
> -p icmp:指定icmp协议;
> -j DROP:指定对应数据包进行丢弃。

④ 在WinXP使用命令ping 192.168.200.3,发现ping不通;

⑤ 接着在kali中使用命令iptables -D INPUT -p icmp -j DROP,然后使用 iptables -L看到当前防火墙配置信息被删除;

⑥ 在WinXP再次使用命令ping 192.168.200.3,发现能够ping通了

2.1.3 只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
① 查看Metasploitable_ubuntu靶机的IP地址为:192.168.200.130

② 分别测试在kali上和WinXP上是否可以进行telnet登录,可以看到都能成功访问
- Kali:
telnet 192.168.200.130
![image]()
- WinXP:
telnet 192.168.200.130
![image]()
③ 先在Metasploitable_ubuntu中输入命令sudo -s,进入root 模式,然后使用命令iptables -P INPUT DROP设置不接收任何包的规则以拒绝一切数据流入
![image]()
④ 再次在kali上和WinXP上输入命令telnet 192.168.200.130,发现二者现在都无法进行telnet登录 - Kali:
![image]()
- WinXP:
![image]()
⑤ 在Metasploitable_ubuntu中使用命令iptables -A INPUT -s 192.168.200.3 -j ACCEPT只允许Kali(IP地址:192.168.200.3)访问主机Metasploitable_ubuntu;
![image]()
kali再次输入telnet 192.168.200.130:
此时出现问题,把Metasploitable_ubuntu的网络适配器和kali改到同一个网段,重新获取ip地址 - 更改网络适配器:
![image]()
- 重新获取IP地址:
- 先释放当前 IP
dhclient -r eth0 - 重新向 DHCP 申请 IP
dhclient eth0
![image]()
- 先释放当前 IP
- 测试在kali上是否可以进行telnet登录
- 首先查看Metasploitable_ubuntu的iptables
![image]()
- 测试在kali上是否可以进行telnet登录,IP地址变更为192.168.200.4,可以看到访问成功:
telnet 192.168.200.4
![image]()
- 测试在WinXP上是否可以进行telnet登录,可以看到访问失败:
telnet 192.168.200.4
![image]()
- 首先查看Metasploitable_ubuntu的iptables
- 最后清除之前设置的规则,输入命令如下:
> iptables -F
> iptables -P INPUT ACCEPT

2.2 动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在学习通中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
2.2.1 利用snort工具获取网络日志数据源
- 利用kali中的Snort工具,输入命令
snort -r listen.pcap -c /etc/snort/snort.lua -A alert_fast -l /var/log/snort,从离线的listen.pcap文件读取网络日志数据源,可见,TCP数据包占绝大多数;
> -c:表示选择snort配置文件
> -r:表示从pcap格式的文件中读取数据包
> -A:设置报警输出模式为alert_fast,生成简洁的报警日志
> -l:指定报警日志的输出目录







- 此时snort会在默认目录生成一个日志文件,进入报警日志目录/var/log/snort, 查看日志文件,记录了报警数据10条的入侵检测信息,可以发现本次攻击是使用nmap发起的。
执行snort -A fast -c /etc/snort/snort.lua -R <(echo 'alert tcp any any -> any any (msg:"Nmap Scan Detected"; sid:1000001; rev:1;)') -r /home/kali/listen.pcap -l /var/log/snort- 攻击主机的IP地址:172.31.4.178
- 网络扫描的目标IP地址:172.31.4.188
![image]()
2.3 分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
2.3.1 分析防火墙和IDS/IPS配置规则
具体分析配置规则与启动项文件包括:
> 防火墙(nefilter+IlPTables) : /etc/init.d/rc.firewall
> 入侵检测系统(Snort) :/etc/init.d/hflow_snort 与/etc/snort/snort.conf
> 入侵防御系统: /etc/init./hflow-snort. inline 与/etc/snot._inline/snort_inline.conf
实践过程:
① 查看防火墙的文件:先输入su - 提升至root,再输入 vim /etc/init.d/rc.firewall查看文件;

② 可以看到create_chains创建了黑名单和白名单的规则链,还创建了很多协议数据包的处理规则链;分析可知,防火墙文件rc.firewall中,函数create_chains用于创建链,该函数分别定义了黑名单和白名单,防护名单以及防护日志删除,含义如下:
-N:根据用户指定的名字创建新链
黑名单:阻止某些网络地址和用户进入主机
白名单:用户设置的认为可以添加信任的网络用户以及网络地址
防护名单:不允许被外部访问的蜜罐主机
防护日志删除:一个表,用于记录/删除从围栏反弹的数据包



③ 防火墙文件rc.firewall中还可以看到默认规则、本地规则、管理规则;

④ 防火墙开启后根据先前规则链及定义的规则函数过滤数据包;

输入:q回车退出
2.3.2 分析iptables
输入命令iptables -t filter -L | less查看规则列表,可以看到默认的规则入INPUT、FORWARD、OUTPUT都已经被关闭了。
- INPUT:
![image]()
- FORWARD:
![image]()
- OUTPUT:
![image]()
输入:q回车退出
2.3.3 获取Snort实际执行参数
① 输入命令vim /etc/init.d/snortd打开snort脚本文件

可以看到实际运行时候的参数,
- 默认使用默认目录下的snort规则:
![image]()
- 监听网卡为eth0:
![image]()
- 默认储存路径为/var/log/snort:
![image]()
② 执行命令vim /etc/init.d/hw-snort_inline,打开 snort_inline 的脚本文件获取snort_inline实际执行参数
![image]()
其中,-c 表示读取config文件;-D 表示Daemon模式;-Q 表示使用QUEUE模式;-l 表示输出log文件的目录;-t 表示改变程序执行时所参考的根目录位置)。
![image]()
输入:q回车退出
2.3.4 说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的
① 输入命令* chkconfig --list | grep [服务] 来查看哪些服务是自开启的(0~6分别表示关机、单用户模式、无网络连接的多用户命令行模式、有网络连接的多用户命令行模式、不可用、带图形界面的多用户模式、重新启动)。可以看到 iptables 和 hw-snort_inline 在无网络连接的多用户命令行模式下开始启动,而 snortd 不会自启动;

② 输入命令vim /etc/honeywall.conf打开honeywall配置文件:

找到Snort Rule Update Variables,可以看到其值为no,不自动更新:

输入:q回车退出
③ 输入命令vim /etc/oinkmaster.conf打开该文件,发现了 snort.conf 文件:

可以推断这里使用工具 Oinkmaster 默认跳过 local.rules、deleted.rules 和 snort.conf 的更新,以避免覆盖本地自定义配置:

3.学习中遇到的问题及解决
- 问题1:改变防火墙配置后ping不通
- 问题1解决方案:更改网络适配器使其位于同一个网段内
- 问题2:读取网络日志数据源失败
- 问题2解决方案:注意文件的存储位置
4.实践总结
本次网络攻防实践让我深刻认识到,网络安全防护是一个系统性、协同性的工作,单一的安全工具无法实现全面的防护,需要防火墙、IDS、IPS等工具协同工作,形成“防御-检测-响应-分析”的完整防护体系。同时,网络安全防护既要注重技术配置的准确性,也要注重实操的规范性,任何一个微小的配置错误,都可能导致防护失效,给攻击者可乘之机。通过本次实践,我不仅提升了自身的网络安全实操能力和理论认知,也认识到网络安全的重要性和复杂性。
























浙公网安备 33010602011771号