20199118 2019-2020-2 《网络攻防实践》第六周作业
学号:20199118《网络攻防实践》第六周作业
1.知识点梳理与总结
在第六章的课程中学习了 网络安全防范技术的重要内容:
① 安全模型 |
-
静态安全模型:对网络进行风险分析,制定相应的安全策略,然后采取安全技术作为防护措施,主要针对固定、静态的威胁和环境弱点。
-
PDR安全模型:基于闭环控制理论的时间动态可适应网络安全模型,以经典的网络安全不等式P>D+R(保护、检测、响应)为本质基础,并提出安全性可量化和可计算的观点。
-
P2DR安全模型:基于PDR安全模型提出,增加了Policy分析制定安全策略,并以此为核心,所有的防护、检测、响应都是依据安全策略实施的。
②网络安全防范技术与系统 |
-
防火墙定义:
防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备,达到保护特定网络安全域免受非法访问和破坏的安全目标。 -
防火墙功能:
①检查控制进出网络的流量。
②防止脆弱或不安全的协议和服务。
③防止内部网络信息的外泄。
④对网络存取和访问进行监控审计。
⑤强化网络安全策略并集成其他安全防御机制。 -
防火墙先天不足:
无法防范包括来自网络内部的安全威胁、通过非法外联的网络攻击和计算机病毒传播的传播。 -
防火墙技术不足:
无法防范包括针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击和隐蔽通道进行通信的特洛伊木马或僵尸网络。 -
防火墙技术:
①包过滤技术:在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包(简单、安全功能有限)。
②基于状态检测的包过滤技术:也称动态包过滤。除了使用静态规则进行安全进行安全策略匹配,还进行数据包的网络连接的上下文关系探测,来确定是否允许通信。这种技术相比较传统的包过滤技术安全性更高,数据合法性得到了更有效的保障(对网络性能有一定的影响)。
③代理技术:允许客户端通过代理与网络服务进行非直接的连接,也称“网络代理”。主要是客户端与代理服务器连接,代理服务器再与目标服务器连接。代理技术包括应用层代理(工作在应用层)、电路级代理(工作在传输层)和NAT代理(工作在网络层)等。 -
防火墙产品:
①集成包过滤功能的路由器
②基于操作系统的软件
③基于安全操作系统的防火墙:防火墙厂商会自行研发一些安全专用的操作系统。 -
防火墙部署方法:
①包过滤路由器:将带有包过滤防火墙功能的路由器安装在内部网络和外部网络的唯一连接点上。
②双宿主堡垒主机:与包过滤路由器的部署方法类似,但是用堡垒主机来代替包过滤路由器。
③屏蔽主机:相当于包过滤路由器和堡垒主机的集成,所有的访问数据都要经过两者。
④屏蔽子网:在屏蔽主机模式的基础上,在内部主机之前又加了第二个包过滤防火墙。
③Linux开源防火墙netfilter/iptables介绍 |
-
iptables是运行在用户空间的防火墙配置工具,通过控制运行在Linux内核空间的netfilter模块,来管理网络数据包的处理和转发。其中规则是用户预定义的,也是我们常说的防火墙规则,配置防火墙的主要工作就是添加、修改和删除这些规则。
-
工作原理iptables中有三个基本规则表:
①处理包过滤的filter:
(1)INPUT(发往本地)
(2)OUTPUT(本地发出)
(3)FORWARD(经过本主机的转发的数据包处理)
②网络地址转换nat:
(1)PREROUTING(对未经路由选择的数据包转换IP地址和目标端口)
(2)POSTROUTING(对已经经过陆幽轩的数据包进行转换IP地址和目标端口)
(3)OUTPUT(对本地数据包的IP地址和端口转换。)三条规则链。
③特殊目的包修改的mangle。 -
iptables的指令:
iptables -t [table] command [match] [target]
-t指定规则所在的表,缺省表包括gilter、nat、mangle、raw。cammand就是告诉iptables要做什么,比如-A
就是在链表之后插入规则。match则是规则,满足规则的数据包才会被采取措施。target是满足规则之后要做什么,比如放行数据包ACCEPT。 -
netfilter/iptables的NAT机制:
①IP伪装:在内部网络使用私有IP,而通过防火墙可以绑定一个外部IP,对数据包进行源IP伪装。
②SNAT机制:SNAT记住可以按照用户制定的规则,将源IP灵活的变成各种IP,IP伪装是一种SNAT机制。值得注意,SNAT机制需要在POSTOUTING链中完成,这样才能让路由、包过滤在源IP改变之前做完。
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.254.2
的意思是将发出的源IP改为192.168.254.2
③DNAT机制:DNAT在PREROUTING链中完成,需要用到-i
iptables -t nat -A PEROUTING -i eth1 -j DNAT --to 192.168.254.128
将目的地址转换为192.168.254.128
④网络检测技术与系统 |
-
入侵检测技术:
①评估指标:检测率(系统捕获到的攻击行为与全部攻击行为比值)和误报率(对正常行为的误报数与全部报警数的比值)。
②技术类型:特征检测(匹配特征库)、异常检测(检测与正常用户在统计方面的差别)。二者通常结合使用,提高入侵检测系统的整体检测性能。同时,基于这两种技术,也可以对入侵检测系统进行分类。
③入侵防御系统:也叫内嵌式入侵检测,即对检测到的异常行为或者与特征库匹配的行为直接进行阻断,断开访问。 -
snort基本介绍
①简介:Snort是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录IP网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配,可以检测各种不同的攻击方式,对攻击进行实时报警等。
②四大模块:数据包嗅探模块、预处理模块(用相应的插件来检查原始数据包)、检测模块(检测引擎依据预先设置的规则检查数据包)、报警/日志模块(经检测引擎检查后的Snort数据输出)。
③三种工作模式:嗅探模式(从网络上读取数据包,常用命令snort -dev
)、数据包记录模式(把数据包记录到硬盘上,常用命令snort -b
)、网络入侵检测模式(载入规则库才能工作,Snort并不记录所有捕获的包,而是将包与规则对比,仅当包与某个规则匹配的时候,才会记录日志或产生报警)。
2.实践过程
实践一: 配置Linux平台上的iptables,完成如下功能并测试:
①过滤ICMP数据包,使主机不接受ping包。
②只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问
- 我们以SEED Ubuntu作为服务器,利用Kali访问SEED Ubuntu,Kali作为信任主机,Linux MetaSploitable作为不可信任主机。
虚拟机 | IP |
---|---|
Kali-Linux | 192.168.237.129 |
MetaSploitable-Linux | 172.16.8.128 |
SEEDUbuntu | 172.16.8.128 |
- 过滤ICMP数据包,使主机不接受ping包。
- 首先在SEED Ubuntu上通过
iptables -L
查看规则,发现都是默认规则。 - 通过指令
iptables -A INPUT -p icmp -j DROP
指令使得主机不接受icmp的数据包。指令详解:-A
是追加一条规则,INPUT
表示数据包入口(规则),-p
用于匹配协议,-j
用于指定如何处理(ACTION)。更多的指令参照上面理论部分给的链接。
- 此时通过Kali
ping
SEEDUbuntu
4.再通过iptables -L
查看规则
- 最后别忘了使用
iptables -F
删除自定义规则。至此过滤ICMP数据包实践完成。
- 只允许Kali访问SEED Ubuntu的telnet服务。
- 确定两台机器都可以进行telnet登陆。
- 接下来使用
iptables -P INPUT DROP
指令拒绝一切的数据包流入(修改的是默认规则-P),此时应该两台电脑都无法进行访问。 - 使用指令
iptables -A INPUT -p tcp -s 192.168.237.129 -j ACCEPT
开启192.168.237.129
对本机的tcp服务。并用iptables -L
查看规则。
- 执行
iptables -F
和iptables -P INPUT ACCEPT
两条指令恢复之前的状态。
实践二:使用Snort对给定的pcap文件进行入侵检测,并对检测出的攻击进行说明。
- 首先利用指令
snort -r listen.pacp -c /etc/snort/snort.conf -K ascii
对listen.pacp
进行入侵检测,其他的指令第四周都已经详细介绍了,-K ascii
主要是为了指定输出log文件的编码为ASCII(默认为binary)
- 在/var/log/snort/目录下可以查找到alert文件,这个文件即输出的日志文件,通过vim打开可以发现这个攻击是nmap发起的,当然还有很多其他的信息,譬如源地址、目的地址等等。
实践三:分析蜜网网关的防火墙和IDS/IPS配置规则。说明蜜网网关是如何利用防火墙喝入侵检测技术完成其攻击数据捕获和控制需求。
- 上述脚本是如何实现蜜网的数据捕获和数据控制?
- 获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
- 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
- Snort规则是如何自动升级的?
1.蜜罐中使用su -提权之后使用命令vim /etc/init.d/rc.firewall
查看rc.firewall文件
2.数据捕获:①防火墙的日志记录(记录的只是简单的信息如目的地址/端口、源地址/端口、协议、长度等)②Snort记录的网络流
3.运行指令iptables -L
可以查看实际规则列表(翻页:shift+page up/down
)
4.通过vim /etc/init.d/snortd
打开Snort脚本文件
5.通过vim /etc/init.d/hw-snort_inline
打开Snort_inline脚本文件
6.通过指令chkconfig --list
来查询当前服务是不是开启的。chkconfig命令主要用于检查,设置系统的各种服务
7.在/etc目录下使用指令vim /etc/honeywall.conf
打开honeywall配置文件
3.学习中遇到的问题及解决
- 问题①:防火墙、入侵检测、入侵防御中的的程序看不懂。
- 问题①的解决方案:翻阅同学博客、上网百度。
4.学习感悟、思考等
- 加深了对网络攻防技术的认识,理论与实践相结合,提高了自己对使用网络安全防范技术的能力。
- 培养了实践学习的能力,对网络攻防的实际运用产生了极大的兴趣。
参考资料
- 《网络攻防技术与实践》诸葛建伟 著
- 《Snort 命令参数详解》
- 《iptables详解》
- 《netfilter/iptables详解》