20212923 2021-2022-2 《网络攻防实践》第五次作业
实践五:网络安全防范技术
课程:《网络攻防实践》
班级: 2129
姓名: 王文彬
学号:20212923
实验教师:王志强
实验日期:2022年04月13日
必修/选修: 选修
一.实践内容
1. 实践要求介绍
- 防火墙配置
- 配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
- 过滤ICMP数据包,使得主机不接收Ping包;
- 只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问;
- 配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
- 动手实践:Snort
- 使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
- 分析配置规则
- 分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
防火墙
“防火墙”一词起源于建筑领域,用来隔离火灾,阻止火势从一个区域蔓延到另一个区域。引入到通信领域,防火墙这一具体设备通常用于两个网络之间有针对性的、逻辑意义上的隔离。当然,这种隔离是高明的,隔离的是“火”的蔓延,而又保证“人”的穿墙而过。这里的“火”是指网络中的各种攻击,而“人”是指正常的通信报文。
用通信语言来定义,防火墙主要用于保护一个网络区域免受来自另一个网络区域的网络攻击和网络入侵行为。因其隔离、防守的属性,灵活应用于网络边界、子网隔离等位置,具体如企业网络出口、大型网络内部子网隔离、数据中心边界等等。
从实现的方式来看,防火墙可以分为硬件防火墙和软件防火墙。硬件防火墙是通过硬件与软件的结合来达到隔离内外部网络的目的,而软件防火墙则是通过纯软件的方式来实现。
防火墙的作用:
- 防火墙能够隔离风险区域和安全区域,但不会妨碍人们对风险区域的访问。从总体上看,防火墙应该具有以下基本功能:
- 限制未授权用户进入内部网络,过滤掉不安全的服务和非法用户;
- 防止入侵者接近内部网络的防御设施,对网络攻击进行检测和报警;
- 限制内部用户访问特殊站点;
- 记录通过防火墙的信息内容和活动。
防火墙的技术特点:
- 而一个好的防火墙系统应该具备以下特性:
- 所有在内部网络和外部网络之间传输的数据都必须经过防火墙;
- 只有被授权的合法数据即安全策略允许的数据才允许通过防火墙;
- 防火墙本身具有预防入侵的功能,不受各种攻击的影响;
- 人机交互界面良好,用户配置方便、易管理。
网络防御技术
一、网络防御的意义
进攻与防御是对立统一的矛盾体。进攻常常是为了有效的防御,而防御也常常是为了更好的进攻。
在网络空间中,如果只会进攻不懂防御,注定不会在网络攻防对抗中取得最终胜利。
二、网络安全纵深防御体系
网络安全的纵深防御(Defense in depth)的思想是指通过设置多重安全防御系统,实现各防御系统之间的相互补充,即使某一系统失效也能得到其他防御系统的弥补或纠正。
本质上是通过增加系统的防御屏障,既避免了对单一安全机制的依赖,也可以错开不同防御系统中可能存在的安全漏洞,从而提高抵御攻击的能力。
三、主要防御技术
- 防火墙技术
- 虚拟局域网技术
- 虚拟局域网(Virtual Private Network, Virtual Private Network)也是一种较早使用、实用性很强的网络安全被动防御技术,其主要的作用是通过加密技术,在不安全的网络中构建一个安全的传输通道,是加密和认证技术在网络传输中的应用。
- 入侵检测技术
- 在本课程开课的时候,老师在课上就讲解过相关内容;
- 入侵检测与防护技术属于主动防御技术,主要有两种:入侵检测系统(lntrusion Detection System,IDS)和入侵防护系统( Intrusion Prevention System,IPS)。
- 入侵检测系统(IDS)注重的是网络安全状况的监管,通过监视网络或系统资源,寻找违反安全策略的行为或攻击迹缘,并发出报警;
- 入侵防护系统(IPS)则倾向于提供主动防护,注重对入侵行为的控制。其设计宗旨是预先对入侵活动和攻击性网络流量进行拦截,避免其造成损失。
- 网络蜜罐技术
- 蜜罐( Honeypot)技术也是一种主动防御技术,是一个“诱捕”攻击者的陷阱技术。蜜罐系统是一个包含漏洞的诱骗系统,通过模拟一个或多个易受攻击的主机和服务,给攻击者提供一个容易攻击的目标。攻击者往往在蜜罐上浪费时间,延缓对真正目标的攻击,而且可以为安全人员获得入侵取证提供重要的信息和有用的线索,便于研究入侵者的攻击行为。
Linux中的开源防火墙
一、Netfilter
- 功能:
- 构建防火墙, NAT共享上网, 利用NAT构建透明代理, 构建QoS或策略路由器;
- 组成:
- 由一系列表(Table)组成,每个表由若干个链(Chain)组成,每条链可以由一条或若干条规则(Rule)组成。
二、iptable:
- Linux应用层的防火墙配置工具
- 表→链→规则的分层结构
2.实践过程
实践一:防火墙配置
机器 | IP地址 |
---|---|
Kali Linux | 192.168.200.69 |
windows7 | 192.168.200.71 |
SEED Ubuntu | 192.168.200.66 |
MetaSploitable | 192.168.200.68 |
windows attack | 192.168.200.65 |
(1)过滤ICMP数据包,使得主机不接收Ping包 (linux下)
-
首先我们输入
iptables -
,可以看到目前对所有的协议包都是处于ACCEPT
的状态; -
然后我们输入命令
sudo iptables -A INPUT -p icmp -j DROP
添加一条入站规则,即丢弃ICMP数据包,添加完后使用sudo iptables -L命令查看添加的规则:(https://img2022.cnblogs.com/blog/1333084/202204/1333084-20220417141114841-905594289.png) -
然后我们再用kali主机向Ubuntu发送数据包,显示被丢弃;
-
最后使用
iptables -F
删除自定义规则。
(1*)过滤ICMP数据包,使得主机不接收Ping包 (Windows下)
-
我们使用windows 7为规则设置主机,首先我们需要打开控制面板-->进入高级安全Windows防火墙-->进入新建规则,如下图所示。
-
如图,我们可以看到两台主机分别对Ubuntu进行数据包发送,只有kali主机可以进行发送。
-
然后我们用kali主机对该windows主机进行数据包发送,数据包丢失。
(2)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问 (linux下)
- 首先我们使用
sudo iptables -P INPUT DROP
丢弃所有与INPUT链中任何规则都不匹配的数据包,然后使用iptables -A INPUT -p tcp -s 192.168.200.69 -j ACCEP
开启对192.168.299.69
kali主机的tcp访问;
(2*)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问 (windows下)
-
首先我们需要对windows下进行规则设置,本实践我们切换回WindowsAttack主机;
-
我们进入控制面板-->管理工具-->本地安全设置,设置Ubuntu禁止访问,如下图所示进行配置;
-
成功部署该规则;
-
紧接着我们需要对该主机的telnet服务进行启动,进入管理工具-->服务后,我们可以对telnet服务进行开启(这里要注意,需要关闭该主机防火墙)
-
我们分别使用kali和Ububtu进行telnet访问,发现kali可以访问而Ubuntu
不可以,即可说明实践正确。
实践二:动手实践:Snort
机器 | IP地址 |
---|---|
Kali Linux | 192.168.200.69 |
-
使用
snort -c /etc/snort/snort.conf -r /listen.pcap -K ascii
命令,从离线的pcap文件读取网络日志数据源: -
我们可以看到各个数据包的占比,该pcap包中,tcp数据包占大多数
-
我们进入/var/log/snort/目录下,输入命令
vi alert
可以看到本次攻击发起的方式及其攻击机地址、靶机地址、端口号等信息。
实践三:分析蜜网网关的防火墙和IDS/IPS配置规则
机器 | IP地址 |
---|---|
honeywall | 192.168.200.69 |
蜜罐技术中主要由以下几个部分构成: |
- 逻辑模块
- 数据控制:数据控制技术是控制攻击者出入蜜网主机的活动,使其不会以蜜网主机为跳板攻击和危害互联网上其它的主机;
- 数据捕获:数据捕获技术包括网络流量数据捕获以及主机上系统行为的捕获。网络流量数据的捕获结合网络入侵检测系统,配置相关敏感信息的检测规则,触发入侵检测规则时立即记录网络流量;
- 数据分析:数据分析技术基于数据捕获技术之上,把收集到的网络数据、主机行为数据保存于数据库当中。分析技术需要信息安全网络攻防研究基础、数据库设计基础。
- 功能模块
- 主机监控:进程监控、文件监控、注册表监控、网络监控等,监控黑客入侵蜜罐系统后的一切操作,了解黑客入侵的目的;
- 入侵检测:蜜罐系统的入侵检测模块可以准确的检测出黑客入侵蜜罐的攻击手段,对黑客的入侵过程进行详细的记录;
- 攻击分析:分析主机监控以及入侵检测两个模块获得的数据。
(1)数据控制
通常数据控制一般包括两个方面,一个是防火墙对数据的控制,还有一个是IPS对异常数据的限制(snort_inline)。
- 我们输入命令
vi /etc/init.d/rc.firewall
可以看到开机时配置防火墙阶段的初始化操作;
create_chains():定义了包括blackList等各种链的规则。其中它们分别用来存储原地址以及目标地址的黑名单等,我们从之前的实践可以了解到,防火墙对于输入黑名单的地址会丢弃所有的包,属于白名单的主机接受但不记录,对于那些防护名单内的主机属于不希望被访问到的主机。
接下来的几个Policy创建了不同情况下不同的转发模式
(2)数据捕获
数据捕获通常包括两个方面:
-
防火墙的日志记录:如目的地址、端口、协议等简单的信息;
-
Snort记录的网络流
-
我们可以用过查看iptables进行了解规则列表,如下图。
-
我们可以通过相关命令,如第一个实践限制某些条件进行规则限定。
(3)Snort实际执行参数
通过命令vi /etc/snort/snort.conf
可以查看snort的相关配置参数及其方法,如下图。
(4)Snort_inline实际执行参数
我们打开处于/etc/init.d/hw-snort_inline
文件,向下查看可以看到注释中对于snort中各个参数的介绍,其中
- -D表示Daemon模式;
- -c表示读取config文件;
- -Q表示使用QUEUE模式;
- -l表示输出log文件的目录;
- -t表示改变程序执行时所参考的根目录位置。
(5)防火墙相关服务启动
我们可以通过命令chkconfig --list | grep [服务]
来查看当前服务是否开启,如下图,我们发现防火墙和NIPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件。NIDS是需要手动启动的。
(6)Snort自动升级
我们可以使用命令vi /etc/honeywall.conf
打开文件,在快速筛选后找到update的位置,可以看到其值被设置为“no”,即不自动更新。
二、 实验过程中遇到的问题和解决过程
1. 忘记蜜罐root用户密码
- 一方面经过资料查询,我们在重启服务器后,在系统引导界面点按上下键进入系统引导界面,在kernel选项中点击“e“进入编辑模式,输入/single,进入单用户模式,在命令行中输入
sudo passwd
进行密码修改。 - 另一方面可以直接输入
su -
直接输入密码进入。
三、感想
在此次实践中,我们能够充分了解相关工具的使用机理,从linux系统和windows不同系统角度去观察学习防火墙的作用。