20199304 2019-2020-2 《网络攻防实践》第六周作业
20199304 2019-2020-2 《网络攻防实践》第6周作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
---|---|
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589 |
这个作业在哪个具体方面帮助我实现目标 | 学习防火墙和入侵检测技术 |
作业正文 | 见一和二 |
1.实践内容
1、安全模型
- 静态安全模型:对网络进行风险分析,制定相应的安全策略,然后采取安全技术作为防护措施,主要针对固定、静态的威胁和环境弱点。
- 动态可适应网络安全模型基于闭环控制理论,典型模型有PDR(Protection、Detection、Response)及P^2DR(Policy、Protection、Detection、Response)
- PDR安全模型是基于时间的动态安全模型,如果信息系统的防御机制能抵御入侵时间Pt,能超过检测机制发现入侵的时间Dt和响应机制有效应对入侵时间Rt之和,那么这个系统就安全。
- P2DR中网络安全=根据风险分析制定安全策略P+执行安全防护策略P+实时检测D+实时响应R。安全策略是核心。
- 防护机制通常采用静态安全技术,主要有防火墙、加密、身份认证、访问控制等。
- 检测机制中检测技术主要有入侵检测和漏洞评估
2、网络安全防范技术与系统
2.1防火墙概述
- 简介:
- 置于不同的网络安全域中,对网络流量或访问行为实施访问控制的安全组件或设备。
- 防火墙的功能:
- 检查控制进出网络的网络流量(流经防火墙的)
- 防止脆弱或不安全的协议和服务
- 防止内部网络信息的外泄
- 对网络存取和访问进行监控审计
- 防火墙可以强化网络安全策略并集成其他安全防御机制
- 防火墙的不足
- (1)因为防火墙作为网络边界访问控制机制的先天不足
- 无法防范网络内部的安全威胁
- 无法防范通过非法外联的网络攻击
- 无法防范计算机病毒传播
- (2)防火墙技术方面的瓶颈
- 针对开放服务安全漏洞的渗透攻击
- 针对网络客户端程序的渗透攻击
- 基于隐蔽通道进行通信的特洛伊木马或僵尸网络
- (1)因为防火墙作为网络边界访问控制机制的先天不足
2.2防火墙技术和产品
- 包过滤技术
- 概念:在路由功能上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否转发该数据包,将一些不符合安全策略的数据包阻挡在网络边界处。
- 仅根据数据包自身包含的信息进行检查过滤
- 基于状态检测的包过滤技术
- 概念:维护所有通过防火墙的网络连接记录,依次确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。
- 会试图跟踪数据包在网络连接上的上下文关系,并以网络连接状态作为一个附加匹配标准
- 代理技术
- 允许客户端通过它与另一个网络服务进行非直接的连接。
- 过程:客户端首先与代理服务器创建连接,接着发出一个对另外的目标服务器的文件或其他资源的连接请求,代理服务器通过与目标服务器连接或从缓存中取得请求的资源,并返回给客户端。
- 根据工作的网络协议栈层次的不同,分为应用层代理、电路级代理和NAT代理。
- 防火墙产品
- 集成包过滤功能的路由器
- 基于通用操作系统的防火墙软件产品
- 基于安全操作系统的防火墙
- 硬件防火墙设备
- 防火墙部署
- 包过滤路由器:将其作为内部和外部网络之间的唯一连接点,路由器在完成路由转发功能的同时,过滤数据包。
- 双宿主堡垒主机:应用代理网关作为双宿主堡垒主机。
- 屏蔽主机:屏蔽路由和堡垒主机双重安全设施。
- 屏蔽子网:屏蔽主机基础上装了第二个包过滤防火墙
2.3netfilter/iptables
- 概念:netfilter/iptables 组合是目前Linux开源操作系统中普遍使用的防火墙技术解决方案.
- 其中 netfilter 是Linux内核中实现的防火墙功能模块,
- iptables 是应用态的防火墙管理工具。
- netfilter/iptables包含三个最基本的规则表:
- 用于包过滤处理的filter表、
- 用于网络地址转换处理的nat表、
- 用于特殊目的数据包修改的mangle表。
- iptables的命令的语法为
iptables [-t table] command [match] [target]
。-t
指定配置规则所在的表,缺省表包括filter、nat、mangle、raw等。cammand
就是告诉iptables命令要做什么,比如-A
就是在链表之后插入规则,-D
就是指定匹配的规则从链中删除该规则。match
部分为规则匹配条件,满足规则的数据包才会被采取措施。target
是满足规则之后要做什么,比如放行数据包ACCEPT
- netfilter/iptables的NAT机制:包括IP伪装、透明代理、端口转发和其他形式的网络地址转换技术。
- IP伪装:在内部网络使用私有IP,如通过防火墙可以绑定一个外网IP,对数据包进行源IP伪装。
- SNAT机制:SNAT记住可以按照用户制定的规则,将源IP灵活的变成各种IP,IP伪装是一种SNAT机制。值得注意,SNAT机制需要在POSTOUTING链中完成,这样才能让路由、包过滤在源IP改变之前做完。
- DNAT机制:DNAT在PREROUTING链中完成,需要用到-i选项。
2.4其他网络防御技术
- VPN虚拟专用网
- 利用大规模网络上的公共网络链路代替企业内部专线构建的安全专用网络
- 主要包括IPsec VPN,SSL VPN MPLS VPN
- 内网安全管理
- 分为终端安全管理、终端运维管理、终端补丁分发管理和系统日志管理
- 内容安全管理SCM
- 主要关注网络中传输内容的安全,深入分析传输数据包的内容
- 统一威胁管理UTM
- 指由硬件、软件和网络技术组成的具有专门用途的设备。
- 将多种安全特性集成在一个硬件设备里,构成一个标准的统一管理平台
3、网络检测技术与系统
3.1入侵检测技术
- 入侵检测评估指标
- 检测率:捕获到的攻击行为与全部攻击行为的比例。
- 误报率:错误报警数目与全部报警数目的比例。
- 入侵检测技术类型
- 误用检测:误报率较低,只收集与特征描述相关的数据集合
- 异常检测:能检测出未知的入侵,但误报率较高
- (注)二者常结合使用
- 入侵检测系统
- 基于主机的入侵检测系统HIDS:监视主机信息
- 基于网络的入侵检测系统NIDS:监听网络数据包
- 入侵防御系统IPS
- 也叫内嵌式入侵检测,即对检测到的异常行为或者与特征库匹配的行为直接进行阻断处理。
3.2Snort
- 功能:
- 数据包嗅探、
- 数据包记录和分析、
- 入侵检测
- 四个基本部分:
- 数据包嗅探器、
- 预处理器、
- 检测引擎、
- 输出模块
2.实践过程
实践一:防火墙配置
-
任务:配置Linux平台上的iptables,完成如下功能并测试
- (1)过滤ICMP数据包,使主机不接受ping包。
- (2)只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。
-
【解答】(1)过滤ICMP数据包,使主机不接受ping包。
-
先在SEED上 ping 主机kali,发现在正常状态下可以 ping 通
-
在kali执行
iptables -A INPUT -p icmp -j DROP
指令使得主机不接受icmp的数据包。其中 -A 是追加新规则于指定链的尾部, INPUT 表示数据包入口(规则), -p 用于匹配协议, -j 用于指定如何处理(ACTION)。再次查看规则,发现多了一条icmp针对任何位置不允许访问的规则。
-
我们再从SEED靶机上ping kali发现不通
-
在主机kali上通过
iptables -L
查看规则,发现多了一条对icmp在任何位置都不能访问的规则
-
执行
iptables -D INPUT -p icmp -j DROP
指令,-D即delete删除的意思。(也可用iptables -F
删除自定义规则。)iptables -L
发现不能访问规则已删除
-
此时从SEED靶机上ping kali发现已通
-
【解答】(2)只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。
-
允许kali(192.168.200.3)访问seedubuntu(192.168.200.4)的telnet
-
首先我们先确定kali和win都能telnet
-
然后使用
iptables -P INPUT DROP
指令,这时所有数据包都无法流入。 -
再使用指令
iptables -A INPUT -p tcp -s 192.168.200.3 -j ACCEPT
,开启kali对本机的tcp服务。并用iptables -L查看规则。
-
我们再分别去kali和win靶机查看telnet情况,可以发现kali正常,而win无法访问
-
最后我们通过
iptables -F
和iptables -P INPUT ACCEPT
两条指令恢复之前的状态。
实践二:Snort
-
任务:使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明
-
listen.pcap
之前已下载 -
首先利用指令
snort -r /home/kali/listen.pcap -c /etc/snort/snort.conf -K ascii
对 listen.pacp 进行入侵检测, 其中 -c 表示选择snort配置文件, -r 表示从pcap格式的文件中读取数据包, -K ascii 是用来指定输出日志文件的为ASCII编码。 -
然后可以查看输出里检测出的数据包,可以看到大部分数据流为tcp会话
-
此时snort会在默认目录生成一个日志文件,进入报警日志目录
cd /var/log/snort
, 查看日志文件vim alert
,可以发现本次攻击是使用nmap发起的。攻击主机的IP地址是 172.31.4.178 ,网络扫描的目标IP地址是 172.31.4.188 。
实践三:分析蜜网网关的防火墙和IDS/IPS配置规则。
-
任务:说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求
- 上述脚本是如何实现蜜网的数据捕获和数据控制?
- 获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
- 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
- Snort规则是如何自动升级的?
-
1、首先理清防火墙和入侵检测技术的关系。iptables负责对数据accept、reject和drop,snort主要是预警作用,不能阻拦。所以就是用snort来监控,有违反规则的行为就发出预警信息,告诉iptables,从而iptables去阻断违反规则的连接。
-
2、数据控制和数据捕获
- 通常数据控制包括两个方面,一个是防火墙对数据的控制,还有一个是IPS对异常数据的限制。我们看一下其防火墙的文件
vim /etc/init.d/rc.firewall
。 - 大致看一下文件,比如创建了三个链,分别是黑名单、白名单、防护名单(FenceList)。
- 协议数据包的处理规则如下
- 关于数据捕获,无论是iptables还是snort,都能够通过记录日志的形式来捕获网络连接信息,包括源ip/端口,目的ip/端口,以及进行连接的协议等。
- 通常数据控制包括两个方面,一个是防火墙对数据的控制,还有一个是IPS对异常数据的限制。我们看一下其防火墙的文件
-
3、iptables的实际规则列表
- 通过指令
iptables -t filter -L
来查看规则列表,-t是指定规则表,-L表示列表。 - 通过shift键+PG UP/DN来翻页。可以看到一些规则如OUTPUT、INPUT、FORWARD都已经被关闭了。
- 通过指令
-
4、snort实际执行参数
- 执行命令
vim /etc/init.d/snortd
,snortd是snort启动的脚本文件,snort.conf是具体预警的规则设定,分析下图如,默认使用snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort等等。
- 执行命令
-
5、snort_inline实际执行参数
- 执行命令
vim /etc/init.d/hw-snort_inline
打开snort_inline脚本 - 我们能看到一些默认信息
- 执行命令
- 下面是一些运行指令。其中的-Q,即QUEUE模式,是用于将snort_inline通过QUEUE将防护规则传给iptables。
-
6、防火墙、NIDS、NIPS的启动
- 通过指令
chkconfig --list | grep [服务]
来查询当前服务是不是开启的。 - chkconfig命令主要用于检查,设置系统的各种服务。若0-6全部为off,则不自动启动。
- 可以看到防火墙和NIPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件。NIDS不会自动启动。
- 通过指令
-
7、 Snort规则如何自动升级
- 在/etc目录下使用命令
vim honeywall.conf
打开honeywall配置文件,这个里面可以看到一些,如我们配置的IP地址、子网掩码等等。
- snort规则:默认是不自动更新的。还可以看到Oinkmaster字样,这是个自动更新的软件
- 在/etc目录下使用命令
- 打开oinkmaster.conf文件,可以看到更新文件
3.学习中遇到的问题及解决
-
问题1:在做实验一时ping不通kali
-
问题1解决方案:kali又又叒断网了
-
问题2:在查看iptables的实际规则列表时不能翻页
-
问题2解决方案:通过查询,可以使用 shift键+PG UP/DN来翻页。
4.实践总结
本次实践较为顺利,遇到的问题大多在之前已经发生过,所以解决起来比较方便。
但是本次实验需要理解的内容比较多,除实验必要的知识点外,其他的内容理解还不够,接下来需要慢慢学习。