本次作业属于那个课程 | 《网络攻防实践》 |
---|---|
这个作业要求在哪里 | 第六周作业 网络安全防范技术 |
作业正文 | 下述正文 |
其他参考文献 | 见文末 |
1.实践内容
防火墙是指置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。技术上说,防火墙属于一种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过防火墙的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网路访问通过防火墙。
防火墙的功能:
(1)检查控制进出网络的网络流量
(2)防止脆弱或不安全的协议和服务
(3)防止内部网络信息的外泄
(4)对网络存取和访问进行监控审计
(5)防火墙可以强化网络安全策略并集成其他安全防御机制
防火墙的不足:
作为网络边界防护机制而先天无法防范的安全威胁包括如下:
(1)来自网络内部的安全威胁
(2)通过非法外联的网络攻击
(3)计算机病毒传播
由于技术瓶颈问题目前还无法有效防范的安全威胁包括如下:
(1)针对开放服务安全漏洞的渗透攻击
(2)针对网络客户端程序的渗透攻击
(3)基于隐蔽通道进行通信的特洛伊木马或僵尸网络
防火墙技术和产品
在防火墙技术和产品发展过程中,形成和广泛采用的技术主要有包过滤技术、基于状态检测的包过滤技术、代理技术等。
- 包过滤技术
包过滤技术在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包,将一些不符合安全策略的数据包阻挡在网络的边界处。包过滤技术的示意图如下图所示:
- 基于状态检测的包过滤技术
基于状态检测的包过滤技术是在包过滤技术的基础上开发的,这种技术也被称为动态包过滤。动态包过滤技术维护所有通过防火墙的网络连接记录,并依此确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。
- 代理技术
代理技术是一种重要的计算机安全防护功能,允许客户端通过它与另一个网络服务进行非直接的连接,也称“网络代理”。代理技术有利于保障网络安全,防止网络攻击,是一类与包过滤技术完全不同的防火墙技术。根据工作的网络协议栈层次的不同,代理技术包括应用层代理、电路级代理和NAT代理等。
(1)应用层代理技术:工作在网络协议栈的应用层,针对于某一层具体的应用层网络服务提供细致而安全的网络保护,能够理解应用层协议的数据内容,并进行深入全面的安全检查。
(2)电路级代理技术:工作在传输层,使得电路级代理可以同时为多种不同的应用服务提供支持,而不需要为不同的服务配置不同的代理程序
(3)NAT代理技术:网络地址转换是防火墙上通常实现的一项特殊代理技术,用来允许多个用户分享少量或单一的IP地址。工作在网络层,由内部网络发送往外部网络的IP数据包,使用了私有IP地址段作为其源代理,在到达NAT代理后,会把源IP地址和源端口部分替换成代理服务器的IP地址和另一指定的源端口。
防火墙产品
(1)集成包过滤功能的路由器
(2)基于通用操作系统的防火墙软件产品
(3)基于安全操作系统的防火墙
(4)硬件防火墙设备
防火墙部署方法
(1)包过滤路由器
将带有包过滤防火墙功能的路由器作为内部网络和外部网络之间唯一的连接点,路由器在完成其数据包路由转发基本功能的同时,将依据网络管理员配置的访问控制列表,对数据包进行过滤。
(2)双宿主堡垒主机
使用应用应用代理网关作为双宿主堡垒主机代替了包过滤路由器。双宿主堡垒主机有两个网络接口,一个使用IP地址连接外部网络,另一个使用私有IP地址连接内部网络,两个网络接口之间并不具备路由转发功能,仅仅由应用代理服务器程序为特定的网络提供应用代理。
(3)屏蔽主机
实际上是包过滤防火墙和应用代理技术的集成部署,这种部署模式采用屏蔽路由器和堡垒主机双重安全设施,所有进出内部网络的数据都要经过包过滤防火墙和堡垒主机,保证网络层和应用层的双重安全。
(4)屏蔽子网
是在屏蔽主机模式的基础上进行改进的防火墙部署模式
Linux开源防火墙:netfilter/iptables
netfilter/iptables开源防火墙工作原理:在 netfilter/iptables防火墙中,netfilter组件位于Linux内核空间中,实现了静态包过滤和状态报文检查基本防火墙功能,此外也支持灵活可扩展框架支持NAT网络地址转换等其他额外功能。
Iptables为用户配置netfilter规则的命令接口,语法为:iptables [-t table] command [match] [target] /* command部分告诉iptables命令要做什么,例如插入规则 */
netfilter/iptables的NAT机制:IP伪装、SNAT机制、DNAT机制。
其他网络防御技术
(1)VPN 虚拟专用网:主要采用隧道技术、加解密技术、秘钥管理技术和使用者与设备身份认证技术。IPsec VPN、SSL VPN、MPLS VPN 是目前VPN最主要的三种技术和产品形态。
(2)内网安全管理:以防火墙为代表的网络边界防护技术的有效补充,分为终端安全管理、终端运维管理、终端补丁分发管理和系统日志管理四部分。
(3)内容安全管理SCM:关注网络中传输内容的安全,需要更加深入地分析传输数据包的内容,从应用层中解析和分析出相关的网络行为,并依据网络的安全策略进行合规性检查和控制
(4)统一威胁管理 UTM:是指由硬件、软件和网络技术组成的具有专门用途的设备,主要提供一项或多项安全功能。
网络检测技术与系统
在PDR模型中,检测技术在整个模型中扮演了重要的角色。单纯的安全保护措施并不意味着系统的绝对安全。在入侵者攻陷保护措施之前,一个安全的系统需要检测出入侵的行为并采取相应的安全响应措施,所以检测是响应的前提。检测技术主要包括漏洞评估、入侵检测等。
入侵检测技术的发展过程:
入侵者分类:
(1)外部渗透者:攻破系统的外部边界访问控制机制,渗透进入系统内部的攻击者;
(2)假冒者:未经授权使用计算机系统或突破访问控制机制冒用合法用户账户的攻击者;
(3)违法者:进行了越权操作的合法用户;
(4)秘密用户:对系统具有完全控制能力,并使用此能力绕过访问控制、规避安全审计,从而破坏系统的逻辑控制的内部用户。
入侵检测系统的分类
(1)从监测数据来源:基于主机的入侵检测系统(HIDS)和基于网络的入侵检测系统(NIDS)
(2)从信息分析技术:误用检测方法和异常检测方法
(3)采用的体系结构:集中式、层级式和协作式
实践
实践一
配置Linux平台上的iptables,完成如下功能并测试
(1)过滤ICMP数据包,使主机不接受ping包
(2)只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问
选用Ubuntu为服务器,kali为信任主机,MetaSploitable作为不可信任主机,用kali访问Ubuntu
主机 | IP地址 |
---|---|
kali | 192.168.200.2 |
Metapsloitable | 192.168.200.125 |
seed | 192.168.200.5 |
(1)首先在Ubuntu上通过iptables -L查看规则,发现都是默认规则
通过指令iptables -A INPUT -p icmp -j DROP指令使得主机不接受icmp的数据包。
其中-A是追加一条规则,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理。
然后我们回到kali中去ping SEED Ubuntu发现ping一直没有反应,回到SEED再次查看规则,可看到一条icmp针对任何位置不允许访问的规则
通过指令iptables -F删除自定义规则,然后我们可以发现此时又可以ping通
(2)只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问
首先我们先telnet一下看是否可以
然后使用iptebles -P INPUT DROP指令拒绝一切的数据包流入(修改的是默认规则-p),此时应该两台电脑都无法访问
然后使用指令iptables -A INPUT -p tcp -s 192.168.200.125 -j ACCEPT开启Metasploitable对SEED的tcp服务,并用iptables -L查看规则
此时我们再回到kali和Metasploitable中去telnet,发现kali不能telnet
但是Metasploitable可以
然后我们输入iptables -F和iptebles -P INPUT ACCEPT恢复到初始状态,实验完毕。
实践二
使用snort对给定的pcap文件进行入侵检测,并对检测出的攻击进行说明,获得报警日志。
使用指令snort -r listen.pcap -c /etc/snort/snort.conf -K ascii对pcap文件进行入侵检测,-r:从pcap格式的文件中读取数据包,-c
使用命令行vim /var/log/snort/alert打开报警日志文件,可以发现这个攻击是nmap发起的;
实践三
分析蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵技术完成其攻击数据捕获和控制需求的
1)提供的脚本是如何实现蜜网网关的数据捕获和数据控制机制?
2)获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数
3)蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
4)Bonus:蜜网网关中的Snort规则是如何自动升级的?
(1)捕获数据机制:iptables可以通过记录日志的形式来捕获网络连接信息,包括源地址,目的地址,使用的端口和进行连接的协议、长度等等;Snort对符合入侵检测特征的攻击数据包发出响应的报警信息,从而标识网络流中存在的攻击事件。
我们先使用su -提权,然后输入vim /etc/init.d/rc.firewall去查看文件
文件中使用了全局变量,即使用了$的变量,-n表示使输出中的IP地址和端口以数值的形式显示,而不是默认的名字,比如主机名、网络名、程序名,-e暂未找到其含义,-N表示根据用户指定的名字创建新链,总的来说就是创建两条规则链,即白名单和黑名单规则链。
还有协议处理包
iptables中的默认策略和本地策略,-P表示为链设置默认的target(可用的是DROP和ACCEPT),这个target称作策略,默认策略中无论是入站、出站还是路由转发,全部丢弃,本地安全策略则是进站和出站都为允许,因为是在本地通信,故不存在路由转发。
(2)获取IPTables的实际规则列表、snort和snort_line的实际执行参数
输入iptables -L来查看规则列表
我们可以发现默认的规则INPUT、FORWARD、OUTPUT都已经被关闭了。
通过 vim /etc/init.d/snortd 打开Snort脚本文件,可以看到些参数的选项:默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort。
获取Snort_inline实际执行参数:执行命令 vim /etc/init.d/hw-snort_inline 打开snort_inline的脚本文件,可以看到到实际执行的参数。
(3)密网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
使用 chkconfig --list 命令来对linux上运行的服务进行查询,可以发现NIDS的0~6都是off,说明是需要手动启动的,而防火墙和NIPS不全是off,是跟随系统启动的。-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置):
(4)密网网关中的Snort规则是如何自动升级的?
在/etc目录下使用命令“vim honeywall.conf”打开honeywall配置文件,这个里面可以看到一些,如我们配置的IP地址、子网掩码等等。
我们可以看到snort规则,默认是不自动更新的。还可以看到Oinkmaster字样,这是个自动更新的软件。
遇到的问题及解决方法
-kali连不上网了
-上网找了kali连不上网怎么办亲测管用
-问题:在虚拟机里面telnet之后不会退了哈哈
-解决方法:百度了之后发现ctrl+],之后再输入quit即可
-问题:不知道为什么在kali里面安装snort总是失败
-解决方法:暂未解决
-问题:再次开启虚拟机的时候出现了黑屏的现象,重装也是不行
-解决方法:百度了一下说网络与主机不匹配,让我重置一下网络地址还有说把虚拟打印打开的,都试了就成功了。
-问题:ubuntu卡死,一直开不了机,重装了也不行
-解决方法:重装了两次。。。
遇到的最大的问题:
这个问题真的让我裂开了,捣鼓了一下午加一晚上,重装了两遍环境都不行,报着最后的希望重新安装了一遍环境,实在太困了,睡一觉起来弄他就好了,希望我的虚拟机不要再调皮了,正正常常的不好嘛!
参考资料
iptables命令详解
《网络攻防技术与实践》-诸葛健伟