20232803 2023-2024-2 《网络攻防实践》实践五报告

1、实践内容

1.1防火墙

  • (1)概念
    防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使(互联网)与(内联网)之间建立起一个安全网关,从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。

  • (2)作用
    防火墙可以监控进出网络的通信量,从而完成看似不可能的任务,仅让安全、核准了的信息进入,同时又抵制对企业构成威胁的数据。
    防火墙的作用是防止不希望的、未授权的通信进出被保护的网络,迫使单位强化自己的网络安全政策。防火墙一般都有以下功能:
    ①防火墙能强化安全策略。防止入侵者接近你的防御设施
    ②防火墙能有效地记录互联网上的活动,为监视互联网安全提供方便。
    ③防火墙限制暴露用户地点。防火墙能够用来隔开网络中一个网段与另一个网段。这样,能够防止影响一个网段的问题通过整个网络传播。
    ④可以限制他人进入内部网络,过滤掉不安全服务和非法用户,防火墙是一个安全策略的检查站。所有进出的信息都必须通过防火墙,防火墙便成为安全问题的检查点,使可疑的访问被拒绝于门外。

  • (3)分类
    ①软、硬件形式分类:软件防火墙、硬件防火墙、芯片级防火墙。
    ②防火墙技术分类:包过滤型防火墙、应用代理型防火墙 。
    ③防火墙结构分类:单一主机防火墙、路由器集成式防火墙、分布式防火墙。
    ④防火墙的应用部署位置分类:边界防火墙、个人防火墙、混合防火墙。
    ⑤防火墙性能分类:百兆级防火墙、千兆级防火墙。
    ⑥防火墙使用方法分类:网络层防火墙、物理层防火墙、链路层防火墙。

1.2 iptables

(1)工作原理:在nefilter/iptables防火墙系统中,netfilter 组件位于Linux的内核空间中,实现了静态包过滤和状态报文检查(即动态包过滤)基本防火墙功能,此外也支持一个灵活可扩展的框架,支持NAT网络地址转换等其他额外功能,并提供了多层API接口以支持第三方扩展,nefilter具备构建防火墙、NAT共享上网、利用NAT构建透明代理,以及构建QoS或策略路由器等安全功能。Iptables 则是工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为netfilter配置各种防火墙过滤和管理规则。nefilter/iptables 中包含三个最基本的规则表,分别为用于包过滤处理的filter表、用于网络地址转换处理的NAT表,以及用于特殊目的数据包修改的mangle表。
(2)iptables用法
命令语句:“$ iptables [-t table] cpmmand [match] [target]”
其中-t指定配置规则所在的表,缺省表包括filter、nat、mangle、raw等。
command 部分是 iptables 命令的最重要部分,告诉iptables命令要做什么,例如,插入规则、讲规则添加到链的末尾或删除规则。
IP伪装:“iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j MASQUERADE”
使内部网络主机发出的数据包进行源IP地址伪装,使用防火墙外网IP地址。
SNAT机制:使用-j SNAT描述,用–to source描述要转换的IP地址。
DNAT机制:使用-j DNAT描述,用–to destination描述IP地址、范围或端口。

1.3 SNORT

(1)基本介绍
Snort被设计成一个跨平台、轻量级的网络入侵检测系统,用C语言编写,并采用了标准的捕获数据包函数库libpcap,具有非常好的可移植性。目前Snort可以在包括x86、SPARC、PowerPC、Alpha等指令集平台架构上的Linux、Windows、MAC OS,以及各种UNIX操作系统上运行。

Snort具有强大的功能:数据包嗅探、数据包记录和分析,以及各种入侵检测功能。Snort在设计时采用了注重高性能、简单和灵活的原则,并采用一套源码级插件机制,作为系统扩展的手段。Snort 软件的基本架构主要由四个基本部分组成:
①数据包嗅探/解码器(sniffer);
②预处理器/插件(preprocessor);
③检测引擎/插件(detection engine);
④输出模块/插件(output modules).
(2)实现原理
Snort中四个主要部件以及处理过程描述如下:
①数据包嗅探/解码器。首先,利用libpcap从网卡或离线记录中捕获数据包,然后数据包经过解码器填入到链路层协议的包结构体中,以便对高层次的协议进行解码,如TCP/UDP层。
②预处理器/插件。接着数据包被送到各种各样的预处理插件中,在检测引擎之前对数据包进行检查和操作。每个预处理插件检查数据包是否应该注意、报警或者修改某些东西。
③检测引擎/插件。随后,包被送至检测引擎,检测引擎首先通过各种规则文件中定义的匹配字符电特征来对每个包的信息进行快速的模式匹配检测,然后由各种检测插件对包提供额外的检测功能。规则中每个关键字选项对应于检测引擎插件,能够提供不同的检测功能。
④输出模块/插件。对之前各个部件产生的报警/日志信息,根据用户配置,调用相应的输出插件进行发送和记录。

2 实验过程

  • 实验环境
虚拟机IP
Kali2023192.168.200.3
SEED192.168.200.5
WinXP192.168.200.3
Honey192.168.200.3

2.1 防火墙配置

任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问。
(1)过滤ICMP数据包,使得主机不接收Ping包

首先在主机B上,首先使用命令iptables -V,如果显示出版本号表示已经安装,如果没有,运行apt-get install iptables
在这里插入图片描述

运行命令iptables -L,查看防火墙的配置情况。

在这里插入图片描述
可见,主机B没有任何的防火墙措施。
在Kali 攻击机中ping一下主机SEED,能够正常ping通。
在这里插入图片描述

接着在SEED上使用命令`sudo iptables -A INPUT -p icmp -j DROP`添加规则,再次使用`sudo iptables -L`查看当前防火墙配置信息,添加成功。
在这里插入图片描述

在Kali上, 再次使用命令ping SEED, 发现不通。

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

在Kali上,再次使用命令ping SEED,发现ping通了。
在这里插入图片描述
(2)使用iptables限制IP地址访问端口
开启主机SEED的telnet服务:service openbsd-inetd start
在这里插入图片描述
分别测试Kali和WIN XP是否可以进行telnet登录SEED。
telnet 192.168.200.5(其中用户名:seed,密码:dees)
在这里插入图片描述
在这里插入图片描述

在SEED使用 sudo iptables -P INPUT DROP指令拒绝一切的数据包流入(修改的是默认规则-P)。
在这里插入图片描述

此时发现两台机器都无法进行telnet访问。
在这里插入图片描述

在这里插入图片描述
在SEED上使用指令 sudo iptables -A INPUT -p tcp -s 192.168.200.3 -j ACCEPT开启Kali对SEED的tcp服务。
在这里插入图片描述这时发现Kali是可以正常访问telnet服务的,但是Win xp是无法访问的。

在这里插入图片描述
在这里插入图片描述最后执行iptables -F删除自定义规则,iptables -P INPUT ACCEPT把没有规定的数据包都接收,恢复之前的状态。
在这里插入图片描述

2.2 动手实践:Snort

使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源。
②在snort.conf中配置明文输出报警日志文件。
③指定报警日志log目录(或缺省log目录=/var/log/snort)。

首先使用sudo apt install snort命令安装snort。(注:安装前将kali的网络改为桥接模式)
在这里插入图片描述

使用之前实验的listen.pcap,利用指令snort -r /home/lxh/down/listen.pcap -c /etc/snort/snort.conf -K ascii,对listen.pacp进行入侵检测。
在这里插入图片描述

查看输出里检测出的数据包,可以看到大部分数据流为tcp会话,少部分为ARP包报警数据包有10条,均被日志记录,所有数据包都裁决允许。
在这里插入图片描述

此时snort会在默认目录生成一个日志文件,进入报警日志目录cd /var/log/snort, 查看日志文件,记录了报警数据10条的入侵检测信息,可以发现本次攻击是使用nmap发起的。攻击主机的IP地址是172.31.4.178,网络扫描的目标IP地址是172.31.4.188。
在这里插入图片描述

2.3 分析配置规则

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

首先使用`su -``命令提权,然后使用vim /etc/init.d/rc.firewall查看防火墙的文件,可看到create_chains创建了黑名单、白名单、防护名单。
白名单:可以通过的ip
黑名单:不能通过的ip
防护名单:部分服务可以通过的ip
在这里插入图片描述
创建了很多协议数据包的处理规则链。
在这里插入图片描述
还有默认规则、本地规则、管理规则。
在这里插入图片描述
防火墙开启后根据先前规则链及定义的规则函数过滤数据。
在这里插入图片描述
通过iptables -t filter -L | less来查看规则列表,可以看到默认的规则入INPUT、FORWARD、OUTPUT都已经被关闭了。
在这里插入图片描述在这里插入图片描述
使用vim /etc/rc.d/init.d/snortd查看文件,可以看到默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,配置文件为snort.conf。
在这里插入图片描述
执行命令vim /etc/init.d/hw-snort_inline打开snort_inline的脚本文件,可以看到到实际执行的参数。
-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置。
在这里插入图片描述

通过指令“chkconfig --list | grep [服务]”来查询当前服务是不是开启的。
chkconfig命令主要用于检查,设置系统的各种服务。若0-6全部为off,则不自动启动。
可以看到防火墙和IPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件,IDS不会自动启动。
在这里插入图片描述

使用vim /etc/honeywall.conf打开honeywall配置文件,来看snort的rule是否自动更新(在文件270+行),默认为不更新。
在这里插入图片描述

使用vim /etc/oinkmaster.conf打开该文件,发现了snort.conf文件,可以推断这里使用工具Oinkmaster进行了snort的自动升级。

在这里插入图片描述

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

问题1:安装snort失败

问题1解决方案:打开Kali的虚拟机设置,将网络适配器修改为桥接模式

4.实践总结

本次实践主要学习防火墙、IDS、IPS的运行机制、原理以及配置规则等内容。通过防火墙和入侵检测,可以获取攻击者的攻击行为。防火墙和入侵检测有助于防御者采取针对性的防御措施,以最小的成本应对最大程度的威胁。蜜网网关拥有较为完善的防御机制,通过使用没有任何防御措施的蜜罐主机,诱导攻击者进入“圈套”。防御者通过观察攻击者对蜜罐主机的攻击,可以总结出攻击者的攻击手段和方法。

  • 28
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值