20199116 2019-2020-2 《网络攻防实践》第六周作业
20199116 2019-2020-2 《网络攻防实践》第六周作业
前言
问题 | 解答 |
---|---|
这个作业属于哪个课程 | 《网络攻防实践》 |
这个作业的要求在哪里 | <作业要求> |
我在这个课程的目标是 | 熟练掌握网络攻防知识,学习第五章TCP/IP网络协议攻击 |
这个作业在哪个具体方面帮助我实现目标 | 学习Linux操作命令以及虚拟机的应用;学习网络攻防知识,为以后研究打下基础 |
作业正文 | 如下 |
其他参考文献 | 见正文最后 |
1.实践内容
1.1安全模式
- 动态可适应网络安全模型基于闭环控制理论,典型模型为:PDR模型以及在此基础上提出的P2DR模型等。
- 安全模型
- 静态安全模型:对网络进行风险分析,制定相应的安全策略,然后采取安全技术作为防护措施,主要针对固定、静态的威胁和环境弱点。
- PDR安全模型:基于闭环控制理论的时间动态可适应网络安全模型,以经典的网络安全不等式P>D+R(保护、检测、响应)为本质基础,并提出安全性可量化和可计算的观点。
- P2DR安全模型:基于PDR安全模型提出,增加了Policy分析制定安全策略,并以此为核心,所有的防护、检测、响应都是依据安全策略实施的。
1.2网络安全防范技术与系统
网络安全防范技术设立在被保护主机和外部网络中间,它是被保护主机的屏障,为主机的安全提供最基础的保护。
1.2.1防火墙技术概述
-
防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。
-
防火墙的功能
最基本的功能就是控制在计算机网络中不同信任程度网络域之间传输的数据流。
(1)检查控制进出网络的网络流量
(2)防止脆弱或不安全的协议和服务
(3)防止内部网络信息的外泄
(4)对网络存取和访问进行监控审计
(5)防火墙可以强化网络安全策略并集成其他安全防御机制 -
防火墙的不足
(1)先天:无法防范包括来自网络内部的安全威胁、通过非法外联的网络攻击和计算机病毒传播的传播。
(2)技术瓶颈:无法防范包括针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击和隐蔽通道进行通信的特洛伊木马或僵尸网络。
1.2.2防火技术和产品
- 包过滤技术
包过滤技术是指网络设备(路由器或防火墙)根据包过滤规则检查所接收的每个数据包,做出允许数据包通过或丢弃数据包的决定。包过滤规则主要基于IP包头信息设置,包括如下内容:
1、TCP/UDP的源或目的端口号
2、协议类型:TCP、UDP、ICMP等
3、源或目的IP地址
4、数据包的入接口和出接口
数据包中的信息如果与某一条过滤规则相匹配并且该规则允许数据包通过,则该数据包会被转发,如果与某一条过滤规则匹配但规则拒绝数据包通过,则该数据包会被丢弃。如果没有可匹配的规则,缺省规则会决定数据包是被转发还是被丢弃。
- 基于状态检测的包过滤技术
也称动态包过滤。除了使用静态规则进行安全进行安全策略匹配,还进行数据包的网络连接的上下文关系探测,来确定是否允许通信。这种技术相比较传统的包过滤技术安全性更高,数据合法性得到了更有效的保障(对网络性能有一定的影响)。
- 代理技术
允许客户端通过代理与网络服务进行非直接的连接,也称“网络代理”。主要是客户端与代理服务器连接,代理服务器再与目标服务器连接。代理技术包括应用层代理(工作在应用层)、电路级代理(工作在传输层)和NAT代理(工作在网络层)等。
具体过程:客户端首先与代理服务器创建连接。接着发出一个对另外的目标服务器的文件或者其他资源的连接请求。代理服务器通过与目标服务器连接或从缓存中取得请求的资源,并返回给客户端。
- 防火墙部署方法:
- 包过滤路由器:带有包过滤防火墙功能的路由器。
- 双宿主堡垒主机:应用代理网关作为双宿主堡垒主机。
- 屏蔽主机:堡垒主机和包过滤的结合。
- 屏蔽子网:在屏蔽主机的基础上增加第二道包过滤路由器。
1.2.3Linux开源防火墙netfilter/iptables介绍
netfilter/iptables组合是目前Linux开源操作系统中普遍使用的防火墙技术解决方案。
netfilter是Linux内核中实现的防火墙功能模块
iptables是应用态的防火墙管理工具。
-
工作原理:
在nefilter/iptables防火墙系统中,netfilter组件位于Linux的内核空间中,实现了静态包过滤和状态报文检查(即动态包过滤)基本防火墙功能,此外也支持NAT网络地址转换等其他额外功能,并提供了多层API接口以支持第三方扩展,netfilter具备构建防火墙、NAT共享上网、利用NAT构建透明代理,以及构建QoS或策略路由器等安全功能。Iptables则是工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为nefilter配置各种防火墙过滤和管理规则。 -
规则
规则是用户预定义的,也是我们常说的防火墙规则,配置防火墙的主要工作就是添加、修改和删除这些规则。由一个目标和很多匹配组成。匹配如interface(e.g. eth0)、协议类型、源IP/端口、目的IP/端口等。目标是用户自定义的链、一个内置的特定目标或者是一个目标扩展,如ACCEPT、DROP、REJECT、SNAT、DNAT等。 -
链
链是顺序执行规则的编排方式,在复杂的网络环境中,管理员需求这种可控的、有序执行的规则应用方式。iptables 提供了5条链:INPUT链、OUTPUT链、FORWARD链、路由前链(Pre-Routing)、路由后链(Post-Routing)。 -
表:表的本质就是规则集的组织形式。iptables提供了以下5种表:filter表(包过滤处理)、nat表(网络地址转换)、mangle表(特殊目的数据包包修改)、raw表、security表(强制访问)。
filter表、nat表、mangle表是netfilter/iptables中包含三个最基本的规则表,在每张规则表中包含一些已缺省定义的规则链,以及可由用户自定义的规则链。
iptables为用户提供了配置netfilter规则的命令行接口,其命令语法为:
iptables [-t table] command [match] [target]
其中-t指定配置规则所在的表,缺省表包括filter、nat、mangle、raw 等。
cammand就是告诉iptables要做什么,比如-A就是在链表之后插入规则。match则是规则,满足规则的数据包才会被采取措施。target是满足规则之后要做什么,比如放行数据包ACCEP
1.2.4其他网络防御技术
- VPN
- 内网安全管理
- 内容安全管理SCM
- 统一威胁管理
1.3网络检测技术与系统
1.3.1入侵检测技术
入侵检测通过对计算机网络或计算机系统若干关键点信息的收集与分析,能够有效地对网络进行监测,提供外部攻击、内部攻击和误操作的实时检测与应对。是防火墙之后的第二道安全屏障。
-
入侵检测评估指标
- 检测率:捕获到的攻击行为与全部攻击行为的比例。
- 误报率:错误报警数目与全部报警数目的比例。
-
入侵检测技术类型
- 误用检测:误报率较低,只收集与特征描述相关的数据集合。原理:通过收集已知入侵行为的特征并进行描述,形成攻击特征库,然后对收集信息与库进行匹配,符合特征描述的行为就被视为入侵。
- 异常检测:能检测出未知的入侵,但误报率较高。原理:入侵者的行为与正常用户行为存在差异性,由这些差异可以检测出入侵行为。即建立起系统的正常模式轮廓,如果实时获得的系统(或用户)轮廓值与正常值超出指定阈值,就进行入侵报警。
- 二者常结合使用
-
入侵检测系统
- 基于主机的入侵检测系统HIDS:监视主机信息
- 基于网络的入侵检测系统NIDS:监听网络数据包
- 根据入侵检测系统所采用的体系结构分类,分为:集中式、层级式、协作式。
-
入侵防御系统IPS
- 也叫内嵌式入侵检测,即对检测到的异常行为或者与特征库匹配的行为直接进行阻断处理。
1.3.2Snort
功能:数据包嗅探、数据包记录和分析、入侵检测
四个基本部分:数据包嗅探器、预处理器、检测引擎、输出模块
2.实践过程
实践一:防火墙配置
任务:配置Linux平台上的iptables,完成如下功能并测试
(1)过滤ICMP数据包,使主机不接受ping包。
(2)只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。
(1)这里我用winxp靶机ping kali,kali作为主机。
- 首先用winxp靶机看能否ping通kali
- 之后我们在kali上通过下述指令使之不接受icmp的数据包。其中-A是追加一条规则,INPUT这个规则表示数据包入口,-p用于匹配协议,-j用于指定如何处理
- 我们再从winxp靶机上ping kali发现不通,在kali中通过
iptables -L
查看规则发现多了一条对icmp在任何位置都不能访问的规则
- 之后我们通过如下指令,-D即delete删除的意思。再从winxp上ping kali即可ping通
- 也可用
iptables -F
删除自定义规则。
(2)在这里我只允许winxp(192.168.200.3)访问seedubuntu(192.168.200.4)的telnet
- 首先我们先确定kali和winxp两台机器都能telnet
-
然后在seedubuntus上执行
iptables -P INPUT DROP
指令,这时所有数据包都无法流入。 -
再seedubuntus上执行指令
iptables -A INPUT -p tcp -s 192.168.200.3 -j ACCEPT
,开启WinXP对本机的tcp服务。并用iptables -L
查看规则。
- 我们再分别去kali和win靶机查看telnet情况,可以发现winxp正常,而kali无法访问(一直在trying)
- 最后记得执行
iptables -F
和iptables -P INPUT ACCEPT
两条指令恢复之前的状态。
实践二:snort
任务:使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明
-
第四章已经给kali安装过snort,并利用之前老师给的listen.pcap文件,该文件已经复制在kali的/home/kali 和/home/kali/Downloads的目录下了。
-
cd /home/kali/Downloads
之后,在此目录下,利用指令snort -r listen.pacp -c /etc/snort/etc/snort.conf -K ascii
对listen.pcap进行入侵检测,这里-K ascii是为了指定输出log文件的编码为ASCII,这样打开日志文件不会乱码。 -
查看输出,我们可以看到检测出的数据包大部分为TCP数据包。
- 此时snort会在默认目录生成一个日志文件,进入报警日志目录
cd /var/log/snort
, 查看日志文件vim alert
,可以发现本次攻击是使用nmap发起的。攻击主机的IP地址是 172.31.4.178 ,网络扫描的目标IP地址是 172.31.4.188 。
实践三:分析蜜网网关的防火墙和IDS/IPS配置规则。
任务:说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求
(1)上述脚本是如何实现蜜网的数据捕获和数据控制?
(2)获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
(3)蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
(4)Snort规则是如何自动升级的?
1、首先理清防火墙和入侵检测技术的关系。iptables负责对数据accept、reject和drop;snort主要是预警作用,不能阻拦。所以就是用snort来监控,有违反规则的行为就发出预警信息,告诉iptables,从而iptables去阻断违反规则的连接。
2、数据控制和数据捕获
通常数据控制包括两个方面,一个是防火墙对数据的控制,还有一个是IPS对异常数据的限制。
su -
进行提权root,否则下面所有命令都执行不了。
接着打开防火墙的文件vim /etc/init.d/rc.firewall
。
大致看一下文件,比如创建了三个链,分别是黑名单、白名单、防护名单(FenceList)。
还定义了很多协议数据包的处理规则如下
关于数据捕获,无论是iptables还是snort,都能够通过记录日志的形式来捕获网络连接信息,包括源ip/端口,目的ip/端口,以及进行连接的协议等。
3、iptables的实际规则列表
通过指令iptables -t filter -L
来查看规则列表,-t是指定规则表,-L表示列表。不知道为什么我不能翻页,看到同学是通过shift键+Fn键+上下键来翻页(但我还是不行)。
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脚本
我们能看到一些默认信息
以及一些运行指令。其中-c表示读取config文件;-l表示输出log文件的目录;-Q,即QUEUE模式,是用于将snort_inline通过QUEUE将防护规则传给iptables。
6、防火墙、NIDS、NIPS的启动
通过指令chkconfig --list | grep [服务]
来查询当前服务是不是开启的。
chkconfig命令主要用于检查,设置系统的各种服务。若0-6全部为off,则不自动启动。
可以看到防火墙和NIPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件。NIDS不会自动启动。
7、 Snort规则如何自动升级
cd /etc
在/etc目录下使用命令“vim honeywall.conf”打开honeywall配置文件,这个里面可以看到一些,如我们配置的IP地址、子网掩码等等。
我们可以看到snort规则,默认是不自动更新的。还可以看到Oinkmaster字样,这是个自动更新的软件。
在/etc目录下vim oinkmaster.conf
,打开oinkmaster文件,可以看见更新文件。
3.实践中遇到的问题
- 问题1:打开蜜网网关的文件后,不知道如何退出该文件
- 问题1的解决:直接键盘输入
:wq
;如果还是不行,出现如下图情况,就键盘直接输入:wq!
- 问题2:执行snort命令,找不到listen.pcap文件,我试了好几个命令,还换了文件的目录位置。
- 问题2的解决:发现自己把listen.pcap文件写错了,写成了listen.pacp文件,无语。
- 问题3:通过指令
iptables -t filter -L
来查看规则列表,不知道为什么我不能翻页,看到同学是通过shift键+Fn键+上下键来翻页(但我还是不行)。 - 注意:打开蜜罐网关,记得输入
su -
进行提权,不然命令执行不了
4.实践总结
此次实践内容相比之前的容易很多,但还是出现了细节问题,比如蜜网网关,进入某个文件后,不知道怎么退出。应该是:wq
,之前安装蜜罐的时候有用到过的,自己忘了。