20199123 2019-2020-2 《网络攻防实践》第6周作业
20199123 2019-2020-2 《网络攻防实践》第6周作业
0 总体结构
本次作业属于那个课程 | 《网络攻防实践》 |
---|---|
这个作业要求在哪里 | 《网络攻防实践》第六周作业 |
我在这个课程的目标是 | 学习网络攻防相关技术、掌握网络攻防相关能力 |
这个作业在哪个具体方面帮助我实现目标 | 复习TCP/IP协议基本知识,学习防火墙和入侵检测技术 |
作业正文 | 下述正文 |
其他参考文献 | 见文末 |
1.实践内容
1.1 安全模型
-
信息安全主要用于保护那些处理和传递的秘密数据,以确保其机密性。
-
为了保障被称为“信息安全金三角”的CIA安全属性,即机密性、完整性和可用性,信息安全领域提出了一系列的安全模型来指导信息系统安全体系建设,以增强信息系统的安全性。
-
在理论模型方面,先后出现了专门针对机密性的BLP(Bell-La Padula)多级安全策略模型、针对完整性保护的Biba模型和Clark-Wilson模型等。
-
为了评估信息系统是否能够满足特定的安全需求和属性,1985年美国国防部国家计算机安全中心(NCSC)公布了可信任计算机系统评估准则(TCSEC),其将计算机系统的安全划分为A、B、C、D这4个等级,共7个级别,并分别定义了各个安全等级所需要实现的安全机制及安全特性。
-
之后,欧洲提出了ITSEC安全评测标准,将机密性、完整性和可用性作为评估的标准之一。之后美国又制定了国际统一的安全评估标准,即通用准则(Common Criteria),称为ISO 15408。
-
传统的安全评估和防范方法是通过对网络进行风险分析,制定相应的安全策略,然后采取一种或多种安全技术作为防护措施的。但是安全是一个相对的、动态的、不断完善的过程,需要适应变化的环境并能做出相应的调整以确保安全防护。
-
动态可适应网络安全模型基于闭环控制理论,典型模型是PDR(Protection、Detection、Response)模型以及在其基础上提出的P2DR(Policy、Protection、Detection、Response)模型等。
-
PDR安全模型是一个基于时间的动态安全模型,以经典的网络安全不等式Pt>Dt+Rt为本质基础,并提出安全性可量化和可计算观点。
从图中可知如果信息系统的防御机制能够抵御入侵时间Pt,能够超过检测机制发现入侵时间Dt和响应机制有效应对入侵的时间Rt之和,那么这个信息系统就是安全的。
-
P2DR安全模型基本描述为:网络安全=根据风险分析制定安全策略(Policy)+执行安全防护策略(Protection)+实时监测(Detection)+实时响应(Response)。安全策略是模型的核心,所有的防护、检测、响应都是依据安全策略实施的。
1.2 网络安全防范技术与系统
1.2.1 防火墙技术概述
-
防火墙一词最开始源自于建筑工程学领域,随后引入到计算机领域后,指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备;
-
防火墙的功能:防火墙可以在网络协议栈的各个层次上实施网络访问控制机制,对网络流量和访问进行检查和控制。根据其工作的网络协议栈层次,防火墙技术可以分为包过滤、电路级网关和应用层代理技术,通常情况下认为,包过滤技术工作在网络层,电路级网关工作在传输层,而应用层代理工作在应用层。
安全功能 详细内容 检查控制进出网络的网络流量 最基本的功能。通过检查网络流量的包头和协议状态信息,依据网络管理员设置的安全策略做出放行或拒绝网络流量和访问的行为。 防止脆弱或不安全的协议和服务 防火墙可以通过过滤脆弱或不安全的服务而降低内部网络的安全风险,同时保护网络免受基于路由的攻击。 防止内部网络信息的外泄 通过利用防火墙对内部网络进行划分,实现内部网重点网段的隔离,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响;同时防火墙可以隐蔽那些透露的内部细节信息。 对网络存取和访问进行监控审计 如果所有的网络访问都经过防火墙,那么防火墙可以记录访问并做日志记录便于进行审计。 防火墙可以强化网络安全策略并集成其他安全防御机制 通过以防火墙为中心的网络边界安全方案配置,能将许多安全机制(如口令、加密、身份认证、审计等)都配置在防火墙上。 -
防火墙的不足
不足 作为网络边界防护机制而先天无法防范的安全威胁 由于技术瓶颈问题目前还无法有效防范的安全威胁 详细描述 来自网络内部的安全威胁 针对开放服务安全漏洞的渗透攻击 通过非法外联的网络攻击 针对网络客户端程序的渗透攻击 计算机病毒传播 基于隐蔽通道进行通信的特洛伊木马或僵尸网络
1.2.2 防火墙技术和产品
-
包过滤技术
-
在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络的边界处。
-
示意图如下:
-
并不存储关于网络连接状态的任何信息,因此不能引入身份认真,而仅仅根据数据包自身包含的信息进行检查和过滤。
-
对小型网络来说,包过滤是一种经济适用的防火墙,工作在网络层,目前路由器设备中基本都支持一定程度的包过滤功能,因此包过滤也被称为路由器ACL机制。
-
-
基于状态检测的报包过滤技术
-
又称为动态包过滤。维护所有通过防火墙的网络连接记录,并依此确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。
-
示意图如下:
-
动态包过滤技术需要跟踪数据包的网络连接状态,对于TCP/UDP网络协议数据包,进行跟踪的方式有所区别。其中TCP连接有三次握手,因此动态包过滤的防火墙对当前数据包所属的网络连接进行识别,并依据TCP网络协议状态机来跟踪和维护这些网络连接的状态;对于UDP是无连接的因此其包过滤也相对于简单。
-
-
代理技术
-
代理(Proxy)技术是一种重要的计算机安全防护功能,允许客户端通过它与另一个网络服务进行非直接的连接,也称“网络代理”。
-
代理技术有利于保障网络安全,防止网络攻击,是一类与包过滤技术完全不同的防火墙技术,提供代理服务的计算机或其他类型的网络节点称为代理服务器。
-
代理技术具体过程为:
-
代理技术分为应用层代理技术、电路级代理技术、NAT代理技术
-
应用层代理技术:针对某一种具体的应用层网络服务提供细致而安全的网络保护,能够理解应用层协议的数据内容,并进行深入全面的安全检查,从而为网络访问提供更好的安全保障。、
应用层代理提供了很好的安全性,包括:1. 网络内部的用户不直接与外部服务器通信,应用代理可以起到隐藏内部网络信息的作用;2. 客户与服务器之间的所有通信数据必须通过代理进行中转,而应用代理能够理解应用层数据内容格式,可以对应用层数据进行严格的检查;3. 应用代理采用存储转发机制,因此可以容易地实现在线审计;4. 应用代理可以提供用户级身份认证机制;
缺点:1. 对于每种不同的应用层服务,都需要相应一种应用代理服务程序,且对用户不透明,需要用户配置代理;2. 应用代理的解析和处理内容多,因而处理速度较慢,不适合应用在主干网络中;3. 不同服务的代理因为安全和效率方面原因不同布置在同一服务器上,需要为每种服务单独设置一个代理服务器,代价较高;4. 通常无法支持非公开协议的服务。
-
电路级代理技术:和应用代理的技术原理和工作过程基本类似,不同的是,电路级代理工作在传输层,而非应用代理所在的应用层,使用电路级代理可以同时为多种不同的应用服务提供支持,而不需要为不同的服务配置不同的代理程序;
-
能够在中继过程中检查和处理各种异常的IP数据包,并和应用代理一样能够隐藏内部网络信息,同时也可以使用用户级的身份认证机制以提供额外的安全保障;
-
NAT代理技术:NAT(Network Address Translation),即网络地址转换是防火墙上通常实现的一项特殊代理技术,经常用于小型办公网络和家庭网络
NAT技术工作在网络层,基本工作原理如下图所示:1. 内部网络向外部网络发IP数据包,使用私有IP地址段作其源地址;2. 在到达NAT代理后,将源IP地址和源端口部分替换成代理服务器的IP地址和另一指定的源端口;3. 同时NAT代理将维护地址转换映射列表,NAT代理在接收到网络连接的响应包时,将目的地址和目标端口转换为私有网段地址和源端口号,并发送给私有网段中的客户主机。
-
-
-
防火墙产品
- 集成包过滤功能的路由器:特点是防火墙功能是附加在路由器之上的,并且只有简单的包对网络数据包进行过滤;
- 基于通用操作系统的防火墙软件产品:功能强大,在其上增加功能非常方便,但是自身的安全性和处理效率却存在严重的问题;
- 基于安全操作系统的防火墙:去掉了通用操作系统防火墙产品的无关组件和模块,保留支撑防火墙安全功能所必需的组件,加固系统内核,强化了安全防护;
- 硬件防火墙设备:主要应用于安全性和网络性能要求较高的大型企业客户。
-
防火墙部署方法:
-
包过滤路由器:将带有包过滤防火墙功能的路由器作为内部网络和外部网络之间唯一的连接点;
-
双宿主堡垒主机:使用应用代理网关作为双宿主堡垒主机,代替了包过滤路由器,这种部署方式有公网IP地址连接外部网络,私有IP地址连接内部网络;
-
屏蔽主机:实际上是包过滤防火墙和应用代理技术的集成部署,采用屏蔽路由和堡垒主机双重安全设施,保证了网络层和应用层的双重安全;
-
屏蔽子网:是在屏蔽主机模式的基础上进行改进的防火墙部署模式。它与屏蔽主机模式的区别在于在应用代理及对外服务器所构成网段和内部主机之间安装了第二个包过滤防火墙,应用代理及对外服务器所处的网段也称为MDZ(非军事区)。
-
1.2.3 Linux开源防火墙:netfilter/iptables
-
netfilter/iptables开源防火墙工作原理:
-
三个最基本的规则表:
-
表中列出的各条规则链实际上对应着netfilter在TCP/IP协议栈实现中的五个Hook检查点,如下图,对应的详细信息如下表:
规则链 检查点 功能 PREROUTING NF_IP_PRE_ROUTING 能够对所有主机的数据包进行检查,通常用于源地址NAT地址转换处理; INPUT NF_IP_LOCAL_IN 对发往本地网络协议栈、由本地进程处理的数据包进行检查,通常用于过滤本地网络服务的连接; FORWARD NF_IP_FORWARD 对经由本地进行路由转发的数据包进行检查,在本机作为路由器使用时,对通过的网络连接进行过滤;这个Hook点也是实现防火墙包过滤最主要的位置; POSTROUTING NF_IP_POST_ROUTING 对本地协议栈发出和经由路由转发的数据包进行检查和处理,通常用于目的地址NAT转换; OUTPUT NF_IP_LOCAL_OUT 特别针对由本地进程通过本地TCP/IP协议栈发出的数据包进行检查处理,可以配置本地对外访问的限制措施以及目的网络地址转换处理。 -
netfilter对数据包进入规则链的匹配和处理过程:
分析:当一个网络数据包要进入到主机之前,会先经过netfilter进行检查,就是iptables的规则。检查通过则接受(ACCEPT)进入本机取得资源,不通过则丢弃(DROOP)。从上图就可看出:规则是有顺序的。例如,当网络数据包开始Rule 1的比对时,如果比对结果符合Rule 1,此时这个网络数据包就会进行Action 1的动作,而不会理会后续的Rult 2、Rule 3 等规则了。而如果这个数据包并不符合Rule 1的比对,那就会进入Rule 2的比对了。如此一个一个规则比对下去。那如果所有的规则都不符合就会通过默认操作(数据包策略,policy)来决定这个数据包的去向。所以,当规则顺序排列错误时,就会产生很严重的错误。
-
iptables为用户提供的netfilter规则命令行接口,语法为:iptables [-t table] command [match] [target];-t制定配置规则所在表,缺省表包括filter、nat、mangle、raw等,下面是一些常用的命令:
类型 命令 解释 举例 command -A/--append 将一条规则附加到链的末尾 iptables -A INPUT -s 205.168.0.1 -j ACCEPT(将一条规则附加到INPUT链的末尾,确定来自源地址205.168.0.1的数据包可以被接受,进入本地协议栈) command -D/--delete 通过-D指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则 command -P/--policy 该命令设置链的缺省目标操作,即策略。 iptables -P INPUT DROP(将丢弃所有与INPUT链中任何规则都不匹配的数据包) command -N/--new-chain 用命令中所指定的名称创建一个新链 command -F/--flush 如果指定链名,该命令删除链中所有规则,如果未指定链名,该命令删除所有链中所有的规则。此参数用于快速清除。 iptables -F FORWARD(删除FORWARD链中的所有规则) command -L/--list 列出指定链中所有的规则 iptables -L FORWARD match -i/o 进入网络接口/发出网络接口 match -s/-d 源和目的地址 match -p 协议类型 match -m 网络连接状态 match -j ACCEPT 当消息包与具有ACCEPT目标操作规则完全匹配时,会被接受 match -j DROP 当消息包与具有DROP目标操作规则不匹配时,会被拒绝 match -j REJECT 与DROP类似,但REJECT不会再服务器和客户机上留下死套接字;REJECT会将错误信息发回给数据包的发送方 match -jump RETURN 在规则中设置的RETURN目标操作让该规则匹配的信息包停止遍历包含该规则的链 ... ... ... ... -
除了上面的常用命令之外,还有netfilter在包过滤时的一些处理操作,NAT机制的一些命令,详见教材,这里不赘述。
-
1.2.4 其他网络防御技术
-
VPN:即虚拟专用网(Virtual Private Network)利用大规模网络上的公共网络链路代替企业内部专线构建的安全专用网络;
-
内网安全管理:是以防火墙为代表的网络边界防护技术的有效补充;
-
内容安全管理SCM:主要针对目前互联网和企业网络普遍存在的一些内容安全威胁;
-
统一威胁管理:(Unified Threat Management,UTM)是指由硬件、软件和网络技术组成的具有专门用途的设备,它主要提供一项或多项安全功能,将多种安全特性集成在一个硬件设备里,构成一个标准的统一管理平台。
1.2 网络检测技术与系统
1.2.1 入侵检测技术概述
-
入侵检测技术基本概念与发展过程
-
一次入侵检测可悲定义为任何尝试破坏信息资源的保密性、完整性或可用性的行为,入侵检测即为通过计算机网络或计算机系统中若干关键点信息的收集和分析,从中发现入侵行为的一种安全技术;
-
入侵检测系统(Intrusion Detection System,IDS)则是实现入侵检测技术,专门用于入侵行为发现和处理的软件系统或硬件设备;
-
入侵检测是防火墙之后的第二道安全屏障,能够有效的对网络进行监测,提供对外部攻击、内部攻击和误操作的实时监测与应对;
-
J.Anderson提出的入侵者分类:
-
在入侵检测技术方面,围绕误用检测和异常检测这两种基本检测技术分类。误用检测主要关注对复杂攻击特征的描述和检测;异常检测方法则更加多种多呀,代表性研究有采用统计分析方法的IDES统计异常检测器、NIDES等;
-
-
入侵检测技术评估指标:两个重要参数是检测率和误报率;
-
入侵检测技术:入侵检测技术最核心的任务是信息分析,从中识别出攻击行为;
- 误用检测:也称为特征检测,首先收集已知入侵行为的特征并进行描述,构成攻击特征库;然后进行特征模式匹配;所有符合特征的行为视为入侵;
- 异常检测:使用统计分析的方法检测入侵;统计出正常模式下这些测量属性的范围轮廓;被检测的实际测量属性取值与正常模式下进行比较,超过特定阈值就认为有入侵行为;
-
入侵检测系统的分类与部署:基于主机的入侵检测系统(Host-based IDS,HIDS)和基于网络的入侵检测系统(Network-based IDS,NIDS)
-
入侵防御系统IPS:与入侵检测系统普遍采用旁路监听方式只对入侵行为进行检查与报警不同,入侵防御系统采用直接在网络边界位置内联连接的方式,并在检测到入侵行为后,直接对所关联的攻击网络连接进行阻断处理;
1.2.2 开源网络入侵检测系统:Snort
-
Snort软件的基本架构
主要是四个部分组成:
(1)数据包嗅探/解码器(sniffer):利用libpcap从网卡或离线记录中捕获数据包,然后数据包进行检查经过解码器填入链路层协议的包结构体中,以便对高层的协议进行解码,如TCP/UDP层;
(2)预处理器/插件(preprocessor):接着数据包被送到各种各样的预处理插件中,在检测引擎之前对数据包进行检查和操作。每个预处理插件检查数据包是否应该注意、报警或者修改某些东西;
(3)检测引擎/插件(detection engine):随后,包被送到检测引擎,检测引擎首先通过各种规则文件中定义的匹配字符串特征来对每个包的信息进行快速的模式匹配检测,然后由各种检测插件对包提供额外的检测功能。规则中每个关键字选项对应与检测引擎插件,能够提供不同的检测功能;
(4)输出模块/插件(output modules):对之前各个部件产生的报警/日志信息,根据用户配置,调用相应的输出插件进行发送和记录。
2.实践过程
2.1 防火墙配置
-
实践任务:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.168.200.4)无法访问。
-
实践操作如下:
Step 0:分析题目。首先这个题目要求是配置防火墙,可以是
windows/Linux
,那么我们需要选定主机来进行配置,由于教材上讲解了Linux的iptables工具,因此我选定Linux主机,接下来具体选定那个机子,我先确定攻击机中已装iptables的主机,发现kali和seed ubuntu都有,我第一次选择了kali主机配置防火墙;第一个题目是仅用到设有防火墙的主机,因此到这里算是可以完成任务了;但是题目2是需要特定IP和其他IP,所以需要再次选定两台主机,这里我第一次选择的是WinAttacker和seed Ubuntu;这里我踩了一个坑,kali机子在后面无法telnet,具体的解决见后面学习中遇到的问题及解决;第二次实践我就换成了seed ubuntu做防火墙。Step 1:根据上面的分析选定主机信息如下:
主机 IP地址 seed Ubuntu 192.168.200.4 kali 192.168.200.2 Metasploitable_linux 192.168.200.125 Step 2:查看Ubuntu中已经安装的iptables详细信息;
Step 3:kali中输入
ping 192.168.200.4
查看Ubuntu是否能ping通;Step 4:Ubuntu中输入
iptables -t filter -A INPUT -p icmp -j DROP
说明:
-t filter
表示使用配置表filter,可以缺省,默认值是filter;-A
表示将一条命令规则附加到链的末尾;INPUT
表示发送给本地协议栈的数据包规则链;-p icmp
表示过滤的数据包协议为icmp;-j DROP
表示阻塞信息包,即过滤掉;Step 5:wireshark中查看发现此时kali再
ping
,icmp协议已经无数据回应;Step 6:使用命令
iptables -F
快速清除用户自定义的规则,至此第一个题目才算完成;说明:如果你没清除的话,那你会发现后面怎么ping Ubuntu都是ping不通的,也侧面验证了你防火墙确实起作用了。
Step 7:测试kali和Metasploitable_linux是否可以
telnet
主机Ubuntu;Step 8:使用命令行
iptables -P INPUT DROP
将丢弃所有与INPUT链中任何规则都不匹配的数据包:,此时kali/Metasploitable_linux都无法telnet
到主机Ubuntu;Step 9:使用命令行
iptables -A INPUT -p tcp -s 192.168.200.125 -j ACCEPT
打开主机Metasploitable_linux的的过滤数据包规则,此时Metasploitable_linux去telnet
主机Ubuntu,可以连接;思考:其实最开始我用的命令行是
iptables -t filter -A FORWARD -d 192.168.200.2 -j DROP & iptables -t filter -A FORWARD -p tcp -s 192.168.200.4 -d 192.168.200.2 -j ACCEPT
;但是不行?思考了一下看了下书觉得可能的解释是FORWARD
是路由转发的数据包,而INPUT
是发送给本地协议栈的数据包,而这个实践是对Ubuntu做的防火墙所以感觉使用INPUT链会更契合题目要求,不知道这个解释对不对?Step 10:输入命令iptables -F清除所有规则,
iptables -P INPUT ACCEPT
恢复主机之间的telnet
访问,至此第一个实践完成。
2.2 动手实践:Snort
-
任务:使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件)进行入侵检测,并对检测出的攻击进行说明。
在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
- 从离线的pcap文件读取网络日志数据源
- 在snort.conf中配置明文输出报警日志文件
- 指定报警日志log目录(或缺省log目录=/var/log/snort)
-
实践操作如下:
Step 0:哇塞,这个实践,我踩了无数的坑,具体的坑和解决后面遇到的问题部分介绍;
Step 1:使用命令行
sudo apt-get install snort
在seed ubuntu中进行安装;PS:安装之前可以换个源速度会快些,如何换源可自行百度,这里不赘述了;安装中出现的配置界面,网口我选择的是
ens33
,这个需要自己查ubuntu,一般采用ifconfig
能看到(好巧不巧我就不是那个一般...我是用tcpdump
命令的错误提示信息查看到我的网卡是ens33的...你说奇妙不奇妙~);Step 2:将listen.pcap文件移动到当前snort运行的位置;
PS:可以用
cp a b /mv a b
命令进行移动;Step 3:输入命令行
snort -r listen.pcap -c /etc/snort/snort.conf -K ascii
对文件listen.pcap进行入侵检测;说明:
-r
表示从pcap格式的文件中读取数据包;-c
表示让snort进入IDS模式,并从配置文件中读取运行的配置信息; -K ascii
表示输出的log文件的编码为ASCIIStep 4:使用命令行
vim /var/log/snort/alert
打开报警日志文件,可以发现这个攻击是nmap
发起的;
2.3 实践作业
-
任务:分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
-
实践操作如下:
Step 0:这个题目就把我给看懵了,啥跟啥呀?行吧,咱细细的品一下,抓点重点出来;首先分析的是蜜网网关的防火墙和IDS/IPS配置规则,主机确定,范围确定;然后后面题目给出了一些具体分析配置规则与启动项文件,看了下提示的文件查了些资料又参考了下其他同学的博客,终于是有点眉目了;
Step 1: iptables主要是用于防火墙的设置,根据前面学到的,防火墙主要的功能是控制网络流量、防止不安全协议和服务的攻击、防止内部网络信息的外泄、对网络存取和访问进行监控审计、强化网络安全策略并集成其他安全防御机制;而snort主要是用于IDS,IDS最重要的是检测出网络攻击并且发出报警,与iptables相比较就会发现,snort无法防止不安全协议和服务的攻击,仅仅在于检测和报警,所以就有了iptables和snort的联动。snort检测出入侵行为后通过报警通知防火墙,防火墙通过iptables创建新规则链阻止入侵行为的进入,这就是简单联动操作;
Step 2:数据的捕获:通过这一章的学习可以知道,数据捕获会出现在两个地方,一个是防火墙对网络流量的控制、审计;还有一个是入侵检测系统中根据检测数据来源分的基于主机的入侵检测系统HIDS和基于网络的入侵检测系统NIDS;HIDS一般用来监视主机信息,其数据源一般是OS审计记录、系统调用序列、应用程序审计信息等;NIDS是监听网络数据包作为分析的数据源;
Step 3:数据控制机制:讲了老半天的防火墙控制网络流量,那到底什么是数据控制呢?其实最开始我很懵这个概念,查了一下,防火墙的数据控制是建立一些控制策略对流经的网络流量进行检查;基于此,如何对
rc.firewall
文件进行分析就有些眉目了,防火墙的控制策略是最主要的就是链,也就是实践一做的那些,链上的规则就是为了控制数据而生,因此我们使用命令行vim /etc/init.d/rc.firewall
查看rc.firewall
文件;PS:如果使用
vim
打开的文件无法查看的话,使用su -
提权查看在图中可以看到
rc.firewall
中创建了3个链,分别是黑名单,白名单,防护名单;黑白名单是相对的,白名单里面是允许通过的数据包的话那黑名单就会有对应的丢弃包,防护名单是禁止访问某些不被希望访问到的主机;Step 4:查看iptables的规则列表:使用命令行
iptables -t filter -L
查看,可以发现里面定义的链规则,其中INPUT、OUTPUT、FORWARD
都被禁止了,开启的是用户自定的链规则;Step 5:Snort实际执行参数:使用命令行
vim etc/init.d/snortd
查看snort.conf
的脚本文件,可以看到里面信息丰富,监听的网口啦,日志文件地址啦等等;Step 6:Snort_inline实际执行参数:使用命令行
vim /etc/init.d/hw-snort_inline
打开snort_inline
的脚本文件,可以看到有参数的介绍,其中值得注意的是-Q QUEUE
模式(used only with snort-inline for queue mode),这个模式最早是在iptables的包过滤功能中介绍的,QUEUE通过nf_queue机制将数据包传送至应用层供上层应用处理,在iptables中设置过queue后,snort_line通过iptables截取封包以此监听更多的封包,并将通过queue将防护规则传递给iptables实现IDS和iptables的联动;Step 7:防火墙、NIDS、NIPS启动:使用命令行
chkconifg --list | grep [服务]
查询当前服务是否开启;从图中可以看到防火墙和NIPS是跟随系统启动的,并且开机自动配置snort_inline的脚本文件,NIDS需要自己配置(全是off);Step 8:snort规则的自动升级:使用命令行
vim /etc/honeywall.conf
查看honeywall
的配置文件,一打开会发现之前对honey的操作都被记录在案了,找到Snort Rule Update Variables
发现有一个Oink Code-Required by Oinkmaster to retrieve VRT rule updates
,查一下wiki
发现Oinkmaster is a simple yet powerful Perl script to update and manage Snort signatures
.这样我们就找到了snort规则自动升级的工具啦! 至此最后的实践作业完成啦~喜大普奔!!!
3.学习中遇到的问题及解决
-
问题 1:使用kali设置防火墙实践的时候,出现kali无法telnet的情况
-
解决 1:
1、换协议,kali里面换成ftp协议是可用的,此协议不通咱换个协议用;
2、开启kali的telnet服务,参考开启kali的Telnet和kali安装telnet,亲测有效可用;不过后面在telnet的时候可能会出现Connection closed by foreign host的情况,查了下资料,解释是:
(1)因为原来连接到SSH服务器进程的22端口,当你的客户端突然断开时,服务器端的TCP连接就处于一个半打开状态。当下一次同一客户机再次建立 TCP连接时,服务器检测到这个半打开的TCP连接,并向客户机回传一个置位RST的TCP报文,客户机就会显示connection closed by foreign host。这是TCP协议本身的一个保护措施,并不是什么错误,你只要再重新连接服务器就能连上。
(2)还有可能是文件权限的问题,参考博客SSH Connection closed by foreign host
3、建议使用
nmap -p 23 127.0.0.1
查询下本机是否开启了telnet服务。最后我也不知道是上述的(1)还是(2)起了作用但是最后是解决了。
-
问题 2:在进行实践二使用Snort对listen.pcap文件进行分析的时候出现无法将本机文件移动到seed ubuntu里
-
解决 2:参考博客如何在linux中安装VMwareTools,亲测有用!
-
问题 3:kali中无法安装Snort;
-
解决 3:第一次我输入
sudo apt-get install snort
,出现无此包的错误,ok,那我就update&upgrade
一下,依旧无此包;行吧,那我换源,换源之后再update&upgrade
行吧,还是不行???那我重装kali,然后换源,update&upgrade
依旧无此包??!!!行吧,那换成原始的rpm文件安装吧,安装过程中依旧报错,而且是在最后一步make的时候报错...行吧,再见您嘞!我换个机子装!然后我就换成了seed ubuntu,在这里面安装也有坑...就是网卡选择哪里,一定要查看自己的网卡是啥从而选择snort监听的网卡(这里足以看出Snort的初心...嗅探器出身!)一般来说都是eth0,而且使用ipconfig就能查看到,可是我就不是那个一般,网卡既不是eth0,也没用ipconfig命令查看到网卡...好气哦~然后我居然在一顿试错中使用命令tcpdump的报错信息中知道了我的网卡是ens33,真是曲线救国啊!最后这样我才在seed ubuntu中安装成功了snort看见了那只可爱的小猪猪!完成了第二个实践!虽说描述只有上面那些,其实我查了很多东西...各种试错各种查询,还问了一些同学,感谢他们的指点,感叹攻防不易啊!
4.实践总结
攻防真是个神奇的东西。感觉这一次的攻防知识点挺多的,书上介绍的都很详细,防火墙,入侵检测啦这些技术都是之前没接触过的,所以前面的知识点我写的比较详细,方便以后回忆。在做实践操作的时候这次也遇到了不少坑,感觉我在打地鼠,那些坑里面装的老鼠让我一个个的敲下去,积分也在upupup,虽说这个过程挺难的,毕竟看到其他同学的实践秒过的然而自己还在打地鼠的那一瞬间,害,我已经习惯了,毕竟之前周三周四的实践也遇到了不少坑,行吧,我承认攻防让我没脾气,也让我很耐心,做攻防既能学习知识,还能够培养心性,可真是难得。最后的最后,实践中还有不少不足,还能怎么办呢,慢慢学呗~