[20212901 薛德凡2021-2022-2 《网络攻防实践》第五次作业 ]
[20212901 薛德凡2021-2022-2 《网络攻防实践》第五次作业 ]
一、实践内容
任务要求:
(1)配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
过滤ICMP数据包,使得主机不接收Ping包;
只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
(2)动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
- ①从离线的pcap文件读取网络日志数据源
- ②在snort.conf中配置明文输出报警日志文件
- ③指定报警日志log目录(或缺省log目录=/var/log/snort)
(3)分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
二、实验相关知识
1、防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。
2、Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort 通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件的功能就是在规则匹配误用检测之前运行,完成TIP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。
工作过程
三、实验内容
1、实验各主机ip设置
主机 | IP |
---|---|
kali | 192.168.200.10 |
WinXPattcker | 192.168.200.4 |
Seed Ubuntu | 192.168.200.9 |
Linux Metaolitable | 192.168.200.132 |
2、防火墙配置
任务要求:配置Linux操作系统平台上的iptables和Windows操作系统平台上的个人防火墙
Linux操作系统平台
(1)过滤ICMP数据包,使主机不接受ping包
在kali虚拟机中使用sudo iptables -L
命令查看所有的规则,其中均为默认规则:
测试kali攻击机与WinXPattcker的连通性
在kali中输入sudo iptables -A INPUT -p icmp -j DROP
,屏蔽对应icmp数据包
在kali中输入sudo iptables -L
查看新的规则,发现其中包含了丢弃icmp的规则
此时再次测试kali与WinXPattcker的连通性,发现无法ping通
在kali中打开wireshark捕捉对应数据包,发现其中包含icmp说明数据包发送成功
(2)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问
在WinXPattacker中使用命令telnet 192.168.200.9
对seedUbuntu进行telnet连接
在kali中使用命令telnet 192.168.200.9
对seedUbuntu进行telnet连接
在SEED Ubuntu中输入命令iptables -P INPUT DROP
,规定该主机丢弃所有数据包
此时kali无法对SeedUbuntu建立telnet连接
WinXPattacker也无法对SeedUbuntu建立telnet连接
在SeedUbuntu中使用命令iptables -A INPUT -p tcp -s 192.168.200.10 -j ACCEPT
使用命令iptables -L
查看当前的规则
此时在kali中再次与SeedUbuntu建立telnet连接,发现连接成功
而此时由于规则中不包含Winxp的ip,此时Winxp无法与SeedUbuntu建立telnet连接
Windows操作系统平台
(1)过滤ICMP数据包,使主机不接受ping包
打开Winxp中的Windows防火墙,将ICMP中的允许传入回显请求关闭
此时kali无法再ping Winxp
(2)只允许特定IP地址,访问主机的某一网络服务(Telnet),而其他的IP地址无法访问
首先在kali中使用命令telnet 192.168.200.4
对Winxp进行telnet连接,发现连接成功
在SeedUbuntu中使用命令telnet 192.168.200.4
对Winxp进行telnet连接,发现连接成功
在控制面板中选择管理工具,点击其中的本地安全策略。
选择创建IP安全策略
输入安全策略的名称:限制固定ip访问
选择此处添加
接下来一路选择默认,在此处点击添加
输入对应名称
此处选择TCP
此处到此端口输入23
可以看到此处已经有刚刚输入的筛选器
此处选择添加
此处添加一个阻止
此处显示该策略已指派
在kali中尝试对Winxp建立telnet连接,发现无法成功
在SeedUbuntu中尝试对Winxp建立telnet连接,发现无法成功
新建一个ip筛选列表,其中源ip为kali攻击机的ip
编辑结果如图所示:
接下来步骤与上文类似,此处选择允许kali
此处选择许可
安全策略选择许可的kali
在kali处建立与Winxp的telnet连接,发现连接成功
而此时SeedUbuntu无法与Winxp建立telnet连接
3、动手实践:Snort
使用snort -c /etc/snort/snort.conf -r /listen.pcap -K ascii
命令,查看对用输出成果
包分布如下:其中大部分为TCP数据包,也包含少量UDP包
进入/var/log/snort
目录打开其中alert文件,可以发现其中包含多种攻击由nmap发起,例如DDOS,其中源ip为172.31.4.178,目的ip为172.31.4.188。
3、分析配置规则
在蜜罐中输入vim /etc/init.d/rc.firewall
查看其中的黑名单,白名单以及防护名单
在蜜罐中输入iptables -t filter -L | more
查看其中的规则列表
在蜜罐中输入vim /etc/init.d/snortd
查看其中的snort的相关参数,包括默认使用eth0、使用二进制模式保存log文件等:
在蜜罐中输入vim /etc/init.d/hw-snort_inline
查看Snort_inline运行时参数
在蜜罐中输入chkconfig --list | grep
查看当前蜜罐对应服务是否开启
四、学习中遇到的问题及解决
问题1:kali和seedubuntu无法对windows开启telnet服务
问题1解决方案:在windows平台中要开启telnet服务。开启前telnet服务默认禁止,其余主机无法与其建立连接。
五、实践总结
本次实验Winxp防火墙部分的配置相对来说比较复杂,步骤繁多,我花费了比较久的时间完成。而各种配置文件的代码层面让我对防火墙,入侵检测等有了更深理解。