对网络进行风险分析,制定相应的安全策略,然后采取安全技术作为防护措施,主要针对固定、静态的威胁和环境弱点。
2、动态可适应网络安全模型
PDR安全模型:基于闭环控制理论的时间动态可适应网络安全模型,以经典的网络安全不等式P>D+R(保护、检测、响应)为本质基础,并提出安全性可量化和可计算的观点。
P^2 DR安全模型:基于PDR安全模型提出,增加了Policy分析制定安全策略,并以此为核心,所有的防护、检测、响应都是依据安全策略实施的。
防火墙定义:防火墙是目前最成熟的网络防御技术之一,在网络便捷安全防护方面得到了非常广泛的应用。指的是置于不同网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。从技术范畴上说防火墙属于一种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破环的安全目标。
防火墙的功能:控制在计算机网络中不同信任程度网络域之间传送的数据流。具体包括以下几点:
检查控制进出网络的网络流量
防止脆弱或不安全的协议和服务
防止内部网络信息的外泄
对网络存取和访问进行监控审计
防火墙可以强化网络安全策略并集成其他安全防御机制
防火墙的技术:
包过滤技术
基于状态检测的包过滤技术
代理技术(包括应用层代理技术、电路级代理技术、NAT代理技术
分类:HIDS(基于主机的入侵检测系统)、NIDS(基于网络的入侵检测系统)
入侵防御系统IPS/IDS:“即插即用”,无须使用者的干预。
基本架构:
数据包嗅探/解码器:将网卡设置为混杂模式,用libpacp函数来进行数据包监听和抓包。
预处理器/插件:用于弥补检测引擎检测能力的不足,主要有TCP/IP协议栈模拟、应用层协议解码、异常检测。
检测引擎/插件:通过攻击特征规则库检测。
输出模块/插件:记录报警和日志。
主要功能:
嗅探模式
数据包记录模式
网络入侵检测模式
基于Snort的入侵防御系统Snort_inline
能够对通过Snort_inline的数据包进行检测,对匹配特征规则的数据包进行丢弃和阻断,达到实时安全防御能力。
工作机理:
安装内联模式的Snort前,必须提供内联网络连接的能力。
netfilter/iptables提供了Snort_inline 所需的libipq/libnetfilter_ queue库支持。
Snort在编译过程中通过./configure --enable -inline
模式进行编译,可以生成以内联模式运行的Snort_inline 程序,在IPTables规则中添加一条简单的$IPTABLES -A FORWARD -j QUEUE
将会触发Snort_ inline 负责所有经由网桥,由系统进行路由转发的数据包,对这些数据包进行检查并根据检查结果决定是否阻断。
此次实验使用SEEDUbuntu、kali
、Metasploitable_ubuntu
三台虚拟机,seed
作为被ping
机。
SEEDUbuntu的IP地址
kali的IP地址
Metasploitable_ubuntu的IP地址
首先在SEEDUbuntu使用命令iptables -V
显示出版本。
输入iptables -L
显示出链中所有的规则。
使用命令iptables -A INPUT -p icmp -j DROP
使得seed
不接受icmp数据包,其中-A
可以换成-I
,无非是加入规则的顺序问题,-p
后跟协议,这些命令使用iptables -h
都可以查看,使用命令后发现多了一条规则,作用是使得主机不接受ping
包
设定完规则后尝试用kali
和Metasploitable_ubuntu ping SEEDUbuntu,发现均不能ping通,表明规则设定成功。
输入命令iptables -D INPUT 1,
删除上一条自己设定的规则
删除规则之后,再尝试用kali
和Metasploitable_ubuntu ping SEEDUbuntu,发现两台机器马上就能ping
通SEEDUbuntu。
然后使用kali
和 SEEDUbuntu 对Metasploitable_ubuntu 进行telnet
远程连接,发现均可以连接,命令是telnet IP地址。
为了只让某个特定IP访问某一服务,比如telnet
,可以设定先将所有访问该主机服务的请求全部丢弃,之后再设一条规则使得特定IP可以访问这个端口服务。
即使用命令iptables -I INPUT -p tcp --dport 23 -j DROP
先拒绝所有访问23端口请求
再用命令iptables -I INPUT -s 192.168.200.16 -p tcp --dport 23 -j ACCEPT
接受特定IP可以访问这个端口
发现kali无法连接Metasploitable_ubuntu的23号端口,但是SEEDUbuntu(192.168.200.123)可以成功连接
使用之前实验用过的listen.pcap文件,我的pcap文件在kali桌面
使用命令snort -r /home/kali/DeskTop/listen.pcap -c /etc/snort/snort.conf -K ascii
对pcap文件进行入侵检测,可以查看输出的检测,大部分都是tcp会话。
snort会在默认目录生成一个日志文件,进入报警日志目录 cd /var/log/snort
, 查看日志文件命令sudo cat snort.alert.fast,发现本次攻击使用nmap。攻击机IP地址是 172.31.4.178
,靶机IP为 172.31.4.188
具体分析配置规则与启动项文件包括:
防火墙(netfilter+IPTables) : /etc/init.d/rc.firewall:
入侵检测系统(Snort) : /etc/init.d/hflow-snort 与/etc/snort/snort.conf:
入侵防御系统(Snort_inlinc) : /etc/init.d/hflow-snort_inline 与/etc/snort_inline/snort. inline.conf
数据捕获机制:iptables可以通过记录日志的形式来捕获网络连接信息,包括源地址,目的地址,使用的端口和进行连接的协议、长度等等;Snort对符合入侵检测特征的攻击数据包发出响应的报警信息,从而标识网络流中存在的攻击事件。查看rc.firewall中的名单、白名单、防护名单的链,不同的链中对不同来源的包的处理是不同的,从而实现数据控制。
打开蜜罐(roo,honey),【su -】,然后执行【vim /etc/init.d/rc.firewall】查看防火墙文件。在防火墙文件中可以看到有三个链,分别是黑名单、白名单、防护名单。-N的意思表示根据用户指定的名字创建新链。
防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包;对于属于白名单的主机,接受且不记录;对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。
如下图可以发现创建了黑名单和白名单防护名单的规则链,还创建了很多协议数据包的处理规则链
蜜网网关的iptables显示找不到命令 ,获取规则链的命令是iptables -L
,环境变量没有加入,于是使用/sbin/iptables -L
命令可以看到完整规则链。这里honey虚拟机不能上鞋翻页,于是将查出来的东西放入1.txt,在1.txt中进行查看,所以最终的命令是:/sbin/iptables -L >1.txt ,然后输入命令vim 1.txt,可以看到默认的规则INPUT、FORWARD、OUTPUT都是关闭。
获取snort实际执行参数 通过命令 vim /etc/init.d/snortd
打开Snort脚本文件,可以看到些参数的选项:默认使用默认目录下的snort.conf
规则,默认监听网卡为eth0
,默认存储日志路径为/var/log/snort
。
获取Snort_inline实际执行参数:通过命令 vim /etc/init.d/hw-snort_inline
打开snort_inline
的脚本文件,可以看到到实际执行的参数。
使用命令chkconfig -list
对linux系统运行的服务查询,仍然需要使用/sbin/chkconfig --list
命令,可以发现NIDS的0~6都是off,说明是需要手动启动的,而防火墙和NIPS不全是off,是跟随系统启动的。
可以从vim /etc/honeywall.conf
打开honeywall配置文件,来看snort的rule是否自动更新,可见默认为不更新
Oinkmaster是个自动更新的软件,使用vim /etc/oinkmaster.conf
打开该文件,发现了snort.conf文件,可以推断这里使用工具Oinkmaster进行了snort的自动升级。
问题1:在任务二中查看报警任务日志文件时,首先查看的是alert文件,发现打开是空的。
解决办法:将/var/log/snort目录下的文件都列出来,一个一个打开看,最后发现在文件snort.alert.fast中。
问题2:在任务三中执行“获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数”任务时,直接输入命令iptables -L,显示找不到命令。
解决办法:通过查询资料发现是环境变量没有加入,于是使用/sbin/iptables -L
命令可以看到完整规则链。在后续类似命令中都加上/sbin/则可以正常运行。
1、这次的实验总体感觉比较简单,做起来速度比较快,但也会遇到一些细小的问题,在解决问题的途中要有耐心仔细分析,既解决问题又学习到了新知识。
2、掌握了防火墙、snort、虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则等相关知识,感觉自己的知识面更广了,对网络攻防的相关操作也更加熟悉,实验做起来也更加快捷,在遇到一些问题时,不再是一头雾水了,可以有一个大致的方向进行解决。
3、在实验过程中因为粗心出现一些不必要的问题,比如忘记进入root模式,导致运行命令时出现error。所以意识到自己在后续的学习与实验中,应该更加细心。