20199103 2019-2020-2 《网络攻防实践》第六周作业
1.实践内容
防火墙
防火墙指的是在不同网络之间,对流量和访问进行控制的安全组件和设备。
防火墙的功能
-
检查控制进出网络的网络流量:这是防火墙的一个最基本的功能。检查数据包的包头、协议,然后根据管理员设定的要求,来放行流量或者直接拒绝。
-
防止脆弱或不安全的协议和服务:防火墙可以通过禁止一些不安全的协议通过,来保护内部网络。管理员也可以在服务器上关闭不安全的服务和禁止不安全的协议的报文来达到相同的目的。
-
防止内部信息泄露:防火墙可以屏蔽某些内部细节,来防止有关安全的线索被攻击者获取。
-
对网络存取和访问进行监控审计:防火墙可以记录下所有通过它的访问,并形成日志以供查阅。如果有可以的访问,防火墙也可以报警。
-
强化网络安全策略并集成其他安全防御机制:可以将很多安全机制配置在防火墙上。
防火墙的先天不足
-
无法防护来自内部的危险:防火墙只能对内、外部之间的通信进行防护。内部的危险防火墙无能为力。
-
通过非法外联的网络攻击:如果内部人员私自接入外部网络,防火墙无法阻止,也无法监视。
-
非网络形式的病毒传播:网络形式的病毒,防火墙可以检测和防范,但是通过磁盘、u盘等方式传播的病毒,防火墙无能为力。
防火墙技术不足
-
针对开放服务的漏洞的攻击:内部网络总是需要对外部开放一些服务,而这些服务上的安全漏洞,番防火墙通常无法区分。
-
基于隐蔽通道进行通信的木马或僵尸网络:防火墙很难从大量的网络流量中对其进行识别。
防火墙技术
-
包过滤:通过对每个数据包的包头信息检查来确定是否应该接受数据包。
-
动态包过滤:通过防火墙的网络连接的记录,了确定某个数据包是属于一个新建连接,还是一个某个已经连里的连接的一部分。不仅会检查数据包,还会检查数据包再网络连接中的上下文。
-
代理技术:让主机和另一个网络进行间接的连接。首先先和一个代理服务器建立连接,然后向代理服务器发出一个其他服务器的连接请求,代理服务器就会和该服务器建立连接、去的资源,然后发送给主机。具体有:应用层代理技术,针对某一个具体的网络服务而提供的代理技术;电路级代理技术,同时对多个不同的网络服务提供服务的代理技术;NET代理技术,允许多个用户共同使用一个IP地址。
防火墙产品
-
集成包过滤功能的路由器
-
基于操作系统的软件
-
基于安全操作系统的防火墙:防火墙厂商会自行研发一些安全专用的操作系统。
防火墙部署方法
-
包过滤路由器:将带有包过滤防火墙功能的路由器安装在内部网络和外部网络的唯一连接点上。
-
双宿主堡垒主机:与包过滤路由器的部署方法类似,但是用堡垒主机来代替包过滤路由器。
-
屏蔽主机:相当于包过滤路由器和堡垒主机的集成,所有的访问数据都要经过两者。
-
屏蔽子网:在屏蔽主机模式的基础上,在内部主机之前又加了第二个包过滤防火墙。
netfilter/iptables
-
工作原理iptables中有三个基本规则表:处理包过滤的filter、网络地址转换nat、特殊目的包修改的mangle。filter包含INPUT、OUTPUT、FORWARD三条规则链。分别是发往本地、本地发出、经过本主机的转发的数据包处理的规则。nat表有PREROUTING、POSTROUTING、OUTPUT三条规则链。分别是:对未经路由选择的数据包转换IP地址和目标端口、对已经经过陆幽轩的数据包进行转换IP地址和目标端口,OUTPUT规则链的本地数据包的IP地址和端口转换。
-
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的四个主要部件
-
数据包嗅探:将网卡设置为混杂模式,用libpacp函数来进行数据包监听和抓包。
-
预处理器:用于弥补检测引擎检测能力的不足。主要有TCP/IP协议栈模拟、应用层协议解码、异常检测。
-
检测引擎:是主题模块,主要包括规则库解析、多模式匹配、规则插件。
-
输出模块:进行各种多样化的报警和日志记录。
2.实践过程
过滤ICMP数据包,使主机不接受ping包
-
首先先尝试一下正常状态可以不可以ping通
-
可以看到,能ping通。
-
然后执行
iptables -A INPUT -p icmp -j DROP
,意思是在INPUT链条中添加规则,所有icmp的数据报全部丢弃。
-
然后再执行ping
-
现在已经ping不通了。
-
保险起见,我又把添加的规则删除了
iptables -D INPUT -p icmp -j DROP
-
现在可以看到,又能ping了
只允许特定IP地址访问服务,其他的不行。
-
首先先测试一下最初能不能使用telnet
-
一开始是可以的。
-
然后在被访问的机器运行命令
iptables -P INPUT DROP
意思是没有满足某一规则的数据报全部丢掉
-
这时telnet已经连接不上了
-
然后添加一条规则
iptables -A INPUT -p tcp -s 192.168.254.128 -j ACCEPT
.接受来自192.168.254.128(kali)的数据包。
-
然后再次telnet连接
-
现在kali是可以的
-
然后再切换winxp试一试
-
xp是不行的。
-
依旧保险起见,先
iptables -D INPUT -p tcp -s 192.168.254.128 -j ACCEPT
删除命令,然后iptables -P INPUT ACCEPT
把没有规定的数据包都接收(
注:看了建国的博客之后,我知道了可以直接使用iptables -F
来删除自定规则和iptables -L
来查看规则。
在攻击机上用snort对第四章的pcap文件进行入侵检测,获得报警日志。
-
在第四章的时候使用过snort,用来确定扫描工具。
-
首先用snort来检测pcap文件,同时用ASCII输出日志文件
-
这里我的pcap文件一直在download下,没动过。
-
然后我们可以查看输出里检测出的数据包。
-
在不指定报警日志目录的时候,缺省目录为/var/log/snort
-
进入目录,查看日志文件alert
-
然后可以看到日志文件,可以看出很多信息。
分析蜜网网关的防火墙和IDS/IPS配置规则。上述脚本是如何实现蜜网网关的数据的数据捕获和数据控制机制?获取IPTables的实际规则列表、snort和snort_line的实际执行参数。蜜网网关开机之后,防火墙、NIDS、NIPD如何启动?
数据捕获和数据控制
-
在蜜罐中使用
su -
提权之后查看rc.firewall文件,然后看到了这么长一大串的程序,对我这个编程苦手来说有点无从下手,更何况我压根不会shell编程。参考建国的博客我想尝试看懂create_chains()
-
但是我只能看出来他创建了黑名单链、白名单链、防护名单链。
获取IPTables的实际规则列表、snort和snort_line的实际执行参数
-
运行
iptables -L
可以查看实际规则列表(这里由于蜜罐里我不会翻页还去百度了下。shift+page up/down)。
-
在获取snort的实际执行参数的时候,教材上给的文件在我的蜜罐主机上并不存在,而是打开了同目录下的snortd
-
文件的前半部分是一些选项和一些默认的缺省值,后半部分就是需要的实际执行参数
-
接下来获取snort_line的实际执行参数,这里打开的文件是同目录下的hw-snort_inline,教材给的文件在我的主机里也没有。
蜜网网关开机之后,防火墙、NIDS、NIPD如何启动
-
chkconfig --list可以查看是否自动启动。如果0到6全是off的话,就是不自动启动的。
-
可以看到NIDS是全off,不自动启动,其余两项自动启动。
Snort规则是如何自动升级的?
-
然后使用
vim /etc/honeywall.conf
来查看配置文件,在这里可以找到snort。
-
可以看到现在自动更新是关闭的。
3.学习中遇到的问题及解决
- 问题1:防火墙、入侵检测、入侵防御的文件的程序看不懂。
- 问题1解决方案:基本上连蒙带猜。
4.实践总结
前面的还好,最后的实践作业有很多课本上没有涉及的操作方法。