问题 | 回答 |
---|---|
这个做业属于哪一个课程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
这个做业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589 |
我在这个课程的目标是 | 学习教材第六章,了解相关的网络防护技术 |
这个做业在哪一个具体方面帮助我实现目标 | 相关知识点和实践任务 |
网络安全防范技术对应 P2DR 中的 “ 防御“ 环节,设立在被保护主机与外部网络中间。它是被保护主机的屏障, 为主机的安全提供最基础的保护。html
防火墙的定义:防火墙属于一种网络上的访问控制机制,经过在不一样的网络安全域之间创建起安全控制点,对经过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否容许网络访问经过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。linux
防火墙的功能:shell
防火墙的不足:目前的防火墙技术并不能有效地应对某些类犁的安全威胁, 一方面是由于防火墙做为网络边界访问控制机制的先天不足, 另外一方面则是目前防火墙技术方面存在的瓶颈。编程
主要有包过滤技术、基于状态检测的包过滤(或称动态包过滤)技术、代理技术等。ubuntu
包过滤技术:包过滤技术在路由功能基础上进行扩展,经过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,肯定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络的边界处。
vim
基于状态检测的包过滤技术:除了使用静态规则进行安全进行安全策略匹配,还进行数据包的网络链接的上下文关系探测,来肯定是否容许通讯。这种技术相比较传统的包过滤技术安全性更高,数据合法性获得了更有效的保障(对网络性能有必定的影响)。
缓存
代理技术:代理(Proxy)技术是一种重要的计算机安全防御功能,容许客户端经过它与另外一个网络服务进行非直接的链接,也称 “网络代理”。代理技术具体过程为: 客户瑞首先与代理服务器建立链接,接着发出一个对另外的目标服务器的文件或其余资源的链接请求,代理服务器经过与目标服务器链接或从缓存中取得请求的资源,并返回给客户端。根据工做的网络协议栈层次的不一样,代理技术包括应用层代理、电路级代理和NAT代理等。安全
防火墙产品:服务器
防火墙部署方法:网络
netfilter/iptables 组合是目前 Linux 开源操做系统中广泛使用的防火墙技术解决方案,其中 netfilter 是 Linux 内核中实现的防火墙功能模块, iptables 则是应用态的防火墙管理工具。
在 PDR 模型中, 检测技术 (Detection) 在整个模型中扮演了重要的角色。单纯的安全保护措施 (Protection) 并不意味着系统的绝对安全。在入侵者攻陷保护措施以前, 一个安全的系统须要检测出入侵的行为并采起相应的安全响应 (Response) 措施, 因此检测是响应的前提。检测技术主要包括漏洞评估、入侵检测等。
入侵检测技术基本概念:入侵检测, 顾名思义, 就是对入侵行为的检测与发现。在网络攻防技术领域,一次入侵可被定义为任未尝试破坏信息资源的保密性、完整性或可用性的行为。入侵检测即为经过对计算机网络或计算机系统中若干关键点信息的收集和分析, 从中发现入侵行为的一种安全技术。 入侵检测系统 (Intrusion Detection System, IDS) 则是实现入侵检测技术,专门用于入侵行为发现和处理的软件系统或硬件设备。
入侵检测技术评估指标:评估入侵检测技术和系统的两个重要参数是检测率 (True Positive) 和误报率 (False Positve)。其中,检测率是指入侵检测系统捕获到的攻击行为数目和所有攻击数目之比;误报率是指入侵检测系统对正常行为的误报数目与入侵检测系统所输出的所有报警数目之比。理想的入侵检测系统应该同时具备较高的正确检出率和较低的误报率。然而因为存在 “基调悖论 (Base-rate Fallacy)" 现象,故提升检测率和下降误报率是互为矛盾的。
入侵检测技术:信息收集是入侵检测技术的基础,入侵检测系统的可靠性和准确性在很人程度上依赖于所收集信息的可靠性和完备性。在可靠完备地收集到关键信息以后,入侵检测技术最核心的任务是信息分析,从中识别出攻击行为,入侵检测技术从早期发展至今,都是围绕着两种基本的估息分析技术类型,即误用检测和异常检测来进行的。
入侵检测系统的分类与部署:从入侵检测系统的检测数据来源,能够将入侵检测系统分为基于主机的入侵检测系统(Host-based IDS, HIDS)和基于网络的入侵检测系统(Network-based IDS, NIDS)两大类。HIDS 通常用来监视主机信息,其数据源一般包括操做系统审计记录、系统调用序列、应用程序审计信息等;NIDS以其监听到的网络数据包做为分析数据源。HIDS和NlDS右监测视图上都具备缺陷,但二者能够相互补充。
入侵防护系统IPS:入侵防护系统 (Intrusion Prevention System, IPS) 是在入侵检测系统基础之上发展出来的一种网络安全技术和产品形态,有时也被称为内嵌 IDS。与入侵检测系统广泛采用旁路监听方式只对入侵行为进行检测与报警不一样,入侵防护系统采用直接在网络边界位置内联链接的方式,并在检测到入侵行 为后,直接对所关联的攻击网络链接进行阻断处理。
Snort 的特性与基本架构:Snort 被设计成一个跨平台、轻量级的网络入侵检测系统,用 C 语言编写,并采用了标准的捕获数据包函数库 libpcap,,具备很是好的可移植性。Snort 软件的基本架构以下图所示, 主要由四个基本部分组成:
Snort的实现机理:Snort 中四个主要部件以及处理过程描述以下
网络安全事件响应是P2DR模型中响应环节的关键技术手段。事件响应是指针对网络安全事件发生后,所采起的措施和行动,旨在阻止和减少事件所带来的影响。随着安全事件本质变得愈加的多样化,事件响应已经成为成功的网络与信息安全模型和生命周期中的必要组成部分,成功的事件响应须要有丰宫知识和经验的人员基础,充分的组织与计划,以及成熟的方法论指导与技术支撑。
实践任务:配置 Linux 操做系统平台上的 iptables, 或者 Windows 操做系统平台上的我的防火墙,完成以下功能,并进行测试:
本次实验所使用的虚拟机为 kail、seed ubuntu 和 Win XP ,其中 kail 和 Win XP 为测试机,seed 为要配置的主机,ip 地址以下图所示
主机名称 | ip地址 |
---|---|
kail | 192.168.200.3 |
seed | 192.168.200.6 |
Win XP | 192.168.200.4 |
首先查看一下 kail 可否 ping 通 seed
能够ping通
接下来在 seed 中使用命令行iptables -A INPUT -p icmp -j DROP
(ps:-A INPUT
是增长一条规则到 INPUT 链的末尾,-p icmp
是设置链的安全策略,-j DROP
是指定处理方式为丢弃数据包且不通知发送源。)
再次使用 kail ping seed,发现没法ping通(丢包率100%)
使用命令iptables -L
查看规则,发现多了一条 icmp 针对任何位置都不接收访问的规则
最后使用iptables -F
删除自定义规则
完成第一个问题
下面进行第二个实验,只容许 kail 使用 seed 上的 telnet 服务
首先使用 win xp 和 kail 分别使用 telnet 服务链接 seed ,发现均可以链接成功
而后在 seed 上使用命令行iptables -P INPUT DROP
(拒绝一切输入的数据包),这时全部输入 seed 的数据包都被丢弃。
接着使用命令行iptables -A INPUT -p tcp -s 192.168.200.3 -j ACCEPT
(-s
源ip地址,命令行的做用为对源ip地址为192.168.200.3的输入的 tcp 数据包接收),并查看规则表
再次使用 win xp 和 kail 链接 seed ,发现 kail 能够链接成功,win xp 失败
最后使用iptables -F
删除自定义规则,第二个问题完成
任务: 使用 Snort 对给定 pcap 文件(第 4 章中的解
码网络扫描任一个 pcap 文件)进行入侵检测, 并对检测出的攻击进行说明。
在BT4Linux攻击机或WindowsAttacker攻击机上使用 Snort,对给定的 pcap 文件进行入侵检测,得到报警日志。
Snort运行命令提示以下:
首先利用指令snort -r listen.pcap -c /etc/snort/snort.conf -K ascii
对 listen.pacp (第四章所用)进行入侵检测(-r listen.pcap
表示从 listen.pcap 中读取数据,-c
表示使用指定配置文件,-K ascii
表示指定输出 log 文件的编码为ascii)
查看输出,能够看到大部分数据包为 tcp 协议的数据包
在/var/log/snort/目录下能够查找到alert文件,这个文件即输出的日志文件
打开文件,能够查看到攻击机和目的机的 ip 地址,以及能够查看到攻击机使用了nmap 扫描工具,而且进行了 DDOS 攻击
实验完成
分析虚拟网络攻防环境中蜜网网关的防火墙和 IDS/IPS 配置规则,并撰写分析报告,说明蜜网网头是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
具体分析配置规则与启动项文件包括:
分析内容以下。
上述脚本是如何实现蜜网网关的数据捕获和数据控制机制
在蜜网网关中,Snort具备实时流量分析和日志IP网络数据包的能力,可以快速地检测网络攻击,及时地发出报警,主要是对整个网络起预警做用。而iptables防火墙主要负责对数据accept(接受),reject(拒绝),drop(丢弃)等规则的制定和执行。所以 snort 制定一系列复杂的监控规则,一旦发现有违反 snort 规则的网络行为就发出预警信息,并经过必定机制将预警信息传送给iptanles,iptables使用这些预警信息生成安全策略并执行。
对于数据控制,下面来具体看一下脚本的代码,首先查看防火墙的配置文件 rc.firewall (对 shell 编程不太了解,因此看不太懂),其中链的建立函数比较重要
其中-N
表示根据用户指定的名字建立新链,该函数分别建立了黑名单、白名单和防御名单(即入侵防护系统中不容许被外部访问的蜜罐主机),以及一些协议数据包的处理规则链。三个名单的做用在后续代码的注释中给出
对于黑名单,对源地址或者目的地址属于黑名单的主机,丢弃全部包且不记录
对于白名单,对源地址或者目的地址属于白名单的主机,接受全部包且不记录
对于防御名单,对源地址或者目的地址属于白名单的主机,丢弃全部包且记录
固然配置文件中还有许多默认规则函数,就不一一列举了
对于数据捕获,主要包括防火墙的日志记录:记录的只是简单的信息如目的地址/端口、源地址/端口、协议、长度等;Snort记录的网络流。
获取 IPTables 的实际规则列表、 Snort 和 Snort_inline 的实际执行参数。
IPTables 的实际规则列表:首先经过命令行iptables -t filter -L
查看 IPTables 的规则表(-t
是指定规则表,-L
表示列表。经过shift键+Fn键+上下键
来翻页),能够看到一些默认的规则链都被关闭了
Snort的实际执行参数:经过命令行vim /etc/init.d/snortd
,snortd是snort启动的脚本文件,snort.conf是具体预警的规则设定
能够看出脚本中定义了许多默认参数,例如默认使用 snort.conf 规则,默认监听网卡为eth0,默认存储日志路径为 /var/log/snort 等等。
Snort_inline 的实际执行参数:经过命令行vim /etc/init.d/hw-snort_inline
查看Snort_inline脚本文件,能够观察到实际运行的参数,以及在最前面定义的参数。
其中-D
表示Daemon模式,-c
表示读取config文件,-Q
表示使用QUEUE模式,-l
表示输出log文件的目录,-t
表示改变程序执行时所参考的根目录位置
蜜网网关开机以后,防火墙、 NIDS、 NIPS 是如何启动的?
经过命令行chkconfig --list | grep [服务]
能够查询到开启服务的状况,其中1表示单用户模式,2表示无网络链接的多用户命令行模式,3表示有网络链接的多用户命令行模式,4表示不可用,5表示带图形界面的多用户模式,6表示从新启动。
能够看到 iptables 和 snort_inline(NIPS)是随系统开机而开启的,而snort(NIDS)须要手动开启
Bonus: 蜜网网关中的 Snort 规则是如何自动升级的?
能够从vim /etc/honeywall.conf来看 snort 的 rule 是否自动更新
能够看到默认为不自动更新
若是想要开启自动更新,须要按照Oinkmaster使用教程来修改/etc/oinkmaster.conf
文件
经过对防火墙以及入侵检测系统的结构和运行机理的学习,以及实践防火墙的配置和 snort 入侵检测工具的使用,初步了解了网络防护技术的相关知识。实践过程当中发现了本身动手能力差的问题,之后还要多多实践。
iptables详解
Snort与防火墙Iptables联动
iptables命令详解和举例
Snort 命令参数详解 网络攻防技术与实践