20211913-冯馨茹-2021-2022-2 《网络攻防实践》实验五
一、实验内容
防火墙配置
Snort
分析配置规则
二、实验过程
防火墙配置
1、通过过滤ICMP数据包,使主机不接受ping包
在虚拟机Ubuntu上ping虚拟机kali,此时是联通的
在虚拟机kali中输入命令iptables -L
,查看默认规则
在kali中执行iptables -A INPUT -p icmp -j DROP
指令使主机不接受icmp的数据包。
其中-A
是追加新规则于指定链的尾部,INPUT
表示数据包入口(规则),-p
用于匹配协议,-j
用于指定如何处理(ACTION)。
再次通过命令iptables -L
查看规则,发现多了一条icmp针对任何位置不允许访问的规则,即在INPUT链中添加将所以有ping连接产生的icmp数据包丢失的规则。
再次回到Ubuntu虚拟机,重新ping虚拟机kali,我的Ubuntu过了很久都没有响应,应该是ping不通了
执行iptables -D INPUT -p icmp -j DROP
指令除去刚才的过滤规则:(也可使用iptables -F
删除自定义规则)
再次通过命令iptables -L
查看规则,发现已经除去
再次回到Ubuntu虚拟机ping kali,发现可以ping通了
2、只允许特定IP访问主机网络服务
在这里只允许kali(192.168.200.4)访问Ubuntu(192.168.200.3)的telnet
在虚拟机kali中输入命令telnet 192.168.200.3
,使kali与Ubuntu进行telnet连接,此时可以连接
在Win2k虚拟机中也输入命令telnet 192.168.200.3
,使Win2k与Ubuntu进行telnet连接,此时也可以连接
先在Ubuntu中提取root权限,然后输入命令iptables -P INPUT DROP
使所有的数据包都无法流入
此时在kali中再次尝试与Ubuntu进行连接,发现无法连接成功
然后在Ubuntu中输入命令iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT
表示接受来自kali的数据包。
然后再次在kali中尝试与Ubuntu进行telnet连接,发现可以连接成功了
再在Win2k中尝试与Ubuntu进行telnet连接,发现无法连接成功
最后在Ubuntu中输入命令iptables -F
和iptables -P INPUT ACCEPT
恢复之前的状态。
3、Snort
- ①从离线的pcap文件读取网络日志数据源
- ②在snort.conf中配置明文输出报警日志文件
- ③指定报警日志log目录(或缺省log目录=/var/log/snort)
使用之前实验中保存在kali虚拟机的Downloads中的listen.pcap文件,在root权限下输入命令snort -r /home/kali//Downloads/listen.pcap -c /etc/snort/snort.conf -K ascii
对 listen.pacp 进行入侵检测, 其中-K ascii
是用来指定输出日志文件的为ASCII编码。
得到输出里检测出的数据包
然后输入命令cd /var/log/snort
进入报警日志目录
输入命令vim snort.alert.fast
在这里我的alert是空的,但是在alert.fast中找到了日志文件。
分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
打开蜜罐HoneyWall虚拟机,在root权限下输入命令vim /etc/init.d/rc.firewall
查看防火墙文件,可以看到创建了黑名单和白名单的规则链,还创建了很多协议数据包的处理规则链
输入命令iptables -L
查看实际规则列表,这里我用Shift+Fn+PgUp/PgDn进行上下翻页,可以看到默认的规则入INPUT、FORWARD、OUTPUT都已经被关闭了。
执行命令vim /etc/init.d/snortd
查询snort文件,可以看到些参数的选项:默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort
执行命令vim /etc/init.d/hw-snort_inline
打开snort_inline的脚本文件,可以看到实际执行的参数
运行命令chkconfig --list
查看服务情况,如果从0~6全是off,那就不自动启动。可以看到防火墙和NIPS(snort_inline)是自动启动的,NIDS要手动启动:
使用命令vim /etc/honeywall.conf
打开配置文件,找到update variables,可以看到其值为no,不自动更新:
三、学习中遇到的问题及解决
问题一:对 listen.pacp 进行入侵检测输入命令时, 其中-K ascii
输成了-k ascii
没有细心区分大小写。
问题二:在查看日志文件时发现是空的,问了同学也有出现类似的情况,最后在alert.fast文件中找到了。
四、学习感想和体会
此次实验主要学习了防火墙的配置,以及对配置规则进行分析。实验很复杂耗时很久,并且出现的问题比较多,而且不能中途停止不然需要从头开始。并且在输入命令时因为粗心出现错误,以后的实验中应多加注意。