20242825 2024-2025-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文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
- 分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和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 防火墙配置(具体IP配置参考自己的IP设置)
2.1.1 实验要求
任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问。
2.1.2 实验过程展示
1. 过滤ICMP数据包,使得主机不接收Ping包
开启虚拟机,登录账号密码后,同上次实验一致,使用 ifcongif 命令查询虚拟机相关地址数据。
kali虚拟机:

需要注意的是:seed虚拟机账号密码:seed/dees

所需虚拟机以及配置数据总结为以下表格:具体配置过程详情见实验一
| 虚拟机名称 | IP地址 |
|---|---|
| SeedUbuntu攻击机 (Vmnet8网段) | 192.168.200.5 |
| Kali靶机(Vmnet8网段) | 192.168.200.4 |
使用以下代码在Seed虚拟机上进行iptables工具的安装
sudo apt-get install iptables
发现Seed 虚拟机中是自带 iptables 工具的,无需安装,并且当前已经是最新版本。

使用以下命令打开 iptables ,可以查看到所有已经存在的默认规则
sudo iptables -L

这里需要注意的是,在使用查询命令时必须添加sudo才可行。
完成工具的配置后,先测试 kali(192.168.200.4)与 seed(192.168.200.5)之间的连通性,发现二者是能够互ping的,这样才能进一步进行实验,即过滤ICMP,从而阻止二者互ping。


使用以下命令,使得seed主机过滤掉(不接收)所有的ICMP包,这样就无法建立ping连接,即无法互ping。
iptables -A INPUT -p icmp -j DROP
命令解释:
-A INPUT //添加input规则
-p icmp //指定icmp协议
-j DROP //指定对应数据包进行丢弃
执行完后再次查看规则,会发现发生变化。

这里需要注意的是,一定一定执行命令要加 sudo,否则无法执行!!!
此时用kali再次ping seed ,可见icmp包全部不见,因为已经被过滤掉了,所以无法接受icmp,导致ping失败。

在Kali中打开wireshark可以发现,wireshark发出了很多icmp数据包,但是icmp包均被防火墙拦截,因此无法从kali攻击机发出。

成功后,使用iptables -F 清除所有规则即可。

2. 只允许特定IP地址,访问主机的某一网络服务,而其他的IP地址无法访问
本实验用到Kali、Seed以及WinXPattacker,前面实验已经配置过了,此处不做过多讲解。
此处需要加WinXPattacker虚拟机,登录账号administrator 密码mima1234后,同上次实验一致,使用 ipcongif 命令查询虚拟机相关地址数据。

所需虚拟机以及配置数据总结为以下表格:具体配置过程详情见实验一
| 虚拟机名称 | IP地址 |
|---|---|
| SeedUbuntu攻击机 (Vmnet8网段) | 192.168.200.5 |
| Kali靶机(Vmnet8网段) | 192.168.200.4 |
| WinXPattacker靶机 (Vmnet8网段) | 192.168.200.6 |
首先,为了进行该部分的测试,得需要FTP、Telnet等工具。
seed 虚拟机是否自带,可在终端中执行 sudo apt - get install xinetd telnetd 以及 sudo apt-get install vsftpd 命令进行查看,若提示已是最新版本,则说明自带;若提示安装操作,则说明未自带。
因为seed虚拟机中已经自带,所以这里我们就不用进行安装了。
像kali虚拟机没有自带的话,可以使用以下命令进行FTP和Telnet的安装与端口的打开。
sudo apt-get install xinetd telnetd //安装telnet
sudo apt-get install vsftpd //安装ftp
/etc/init.d/xinetd start //开启Telnet
/etc/init.d/xinetd status
/etc/init.d/vsftpd start //开启FTP
/etc/init.d/vsftpd status

在kali和WinXPattacker上使用ftp进行seed的连接,使用命令如下:
ftp 192.168.200.5
出现问题
这里出现问题发现,二者都链接不上ftp。


查询后发现可能是服务未启动。

使用以下命令进行启动:
sudo service vsftpd star
解决问题
启动后发现均能连接成功:


继续实验
使用以下命令,使得只有kali虚拟机才能进行访问Seed主机,而WinXPattacker则不行。
先使用sudo iptables -P INPUT DROP扔掉所有与INPUT连接中任何规则都不匹配的数据包,然后设置只接受来自IP地址为192.168.200.4(即只允许kali(192.168.200.4)访问主机)的请求。
sudo iptables -P INPUT DROP //拒绝一切数据流入;
sudo iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT
查看结果如下所示:
设置完成后,用kali和winXPattacker访问seed,可见只有kali可以成功访问。

kali可以连接成功:

WinXPattacker不行:

最后输入以下命令恢复之前的状态:
sudo iptables -F
sudo iptables -P INPUT ACCEPT
小知识:断开ftp连接命令
这里需要注意的是:断开ftp连接命令
在kali中直接用快捷键Ctrl + D即可:
在WinXPattacker上使用quit即可:
2.2 动手实践:Snort
2.2.1 实验要求
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
2.2.2 实验过程展示
由于实验三中对于kali已经安装完毕snort以及检测文件listen.cap,所以此处不做过多阐述,详情见实验三。
使用以下命令对于kali进行实验前检测:
ping www.baidu.com //检测虚拟机是否联网
sudo apt-get install snort //检测snort是否已安装

检测完毕后,继续进行实验。
使用以下命令对已有的listen.cap进行检测:
sudo snort -r /etc/snort/listen.pcap -c /etc/snort/snort.lua -A alert_fast -l /var/log/snort
代码解析:
-c 选择snort配置文件
-r 从pcap格式文件中读取数据包
-A 设置输出模式为alert_fast
-l 指定输出目录
因为我这里将检测文件直接放入桌面中,所以路径为 /home/kali/Desktop。

所以更改代码如下所示:
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 实验要求
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
2.3.2 实验过程展示
本实验需要在蜜网网关上进行,首先打开蜜网网关,使用 账号:roo密码:honey 进行登录。

1. 防火墙查看
进行登录后,通过输入以下命令查看防火墙:
su //进入root终端
vim /etc/init.d/rc.firewall


输入i后进入编辑模式即可查看下面的内容
先看到的便是creat_chains()函数,该函数有BlackList、WhiteList和FenceList等三部分内容,其存储源地址和目的地址的黑名单、白名单、防护名单等信息,并定义相关规则。


load_modules():此函数用于加载所需内核模块用于支持防火墙所需的功能。
其可能会加载类似iptable_filter、iptable_nat等模块,这些模块提供了防火墙规则和网络地址转换(NAT)等功能所需的支持。

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



2. iptables规则表查看
快捷键Crtl+Z退出。

查看规则列表。
这里需要注意的是,必须要先使用命令su - 退出root终端后在输入命令,否则会遇到像下图这种命令无效情况。
使用以下命令进行查看:
iptables -t filter -L | less //添加less可以实现分页查看
可以看到规则INPUT、FORWARD、OUTPUT都已经关闭。


3. Snort规则查看
使用以下命令即可查看相关Snort规则(便可得到Snort实际执行参数):
vim /etc/rc.d/init.d/snortd

输入字母 i 进入写入模式后查看:可以看到eth0这一网络接口的配置情况,即虚拟网卡端口eth0的规则


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



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


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


可以看到其默认为不更新

7. 总结
蜜网网关借助防火墙以及入侵检测系统 / 入侵防御系统(IDS/IPS)规则的合理配置,满足了攻击数据捕获与控制的需求。
-
攻击吸引与流量引导:通过防火墙配置的攻击流量准入规则,蜜网网关吸引攻击者的流量进入蜜网。这些流量在进入蜜网的过程中,防火墙会对其进行初步的筛选和控制,确保只有符合条件的流量能够进入。同时,防火墙的访问限制规则保证了蜜网网关自身的安全,为后续的攻击数据捕获提供了稳定的环境。
-
攻击检测与数据捕获:进入蜜网的流量会经过 IDS/IPS 系统。IDS/IPS 依据预先配置的攻击特征检测规则和行为异常检测规则,对流量进行实时监测。一旦检测到攻击行为或异常流量,IDS 会记录相关的攻击数据(如攻击源 IP、攻击时间、攻击类型、攻击数据包内容等),而 IPS 则在记录数据的同时,还会采取相应的防御措施。
-
攻击行为控制与分析:防火墙和 IDS/IPS 协同工作,对攻击行为进行控制。防火墙可以根据 IDS/IPS 的检测结果进一步调整访问控制规则,例如在检测到某个 IP 地址发起恶意攻击后,防火墙可以添加规则阻止该 IP 地址的后续流量进入蜜网。同时,管理员可以对捕获到的攻击数据进行深入分析,了解攻击者的手段、目的和技术水平,从而为改进网络安全策略提供依据。
三. 学习中遇到的问题及解决
在这次实验中,主要问题有以下几点:
-
问题1:FTP服务命令无法使用
-
解决方案:检查发现问题可能是因为服务未启动,通过使用启动命令后解决问题。详情可见2.1.2中第2小节。
-
问题2:Snort无法识别listen.pcap文件
-
解决方案:与之前的实验一样,文件路径错误,将代码中路径更改即可识别成功。详情可见2.2.2。
四.学习感悟、思考等
在本次实验中,实验目标主要是学习并网络攻防技术中的防御技术,例如防火墙配置、Snort规则查看以及蜜网网关的防火墙和IDS/IPS配置规则等三个方面相关知识。
在实验过程中,我了解到相关的防御技术,以及蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的,对网络防御技术的理解进一步加深。
通过这次实验中,我加深了对于网络防御技术的知识学习,进一步巩固了相关知识,为后面开展网络攻防实验打下坚实的基础。
参考资料
https://blog.csdn.net/weixin_55819433/article/details/146334695
https://blog.csdn.net/weixin_55819433/article/details/146058856?spm=1001.2014.3001.5502







浙公网安备 33010602011771号