20232815 2023-2024-2 《网络攻防实践》 实践五实验报告
1.实践内容
防火墙:
(1)基本概念:
防火墙(英语:Firewall)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
(2)功能:
1.网络安全的屏障
2.强化网络安全策略
3.监控审计
4.防止内部信息的外泄
5.日志记录与事件通知
snort工具:
snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort 通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。
Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件的功能就是在规则匹配误用检测之前运行,完成TCP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将处理后的各种情况以日志或警告的方式输出。
2.实践过程
2.1 防火墙配置
配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包
使用iptables -L
命令查看seed所有规则,确认是默认的:
此时,用kali(192.168.200.4)ping seed(192.168.200.5),没有问题:
使用命令iptables -A INPUT -p icmp -j DROP
使得主机不接收ICMP包
-A INPUT:将input规则添加到链尾;
-p icmp:指定icmp协议;
-j DROP:指定对应数据包进行丢弃。
再次查看规则:
此时用kali再次ping seed ,可见已经不能成功了:
而wireshark证明发出了很多icmp数据包:
成功后,使用iptables -F
清除所有规则。
(2)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问。
- 设置前,用kali和winXPattacker访问主机的ftp服务,都可成功;
- 使用命令
iptables -P INPUT DROP
拒绝一切数据流入; - 使用命令
iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT
只允许kali(192.168.200.4)访问主机。查看如下:
设置好后,用kali和winXPattacker访问seed,可见只有kali可以成功访问:
输入iptables -F和iptables -P INPUT ACCEPT恢复之前的状态。
2.2 动手实践:Snort
使用Snort对给定pcap文件(listen.pcap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或 Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
- 执行
snort -r listen.pcap -c /etc/snort/snort.conf -K ascii
从离线的pcap文件读取网络日志数据源:
可见,TCP包占绝大多数。
- snort会在默认目录 /var/log/snort 生成一个日志文件,cd/var/log/snort 查看日志文件 vim snort.alert.fast,可看到本次攻击是用nmap发起的。还可以看到端口号等。
2.3 分析配置规则
(1)数据捕获
蜜罐网关通过三种方式捕获数据:防火墙日志、网络通讯、系统活动
防火墙日志:防火墙能够记录所有的进入和外出本网络的连接。所有进出防火墙的日志信息记录在/var /log /messages 文件中。但防火墙能记录的数据是有限的,主要是报头信息,如攻击的时间、源和目的IP地址以及源和目的端口,对于入侵者的击键行为、数据包的载荷等无能为力。
IDS能够捕获所有的网络活动,记录每一个包和载荷。IDS 能够充分发挥其数据捕获的能力,得到蜜网环境中所有的数据包。Snort捕获所有IP通信,并将其转储到日志文件tcpdump中留待以后分析。将嗅探器与外部网口eth0绑定,那么记录下的将不仅是与Honeynet相关的数据,还会有外部网络的通信。
(2)数据控制
蜜网网关实现数据控制的主要方法有:基于IPTables的外出连接数限制和snort-inline入侵检测系统。
基于re.firewall脚本的IPTables防火墙可以限制外出的TCP连接和UDP、ICMP协议的数据包数.限制时间可以是秒,分钟,小时或天为单位,方便灵话,易于合理控制。还可以修改外出连接的数据包使其不能到达目的地,让入侵者认为数据包正常发出。
- 打开蜜网,输入:
vim /etc/init.d/rc.firewall
黑名单、白名单、防护名单:
对于属于黑名单的主机,丢弃所有包;对于属于白名单的主机,接受数据包;对于属于防护名单中的,是不允许被外部访问的蜜罐主机
- 输入
iptables -L
可以查看实际规则列表,看到默认的规则OUTPUT、INPUT、FORWARD都已经被关闭了:
输入vim /etc/init.d/snortd
,查看snort的脚本文件,可以看到实际运行时候的参数:
输入chkconfig --list | grep[服务]
来查询当前服务是不是开启的,可以看到防火墙和NIPS(snort_inline)是跟随系统启动的,NIDS是需要手动启动的:
输入vim /etc/honeywall.conf
,打开honeywall配置文件,可以看到snort默认为不自动更新:
3.学习中遇到的问题及解决
- 问题1:kali下载snort失败
- 问题1解决方案:需要将虚拟机改为桥接模式
4.实践总结
iptables是一个linux下的防火墙工具,它能帮助我们基于规则进行网络流量控制。它可以做到,但不限于以下功能:
- 允许/拒绝某种协议的链接建立,比如TCP,UDP
- 允许/拒绝 来自某个ip的访问
- 允许/拒绝某个端口被访问
- …
snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。