1. 实验内容
一、防火墙配置
任务要求:配置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配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
2. 实验过程
2.1 防火墙配置
实验用到的两台虚拟机的IP地址如下:
虚拟机名称 | IP地址 |
---|---|
KALI | 172.20.10.4 |
SEED Ubuntu | 172.20.10.5 |
MetaSploitable | 172.20.10.3 |
1、过滤ICMP数据包,使得主机不接收Ping包
通过iptables -L
查看SEED虚拟机的规则,可以观察到,SEED虚拟机中未添加任何规则
此时,用KALI可以ping通SEED虚拟机
通过下面的命令向SEED中添加规则,使得SEED不接受icmp数据包
iptables -A INPUT -p icmp -j DROP
# -A表示追加一条规则,INPUT表示数据包入口,-p表示用来匹配协议,-j表示指定如何处理,DROP表示将数据包直接丢弃,不予以回应
添加规则后通过iptables -L
查看SEED虚拟机的规则,可以观察到,此时已经添加了丢弃ICMP包的规则
再用KALI ping SEED,可以看到,此时已经无法ping通,所有的数据包都loss,因为SEED将icmp包直接丢弃了。
通过命令iptables -F
删除自定义规则
再用KALI ping SEED虚拟机,则成功ping通
2、只允许特定IP地址,访问主机的某一网络服务,而其他的IP地址无法访问
使用KALI通过命令ftp 172.20.10.3
可以远程访问META的ftp服务
使用SEED通过命令ftp 172.20.10.3
可以远程访问META的ftp服务
在META上通过下面的命令使得只有SEED可以远程访问META的ftp服务
sudo iptables -P INPUT DROP
# 拒绝一切的数据包流入
sudo iptables -A INPUT -p tcp -s 172.20.10.5 -j ACCEPT
# 开启172.20.10.5对本机的ftp服务
再通过sudo iptables -L
可以查看到已经添加的规则
此时在KALI上进行对META的ftp服务远程访问,可以看到没有反应,因为请求被直接丢弃了
再通过SEED来连接,可以看到还是可以连上
2.2 动手实践:Snort
通过下面的命令对listen.pcap
文件进行入侵检测,这里制定输出日志路径为/etc/snort/log
snort -c /etc/snort/snort.lua -r /etc/snort/listen.pcap -l /etc/snort/log -A alert_full
# -l表示输出日志的文件路径
可以看到此时log目录下生成的报警日志
从文件中可以看到这是使用nmap进行的扫描,同时文件中还包含了进行了端口扫描,攻击机和靶机地址等信息
观察输出的统计信息可以看到99%的协议都是TCP,只有少量UDP和ARP协议
2.3 分析配置规则
通过下面的命令来查看蜜网网关的防火墙配置规则
vim /etc/init.d/rc.firewall
能够查看到创建黑名单、白名单的条件
这里是一些处理规则
这里是黑名单中的内容会被DROP
这里是白名单中的内容会被ACCEPT
通过https://192.168.200.8/
进入蜜网网关的图形化界面
从Firewall Rules可以看到该网关使用的防火墙规则
通过命令vim /etc/init.d/snortd
可以查看snort的脚本文件,这是实际运行时的代码,可以看到进行了创建日志目录、设置目录权限、启动snort程序等
通过命令vim /etc/init.d/hw-snort_inline
可以查看该脚本为蜜网启动snort的过程
3. 学习中遇到的问题及解决
-
问题1:输入
iptables -L
返回error -
问题1解决方法:必须是root才能够使用该命令,提权即可。既可以
sudo iptables -L
也可以su
后再输入命令。 -
问题2:pcap文件报警内容只能在终端显示,不能记录日志输出到文件目录下
-
问题2解决方法:配置alert_full输出,输入下面的内容,设置为写入文件而不是标准输出。然后通过命令
snort -c /etc/snort/snort.lua -r /etc/snort/listen.pcap -l /etc/snort/log -A alert_full
输出到日志。alert_full = {file = true }
-
问题3:蜜罐网关输入
vim /etc/init.d/rc.firewall
后是空白的 -
问题3解决方法:先用
su
提权,再重新输入命令
4. 学习感想和体会
上一次实验更多是研究攻击手段,这一次则更多是学习防御的原理。通过本次实验,我对于防火墙的规则配置有了更深的了解和应用,snort3的配置文件和相关命令也更加了解熟悉,除此之外,通过对蜜网网关配置的查询和学习,也让我蜜网网关进行入侵检测的过程有了更深的理解。
参考资料
《网络攻防技术与实践》课本