20232822 2023-2024-2 《网络攻防实践》实践5报告

1、实验内容

(1)防火墙

防火墙是一种网络安全设备或软件,用于监控和控制网络流量的传输,以保护内部网络免受未经授权的访问、攻击和恶意软件的侵害。它可以根据预先设定的规则,对网络数据包进行过滤,阻止或允许特定类型的流量通过。防火墙通常用于防范各种网络威胁,包括黑客入侵、病毒传播、僵尸网络和数据泄露等。防火墙可以部署在网络边界、主机系统或应用程序层,具体的实现方式包括网络防火墙、主机防火墙和应用程序防火墙。它们可以采用不同的技术来实现,如基于端口、IP地址、协议类型、内容过滤等规则进行流量控制和审查。在企业网络中,防火墙通常作为网络安全策略的一部分,与其他安全设备和技术(如入侵检测系统、虚拟专用网络等)配合使用,构建多层防御体系,以提高网络安全性。

(2)iptables

iptables是一个用于管理 Linux 内核防火墙功能的命令行工具。它允许用户配置规则集,用于控制网络流量的传输,实现网络安全策略。通过 iptables,用户可以定义规则来允许或拒绝特定类型的数据包通过系统,从而保护网络免受未经授权的访问和攻击。
iptables 的主要功能包括:
过滤功能:允许或拒绝数据包的传输,可以基于源 IP 地址、目标 IP 地址、端口号、协议类型等来过滤流量。
网络地址转换 (NAT):可以修改数据包的源或目标地址和端口,实现网络地址转换,常用于构建内部网络与外部网络之间的映射。
连接追踪:跟踪网络连接状态,可以跟踪 TCP、UDP 和 ICMP 连接的状态,从而实现更精细的流量控制。
数据包修改:允许用户修改数据包的内容,如修改数据包的标记、修改 TTL 等。

(3)Snort

Snort 是一个开源的网络入侵检测系统 (NIDS),它能够实时监测网络上的流量,并对可能的攻击行为进行检测和警报。Snort 通过分析网络数据包的内容和头部信息来检测可能的恶意行为,如端口扫描、攻击尝试、恶意软件传播等。
Snort 的工作原理主要包括以下几个步骤:
数据包捕获:Snort 通过网络接口捕获到达主机的网络数据包。
数据包预处理:对捕获到的数据包进行预处理,包括数据包重组、协议分析等操作。
规则匹配:Snort 使用预先定义的规则集对数据包进行匹配,规则通常包括特征、动作等信息。
警报生成:如果数据包匹配了某个规则,Snort 将生成警报,指示可能发生了恶意行为。
日志记录:Snort 会将匹配规则的数据包信息记录到日志文件中,以便后续分析和审查。
Snort 的规则集可以根据网络环境和需求进行定制和扩展,用户可以根据需要添加新的规则或修改现有规则,以提高检测的准确性和适用性。Snort 还支持多种输出方式,如控制台输出、日志文件记录、邮件通知等,用户可以根据需求配置不同的输出方式。

(4)IDS与IPS的区别

IDS(入侵检测系统)和 IPS(入侵防御系统)是网络安全中常见的两种技术,它们都旨在保护网络免受未经授权的访问和恶意攻击,但在功能和实现方式上有一些区别。
IDS(入侵检测系统): IDS 主要用于监测网络中的异常活动和潜在的安全事件,但不会主动干预或阻止这些事件的发生。它通过分析网络流量、日志或系统活动等信息来检测可能的入侵行为。 IDS 的工作方式通常是 passively(被动地)监测网络流量,分析数据包的内容和头部信息,以识别潜在的攻击特征或异常行为。当 IDS 检测到可能的入侵行为时,它会生成警报并通知管理员,管理员需要手动对警报进行响应和处理。
IPS(入侵防御系统):IPS 不仅可以检测网络中的异常活动,还可以主动阻止和防御这些活动,以保护网络免受攻击。它可以自动执行预定义的动作来响应检测到的入侵行为。IPS 的工作方式是 actively(主动地)干预网络流量,当检测到潜在的入侵行为时,它可以立即采取措施来阻止攻击,如阻断连接、封锁 IP 地址等。 IPS 具有实时响应和自动化防御的特性,可以更快地对入侵行为进行反应,并减少管理员手动干预的需求。IDS 主要是监测网络中的异常行为并生成警报,而 IPS 则在此基础上增加了主动阻止和防御的功能,能够实时响应入侵行为并自动执行防御措施。

2、实验过程

本次实验中使用到的虚拟机及他们的IP地址
在这里插入图片描述

一、防火墙配置

任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
在seedubuntu使用命令iptables -V,显示出了版本号说明我们已经安装了,如果没有,运行apt-get install iptables进行安装。然后使用命令sudo iptables -L查看当前防火墙配置信息。可以看到图中均显示policy ACCEPT,即都有权限。接着使用命令sudo iptables -A INPUT -p icmp -j DROP添加规则,然后使用sudo iptables -L查看当前防火墙配置信息,可以看到添加成功,其中-A是追加新规则于指定链的尾部,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理。
在这里插入图片描述
打开Kali,在kali中使用命令ping 192.168.200.3,发现不通。

在这里插入图片描述
在seedubuntu上,使用命令sudo iptables -F删除刚刚自定义的规则。
在这里插入图片描述

在Kali上再次使用命令ping 192.168.200.3,发现ping通了。
在这里插入图片描述

(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.6),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.124)无法访问。

在Kali中输入命令 telnet 192.168.200.3 ,连接seedubuntu,此时是可以连通并登录的
在这里插入图片描述
在Win2k虚拟机中输入命令 telnet 192.168.200.3,使Win2k与seedubuntu进行telnet连接,此时也可以连接。
在这里插入图片描述
在seedubuntu中输入命令sudo iptables -P INPUT DROP 使所有用户无法访问
在这里插入图片描述
此时在Kali中再次尝试与seedubuntu进行连接,发现无法连接
在这里插入图片描述
在win2k中也无法与seedubuntu进行连接
在这里插入图片描述
在seedubuntu中输入命令 iptables -A INPUT -p tcp -s 192.168.200.6 -j ACCEPT,表示允许192.168.200.6与seedubuntu进行连接
在这里插入图片描述
此时返回Kali,发现可以通过telnet连接seedubuntu
在这里插入图片描述
在win2k中尝试telnet连接seedubuntu,发现无法连接成功
在这里插入图片描述
最后,返回在seedubuntu中输入命令 iptables -F 和 iptables -P INPUT ACCEPT,恢复最初的状态,此时win2k和kali又都可以访问seedubuntu了。
在这里插入图片描述

二、动手实践:Snort

使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在学习通中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)

在seedubuntu中使用命令 snort -r /home/seed/listen.pcap -c /etc/snort/snort.conf -K ascii 对之前实验中的listen.pacp进行入侵检测 (-c 表示选择snort配置文件,-r 表示从pcap格式的文件中读取数据包,-K ascii 用于指定输出日志文件为ASCII编码),可以看到被检测到的数据包中大部分为TCP会话。
在这里插入图片描述
往下划可以看到报警数据 Alerts为10条
在这里插入图片描述
再往下划可以看到数据流统计如图
在这里插入图片描述
此时snort会在默认目录生成一个日志文件,进入报警日志目录 cd /var/log/snort,查看日志文件 vim alert,可以看到10条报警数据的具体检测信息
在这里插入图片描述
在这里插入图片描述

三、分析配置规则

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

在蜜罐honeywall虚拟机 ,输入su -进入root权限,在root权限下输入命令 vim /etc/init.d/rc.firewall 查看防火墙文件,在start函数中
首先是create_chains函数,定义了下述程序中使用的规则。BlackList、WhiteList、FenceList和xxxHandler。它们分别用来存储源地址和目的地址黑名单,源地址和目的地址的白名单,源地址和目的地址的防护名单,以及供下述policy使用的各种协议对应的Handler链。接下来通过default_policy、localhost_policy和management_policy创建了不同情况下的三种代理转发模式。
接下来进入start程序的正文,通过读取预定义的白名单HwFWWHITE、黑名单HwFWBLACK和防护名单HwFWFENCE,添加相关的规则。最后通过读取类似HwHPOT_PRIV_IP_FOR_NAT和HwHPOT_PUBLIC_IP等文件来导入其他的定义参数。
在这里插入图片描述
在create_chains函数中可以看到黑名单、白名单和防护名单的规则链
在这里插入图片描述
default_policy()、localhost_policy()和management_policy()如下:
在这里插入图片描述
输入iptables -t filter -L,查看IPTables的实际规则列表、snort和snort_line的实际执行参数,如下图:
在这里插入图片描述
在这里插入图片描述
使用 vim /etc/init.d/snortd 命令打开Snort脚本文件,查看相关的运行参数,可以分别看到一些参数的选项,包括实际运行时候的参数。学习一些snort的指令后进行分析,譬如在指定网卡接口后,如果没有其他的参数,将按照默认参数运行。如默认不开启-A模式,使用默认目录的config文件,默认使用eth0、使用二进制模式保存log文件等,还可以看到监听网卡和存储配置文件的位置如下图
在这里插入图片描述
输入vim /etc/init.d/hw-snort_inline命令可以看到Snort_inline运行时参数,-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置,如下图
在这里插入图片描述
防火墙、NIDS、NIPS是如何启动
使用chkconfig --list|grep snort命令来对linux上运行的服务进行查询,可以发现NIDS的0~6都是off,说明是需要手动启动的,
而防火墙和NIPS不全是off,是跟随系统启动的。
在这里插入图片描述
snort规则的升级方式
我们使用命令vim /etc/honeywall.conf打开配置文件,找到update variables,可以看到其值为no,表示不自动更新,如下图
在这里插入图片描述

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

  • 问题1:在honeywall中查找函数很麻烦
  • 问题1解决方案:可以使用命令进行快速查找,例如/default_policy可以快速找到这个函数。

4.实践总结

在这次实验中对防火墙相关知识有了进一步的认识,了解了防火墙的配置规则,并进行了相关实践,同时也认识并实践了Snort和iptables。

参考资料

  • 22
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值