20212905 2021-2022-2 《网络攻防实践》第五次作业
20212905 2021-2022-2 《网络攻防实践》第五次作业
1.实验内容
- 防火墙配置
- 动手实践:Snort
- 分析配置规则
2.实验过程
2.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.1 Linux平台
用到的主机和IP地址为:
主机 | IP地址 |
---|---|
主机A(Metasploitable_Linux) | 192.168.200.193 |
主机B(VM_Metasploitable_xpsp1) | 192.168.200.192 |
主机C(kali) | 192.168.200.195 |
过滤ICMP数据包
首先在主机A(Metasploitable_Linux)上ping主机C(kali) ,可以ping通
在主机C(kali)上通过iptables -L查看默认规则,可以看到INPUT
FORWARD
OUTPUT
都为空
主机C(kali)上在执行iptables -A INPUT -p icmp -j DROP
指令,使主机不接受icmp的数据包,其中-A
是更改规则,-p
指代协议,-j
后面跟具体规则变化
在主机A(Metasploitable_Linux)上再次ping主机C(kali) ,已经无法ping通
使用iptables -F
可以删除自定义规则
只允许特定IP地址访问
首先在主机B(VM_Metasploitable_xpsp1)和主机C(kali) 上均尝试使用telnet登录主机A(Metasploitable_Linux) ,均可成功连接
首先在主机A(Metasploitable_Linux) 上执行iptables -P INPUT DROP
丢弃一切输入的数据包,此时与主机B(VM_Metasploitable_xpsp1)和主机C(kali) 的连接均断开
再输入使用指令iptables -A INPUT -p tcp -s 192.168.200.195 -j ACCEPT
,只开启主机C(kali) 对本机的tcp服务,并用iptables -L
查看规则
发现在主机C(kali)可以使用telnet登陆主机A(Metasploitable_Linux) ,但是B(VM_Metasploitable_xpsp1)连接失败
2.1.2 Windows平台
用到的主机和IP地址为:
主机 | IP地址 |
---|---|
主机A(Metasploitable_Linux) | 192.168.200.193 |
主机B(WinXPattacker) | 192.168.200.196 |
主机C(kali) | 192.168.200.195 |
过滤ICMP数据包
首先在主机C(kali)上ping主机B(WinXPattacker) ,可以ping通
在主机B(WinXPattacker)设置防火墙,关闭允许传入ICMP回显请求
在在主机C(kali)上再次ping主机B(WinXPattacker) ,已经无法ping通
只允许特定IP地址访问
在主机B(WinXPattacker)开启ftp服务,默认端口为21
首先在主机A(Metasploitable_Linux)和主机C(kali)上均尝试使用ftp登录主机B(WinXPattacker)的ftp服务,均可成功连接
然后在防火墙中天添加端口21,更改范围,填写主机C(kali)的ip地址192.168.200.195,点击确定
然后在主机C(kali)和主机A(Metasploitable_Linux)上重新尝试使用ftp登录主机B(WinXPattacker)的ftp服务,可以发现,在主机C(kali)上能够成功连接主机B(WinXPattacker)的ftp服务 ,但是在主机A(Metasploitable_Linux)连接失败
2.2 动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
在kali上运行snort -r /home/kali/listen.pcap -c /etc/snort/snort.conf -K ascii -A full
,其中-K ascii
是为了使日志文件的编码为ASCII, -A full
输出全面的alert报警信息
查看输出结果
进入/var/log/snort
目录,查看报警信息
2.3 分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
数据捕获主要包括防火墙的日志记录和Snort记录的网络流
数据控制一般包括两个方面:防火墙对数据的控制和 IPS 对异常数据的限制(snort_inline)
打开 HoneyWall,查看防火墙配置规则/etc/init.d/rc.firewall
。分析发现,通过使用黑名单、白名单、防护名单(FenceList)实现了
- 防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包
- 对于属于白名单的主机,接受且不记录
- 对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机
通过iptables -t filter -L
来查看规则列表
查看/etc/init.d/snortd
,分析snort实际执行参数
默认使用snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort
查看/etc/init.d/hw-snort_inline
,分析snort实际执行参数
QUEUE模式将snort_inline通过QUEUE将防护规则传给iptables
3.学习中遇到的问题及解决
查看 snort 日志文件时提示没有权限,提升权限:sudo su
4.实践总结
通过本次实验,学习掌握了在Linux平台和Windows平台上的防火墙配置,并动手实践使用Snort进行了入侵检测,分析了IDS和IPS的配置规则,对IDS、IPS和防火墙有了更深入的了解。