20212914 2021-2022-2 《网络攻防实践》第五次(第七周)作业

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 防火墙配置

任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:

2.1.1 Linux操作系统

(1)过滤ICMP数据包,使得主机不接收Ping包。

kali :192.168.75.128
Metasploitable2:192.168.75.130
Windows server:192.168.75.129
Windows XP:192.168.75.131
1、在Metasploitable2中ping kali,目前可以ping通。

2、在kali上通过iptables -L查看默认规则。

3、执行命令iptables -A INPUT -p icmp -j DROP,使得主机不接受icmp的数据包。

  • -A:是追加新规则于指定链的尾部
  • INPUT:表示数据包入口(规则)
  • -p :用于匹配协议
  • -j :用于指定如何处理(ACTION)
    再次查看规则,发现多了一条icmp针对任何位置不允许访问的规则。

4、再次用Metasploitable2来ping主机kali,发现 ping 不通了。

5、最后执行iptables -F清楚所有规则。

6、再次查看是否能ping通,结果是可以ping通的。

(2)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问

设置前,用kali和Windows server访问主机Metasploitable2的ftp服务,都可成功。

使用命令iptables -P INPUT DROP拒绝一切数据流入。

使用命令iptables -A INPUT -p tcp -s 192.168.75.128 -j ACCEPT只允许kali(192.168.75.128)访问主机。

输入iptables -F和iptables -P INPUT ACCEPT恢复之前的状态。

2.1.2 Windows操作系统

(1)过滤ICMP数据包,使得主机不接收Ping包。

设置之前,kali可以ping通WinXPattacker(192.168.75.131)

打开Windows防火墙。

在高级,ICMP设置中,把允许传入回显请求勾掉。

kali就ping不通windowsXP了

(2)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问

设置前,用kali和Metasploitable2访问主机winXPattacker的ftp服务,都可成功。

然后在防火墙选择ftp服务,更改范围,填写kali的ip地址192.168.75.128。

然后在kali和Metasploitabl上重新尝试登录WinXPattacker的ftp服务,发现在kali上能够成功连接主机,但是在Metasploitable上连接失败。

2.2 动手实践:Snort

使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:

①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)

1、执行命令snort -c /etc/snort/snort.conf -r /home/kali/Desktop/listen.pcap -K ascii
从离线的pcap文件读取网络日志数据源。

  • -c:表示选择snort配置文件
  • -r:表示从pcap格式的文件中读取数据包
  • -K:ascii是用来指定输出日志文件的为ASCII编码

如图所见TCP包占绝大多数。

2、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 分析配置规则

分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。

2.3.1 数据捕获和数据控制

1、数据捕获
蜜罐网关通过三种方式捕获数据:防火墙日志、网络通讯、系统活动

防火墙日志:防火墙能够记录所有的进入和外出本网络的连接。所有进出防火墙的日志信息记录在/var /log /messages 文件中。但防火墙能记录的数据是有限的,主要是报头信息,如攻击的时间、源和目的IP地址以及源和目的端口,对于入侵者的击键行为、数据包的载荷等无能为力。

IDS能够捕获所有的网络活动,记录每一个包和载荷。IDS 能够充分发挥其数据捕获的能力,得到蜜网环境中所有的数据包。Snort捕获所有IP通信,并将其转储到日志文件tcpdump中留待以后分析。将嗅探器与外部网口eth0绑定,那么记录下的将不仅是与Honeynet相关的数据,还会有外部网络的通信。

访问Snort脚本文件vim /etc/init.d/snortd

2、数据控制
查看防火墙的文件,执行命令vim /etc/init.d/rc.firewall

可以从上图中看到create_chains中新建了许多规则链:黑名单链、白名单链、防护链......
我们得到了:

  • 防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。
  • 对于属于白名单的主机,接受且不记录。
  • 对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机

2.3.2 iptables

1、iptables的实际规则列表:
执行iptables -L可以查看到实际的规则列表。


我们可以发现默认规则:INPUT、FORWARD、OUTPUT都关闭了。

2、Snort实际执行参数:
输入命令打开Snort脚本文件vim /etc/init.d/snortd

如图可知,它是默认使用默认目录下的snort规则,监听网卡为eth0,默认储存路径为/var/log/snort。

3、Snort_inline实际执行参数:
执行命令vim /etc/init.d/hw-snort_inline。
打开snort_inline的脚本文件查看实际执行参数。

各参数定义为:

  • -D表示Daemon模式
  • -c表示读取config文件
  • -Q表示使用QUEUE模式
  • -l表示输出log文件的目录
  • -t表示改变程序执行时所参考的根目录位置

2.3.3 防火墙、NIDS、NIPS启动

执行命令chkconfig --list | grep [服务]来查询当前服务是否开启。

可以看到防火墙和NIPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件。NIDS是需要手动启动的。

2.3.4 Snort规则

在/etc目录下执行命令vim honeywall.conf来打开honeywall配置文件

找到snort规则更新的地方,可以看到默认是不自动更新的。可以推断它使用Oinkmaster进行了snort的自动升级。

3.学习中遇到的问题及解决

遇到命令无效或是打开文件为空时,尝试先使用提权命令解决。

4.实践总结

本次实践主要运用了iptables的一些指令进行了防火墙的配置,经实践,在配置规则之后,防火墙可以起到防御的作用。还使用snort工具进行了入侵检测,经过对文件的检测和分析报警日志可以了解到防火墙技术和入侵检测技术是如何工作的。

posted @ 2022-04-17 16:29  是过客啊  阅读(32)  评论(0编辑  收藏  举报