20232927张潇文 2022-2023-2 《网络攻防实践》实践五报告
1.实践内容
1.1 防火墙配置
任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
①过滤ICMP数据包,使得主机不接收Ping包;
②只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问。
1.2 动手实践:Snort
使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源;
②在snort.conf中配置明文输出报警日志文件;
③指定报警日志log目录(或缺省log目录=/var/log/snort)。
1.3 分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
2.实践过程
在Kali虚拟机输入命令:ifconfig查看虚拟机IP地址:
在win2k虚拟机输入命令ipcconfig/all看虚拟机IP地址:
2.1 防火墙的配置
2.1.1 IPTables规则列表的显示
1.在Kali虚拟机中,首先用sudo su提权;再运行命令iptables -L,查看防火墙的配置情况:
由结果可见可见,Kali虚拟机并没有任何的防火墙措施。
2.1.2 过滤数据包
1.在WinXPattacker攻击机中ping 192.168.200.3(即Kali虚拟机的IP地址):
如图所示能够正常ping通。
2.在Kali虚拟机中添加过滤icmp数据包的规则。
在命令行输入指令:iptables -A INPUT -p icmp -j DROP:
其中-A是追加新规则于指定链的尾部,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理(ACTION)。
再次输入命令iptables -L,查看防火墙的配置情况:
3.再次在WinXPattacker攻击机中ping 192.168.200.3(即Kali虚拟机的IP地址):
发现再次ping时没法ping通了。
4.在Kali虚拟机中运行命令iptables -D INPUT -p icmp -j DROP,删除添加的规则:
再次在WinXPattacker攻击机中ping 192.168.200.3(即Kali虚拟机的IP地址):
发现在删除添加的规则后再次ping时又可以ping通了。
2.1.3 特定IP地址访问主机
1.在WinXPattacker攻击机输入telnet 192.168.200.5(即Metasploitable2-Linux虚拟机的IP地址):
可以发现telnet连接成功。
2.在Metasploitable2-Linux虚拟机中运行命令:iptables -P INPUT DROP:
再次在WinXPattacker攻击机输入telnet 192.168.200.5(即Metasploitable2-Linux虚拟机的IP地址):
可以发现WinXPattacker攻击机无法成功telnet连接。
再次在Kali虚拟机命令行中输入指令:telnet 192.168.200.5(即Metasploitable2-Linux虚拟机的IP地址):
可以发现Kali虚拟机无法成功telnet连接。
3.在Metasploitable2-Linux虚拟机中输入iptables -A INPUT -p tcp -s 192.168.200.123 -j ACCEPT,进行删除操作:
输入iptables -L,查看防火墙的配置情况:
4.再次在Kali虚拟机命令行中输入指令:telnet 192.168.200.5(即Metasploitable2-Linux虚拟机的IP地址):
可以发现telnet又可以连接成功。
2.1.4 静态包过滤与报文状态检查
在INPUT、OUTPUT、FORWARD等规则链对应的Hook点上定义检查单个数据包的包头信息,并通过书序遍历规则链中由用户定义的检查链表,如果匹配则执行,不匹配则执行默认操作。
对路由转发数据包进行检查,当数据包源IP地址属于192.168.0.0\24 C类网段,且目的地址属于192.168.1.0/24 C类网段,执行目标操作ACCEPT。
1.在Kali虚拟机中输入指令iptables -t filter -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT:
在Kali虚拟机中输入iptables -L,查看防火墙的配置情况:
在Kali虚拟机中输入指令:iptables -t filter -A FORWARD -d 192.168.200.7 -m state --state NEW -j ACCEPT :
并在Kali虚拟机中输入iptables -L,查看防火墙的配置情况:
2.1.5 SNAT机制与DNAT机制的实现
将通过路由转发的网络连接的源IP地址修改为1.2.3.4
通过在Kali虚拟机中输入指令:iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4将路由转发的网络连接的源IP地址修改为1.2.3.4;
通过在Kali虚拟机中输入指令:iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 1.2.3.4将路由转发的网络连接的目的地址修改为1.2.3.4:
2.2 Snort入侵检测
在Kali虚拟机中运行指令:
snort -r /home/kali/Desktop/listen.pcap -c /etc/snort/snort.conf -K ascii:
上述指令是对 listen.pacp 进行入侵检测, 其中-K ascii是用来指定输出日志文件的为ASCII编码
snort会在默认目录 /var/log/snort 生成一个日志文件。
输入命令cd /var/log/snort 进入文件夹。
通过vim /var/log/snort 命令打开snort日志:
#@# 2.3 分析蜜网网关的配置规则
通常数据控制一般包括两个方面,一个是防火墙对数据的控制,还有一个是IPS对异常数据的限制(snort_inline)。如下的三个链,分别是黑名单、白名单、防护名单(FenceList)。所以,大致在上面的功能之上,增加了:
①防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。
②对于属于白名单的主机,接受且不记录。
③对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。
1.使用命令vim /etc/init.d/rc.firewall查看防火墙的文件:
2.为了获取IPTables的实际规则列表:
首先先输入cd /etc/init.d进入init.d文件;
再输入 iptables -t filter -L来查看规则列表。
3.在命令行输入指令:vim snortd,可以看到参数选项:
4.输入指令:vim hw-snort_inline可以看到Snort_inline运行时参数,-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置:
输入命令chkconfig --list|grep查看服务情况:
可以发现NIDS的0~6都是off,说明是需要手动启动的,而防火墙和NIPS不全是off,是跟随系统启动的。
使用命令vim /etc/honeywall.conf打开配置文件,找到update variables,可以看到其值为no,不自动更新:
3.学习中遇到的问题及解决
- 问题1:在蜜网使用命令vim /etc/init.d/rc.firewall查看防火墙的文件时总是报错。
- 问题1解决方案:在使用命令之前要输入su -进行提权。
4.实践总结
通过本次实验,我学习到了各种网络安全防范技术的基本原理和方法。熟悉使用Windows的防火墙和linux的iptables的配置。对ICMP数据包有了进一步的认识。学习了使用Snort对给定pcap文件进行分析,找出各种信息。对蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求也有进一步的认识。