20212811 2021-2022-2 《网络攻防实践》第五次(第7周)作业
1.实践内容
1.1网络安全防范技术与系统
防火墙技术概述
-
从技术范畴上说,防火墙属于一种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。
-
防火墙安全功能:
- 检查控制进出网络的网络流量
- 防止脆弱或不安全的协议和服务
- 防止内部网络信息的外泄
- 对网络存取和访问进行监控审计
- 防火墙可以强化网络安全策略并集成其他安全防御机制
-
防火墙作为网络边界防护机制而先天无法防范的安全威胁:
- 来自网络内部的安全威胁
- 通过非法外联的网络攻击
- 计算机病毒传播
-
防火墙由于技术瓶颈问题目前还无法有效防范的安全威胁
- 针对开放服务安全漏洞的渗透攻击
- 针对网络客户端程序的渗透攻击
- 基于隐蔽通道进行通信的特洛伊木马或僵尸网络
1.2 网络防范技术与系统
防火墙功能:在网络协议栈的各个层次上实施网络访问控制机制,对网络流量和访问进行检查和控制。
- 检查控制进出网络的网络流量(最基本功能)
- 防止脆弱或不安全的协议和服务(通过过滤)
- 防止内部网络信息的外泄(Finger、DNS服务等)
- 对网络存取和访问进行监控审计
- 强化网络安全策略并集成其他安全防御机制
防火墙不足:
先天缺陷:
- 来自网络内部的安全威胁
- 通过非法外联的网络攻击
- 病毒传播
技术瓶颈:
- 针对开放服务安全漏洞的渗透攻击(无法区分针对开放服务的正常访问和恶意攻击)
- 针对网络客户端程序的渗透攻击(难以从网络流量中检测出针对客户端的渗透攻击)
- 基于隐蔽通道进行通信的特洛伊木马或僵尸网络
防火墙技术:
- 包过滤技术:在路由功能基础上拓展,对网络层和传输层包头信息的检查,确定是否应该转发数据包。
- 基于状态检测的包过滤技术:维护所有通过防火墙的网络连接记录,并依次确定数据包是否属于一个新建的连接,或是已建连接的一部分,或是一个非法数据包。
- 代理技术:允许客户端通过它与另一个网络服务进行非直接的连接。
- 应用层代理技术优点:
1.应用代理可以起到隐藏内部网络信息的作用。
2.通信数据必须通过代理进行中转,可对应用层数据进行严格的检查。
3.应用代理采用存储转发机制,因此可容易的实现在线审计。
4.应用代理可提供用户级身份认证机制,可让代理服务器只为已知的、合法的用户提供服务。 - 应用层代理技术缺点:
1.对不同的应用层服务需要相应的一种应用代理服务程序,且对用户不透明,需用户配置代理。
2.应用代理的解析和处理内容多,因而处理速度较慢,不适合应用在主干网络中。
3.需要为每种服务单独设置一个代理服务器,代价较高
4.无法支持非公开协议的服务 - 电路级代理技术:工作在传输层,可为多种不同的应用服务提供支持,不需要为不同的服务配置不同的代理程序
- NAT代理技术:工作在网络层,方便安全。
防火墙部署办法:
- 包过滤路由器
- 双宿主堡垒主机
- 屏蔽主机
- 屏蔽子网
1.3 Linux开源防火墙:netfilter/iptables
工作原理:netfilter组件实现了静态包过滤和状态报文检查(动态包过滤)基本防火墙功能等,iptables是防火墙配置工具。
netfilter/iptables包含三个最基本的规则表:包过滤处理的filter表、网络地址转换处理的nat表、特殊目的修改的mangle表。
链是顺序执行规则的编排方式,表是规则集的组织形式。
1.4 网络检测技术与系统
入侵检测
评估入侵检测技术和系统的两个重要参数:
- 检测率:捕获到的攻击行为与全部攻击行为之比
- 误报率:误报数目与全部报警数目之比
技术类型:
- 误用检测:收集已知入侵行为的特征并构成特征库,对检测的信息进行特征模式匹配
- 异常检测:建立系统正常模式轮廓,对检测的系统进行轮廓比较,超出阈值则报警
2.实践过程
2.1 动手实践:防火墙配置
2.1 手动实践:防火墙配置
实践任务:配置Linux操作系统子台上的iptables, 或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192. 168.200.10),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.168.200.4)无法访问。
(3)本实验使用linux上的iptables,我们先用主机B ping
一下主机A192.168.200.10
,如下图:
(4)iptables -A INPUT -p icmp -j DROP指令使得主机不接受icmp的数据包。
-A是追加一条规则,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理(ACTION)
(5)再用主机Bping
一下主机A,得到结果
(6)进行第二步,只需要使用命令iptables -A INPUT ! -s 192.168.200.3 -p icmp -j REJECT
,如下
(7)表示除192.168.200.123
外拒绝ICMP报文
(8)因为此时使用了REJECT
,所以metaploitable主机显示目标端口不可达
当然,此时查看iptables规则表可以看到如下
使用iptables -F
可以删除规则表中内容,回归默认ACCEPT设置
2.2 手动实践:Snort
任务:使用Snort对给定pcap文件(第4章中的解码网络扫描任-一个peap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下。
(1)从离线的pcap文件读取网络日志数据源。
(2)在snort.conf中配置明文输出报警日志文件。
(3)指定报警日志log目录(或缺省log目录=var/log/snort) 。
使用snort命令snort -c /etc/snort/snort.conf -r listen.pcap -K ascii
,即可用ascii码输出日志文件alert,如下图
(2)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问
这个实验在WinXPAttacker上实现
打开控制面板->管理工具->本地安全策略,右键选择“IP安全策略”,创建IP安全策略
(3)依次执行如下操作:右键点击IP安全策略->选择管理IP筛选器和筛选器操作->在管理IP筛选器列表中建立一个过滤规则:ICMP_ANY_IN,源地址选任意IP,目标地址选本机
(4)切换到管理过滤器操作,增加一个名为Deny的操作,操作类型为 阻止(block),这样我们就有了一个关注所有进入ICMP报文的策略和丢弃所有报文的过滤操作
(5)右键点击ip安全策略->创建ip安全策略 ->下一步:名称:禁止ping;--下一步:取消激活默认响应规则->完成 ->禁止ping属性->添加(勾选,使用添加向导)->下一步直至“身份验证方法”->选第三项,输入共享字串->下一步:在ip筛选器列表里选ping->下一步到完成
(6)在“本地安全设置”右侧可以看到 “禁止ping”这条规则,但是指派显示否,右键点击 “禁止ping”,点击指派
(7)至此,一条禁止别人ping 自己的ip地址的策略就部署完毕。打开kali 进行ping命令发现超时,说明试验成功
只允许特定IP地址 (如FTP、HTTP、SMB),而其他的IP地址无法访问
思路:
第一步:打开两个windows系统的telnet服务,为了测试远程访问控制,记录修改前可以远程访问的状态。
第二步:通过之前的安全策略步骤,关闭TCP协议下的3389端口,让特定的IP地址不能远程访问控制,并记录结果。
(1)打开windows telnet服务,首先在[运行]中输入"services.msc
",确定后出现[服务管理器]
在双击后出现的[属性对话框]中[启动类型]改为[自动]或[手动];
(2)启动Telnet服务:在[属性对话框]中的[服务状态]项中点击[启动];
在[运行]中输入"cmd"
,确定后在光标提示符输入"net start telnet
"回车,当屏幕显示"Telnet服务正在启动...Telnet 服务已经启动成功。"后,说明Telnet服务已经在你本机启动了。
(3)开始进行修改前的远程访问控制:运行mstsc
,连接另一台windows
(4)关闭远程访问控制,在win2kserver里面进行本地安全策略设置如图
测试远程连接,无响应,试验成功
2、动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
使用kali 输入命令 snort -r listen.pcap -c /etc/snort/snort.conf -K ascii
对listen.pacp 进行入侵检测。其中,指令中-K ascii主要是为了指定输出log文件的编码为ASCII(默认的是binary)。查看输出,我们可以看到检测出的数据包大部分为TCP数据包
使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明
- 在SEED Ubuntu中安装snort(原因和过程让人心累)
输入snort -r listen.pcap -c /etc/snort/snort.conf -K ascii指令对listen.pcap进行入侵检测
-r 从pcap格式的文件中读取数据包。
-c 使用配置文件,这会使得snort进入IDS模式,并从中读取运行的配置信息。
-K ascii主要是为了指定输出log文件的编码为ASCII(默认为binary)。 - 可以看出检测出的数据包大部分为TCP数据包。
如图所见TCP包占绝大多数。
2、snort会在默认目录 /var/log/snort 生成一个日志文件。
输入命令cd /var/log/snort 进入文件夹。
输入命令vi snort.alert.fast,查看具体文件。
可以看到,本次攻击是用nmap发起的,攻击机IP地址是 172.31.4.178,靶机IP地址是 172.31.4.188 ,还可以看到端口号等等。
2.3 分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
step1
查看roo在开机启动的过程中iptables的初始化操作,输入指令:vim/etc/init.d/rc.firewall。a
2.4 iptables
1、iptables的实际规则列表:
执行iptables -L可以查看到实际的规则列表。
2.输入vim /etc/init.d/snortd
,查看snort的脚本文件,可以看到实际运行时候的参数
3.输入vim /etc/init.d/hw-snort_inline
打开snort_inline的脚本文件,可以获取Snort_inline实际执行参数
三、学习中遇到的问题及解决
在windows中 如何关闭ICMP(ping),使用的方法是通过TCP/IP的自带的过滤器。
运用了iptables的一些指令进行了防火墙的配置,经实践,在配置规则之后,防火墙可以起到防御的作用。