目录
1.实验内容
1.1 防火墙配置
任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。
1.2 动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在学习通中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort 通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件的功能就是在规则匹配误用检测之前运行,完成TIP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。
1.3 分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
IDS是计算机的监视系统,它通过实时监视系统,一旦发现异常情况就发出警告。以信息来源的不同和检测方法的差异分为几类:根据信息来源可分为基于主机IDS和基于网络的IDS,根据检测方法又可分为异常入侵检测和误用入侵检测。不同于防火墙,IDS入侵检测系统是一个监听设备,没有跨接在任何链路上,无须网络流量流经它便可以工作。因此,对IDS的部署,唯一的要求是:IDS应当挂接在所有所关注流量都必须流经的链路上。在这里,"所关注流量"指的是来自高危网络区域的访问流量和需要进行统计、监视的网络报文。在如今的网络拓扑中,已经很难找到以前的HUB式的共享介质冲突域的网络,绝大部分的网络区域都已经全面升级到交换式的网络结构。因此,IDS在交换式网络中的位置一般选择在尽可能靠近攻击源或者尽可能靠近受保护资源的位置。这些位置通常是:服务器区域的交换机上;Internet接入路由器之后的第一台交换机上;重点保护网段的局域网交换机上。
入侵防御系统(IPS: Intrusion Prevention System)是电脑网络安全设施,是对防病毒软件和防火墙的补充。入侵防御系统是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够及时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。
2. 实验过程
2.1 防火墙配置
2.1.1 通过过滤ICMP数据包,使主机不接受ping包
打开IPTables规则列表的显示
可以看到此时没有任何规则的显示,现在还没有添加规则
此时,用seed(192.168.200.4) ping kali(192.168.200.5),没有问题
使用命令iptables -A INPUT -p icmp -j DROP使得主机不接收ICMP包。
-A INPUT:将input规则添加到链尾;
-p icmp:指定icmp协议;
-j DROP:指定对应数据包进行丢弃。
再次查看IPTables规则列表,发现多了一条刚刚添加的规则
再次用seed(192.168.200.4) ping kali(192.168.200.5)
发现此时是ping不通的
回到kali虚拟机删除这个规则,再次查看,确认已经删除规则
回到seed(192.168.200.4) ping kali(192.168.200.5)
发现此时又可以ping通
2.1.2 只允许特定IP访问主机网络服务
用kali访问Linux靶机的telnet服务,发现可以成功,用seed访问Linux靶机的telnet服务,发现可以成功
来到linux靶机,添加命令
在MetaSploitable_Ubuntu上设置不接收任何包的规则。命令为iptables -P INPUT DROP,拒绝一切数据流入,如图。
回到kali虚拟机和seed虚拟机访问Linux靶机的telnet服务
发现连接失败
开启对于kali虚拟机对目标机的TCP服务
用iptables -L查询规则
可以看到kali可以正常telnet靶机了
2.2 动手实践: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编码。
snort会在默认目录 /var/log/snort 生成一个日志文件。
输入命令cd /var/log/snort 进入文件夹。
输入命令vi snort.alert.fast,查看具体文件。
可以看到,本次攻击是用nmap发起的,攻击机IP地址是 172.31.4.178,靶机IP地址是 172.31.4.188 ,还可以看到端口号等等。
2.3 分析配置规则
通常数据控制包括防火墙对数据的控制和IPS对异常数据的限制(snort_inline)。使用命令vim /etc/init.d/rc.firewall查看防火墙的文件,我们可以看到创建了三个链,分别是黑名单、白名单、防护名单(FenceList),
防火墙对源地址或者目的地址属于黑名单的主机:丢弃所有包。
对于属于白名单的主机:接受且不记录。
对于属于防护名单内的主机:禁止访问某些不希望被访问到的主机。
获取IPTables的实际规则列表:先输入cd /etc/init.d
进入init.d文件,通过 iptables -t filter -L
来查看规则列表。
获取Snort实际执行参数:通过vim snortd
打开Snort脚本文件,可以看到些参数的选项:默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort。
获取Snort_inline的实际执行参数:执行命令vim hw-snort_inline
打开snort_inline的脚本文件,可以看到到实际执行的参数。
运行命令chkconfig --list|grep [服务]查看服务情况,如果从0~6全是off,那就不自动启动。可以看到防火墙和NIPS(snort_inline)是自动启动的,NIDS要手动启动:
snort规则的升级方式:使用命令vim /etc/honeywall.conf
打开配置文件,找到update variables,可以看到其值为no,不自动更新
3.学习中遇到的问题及解决
问题:snort会在没有在默认目录 /var/log/snort 生成一个日志文件,而是在file system中
4、实践总结
通过本次实验,我学习到了各种网络安全防范技术的基本原理和方法。熟悉使用Windows的防火墙和linux的iptables的配置。对ICMP数据包有了进一步的认识。