网络攻防技术综合实训-课件 第9章 防火墙技术实训_第1页
网络攻防技术综合实训-课件 第9章 防火墙技术实训_第2页
网络攻防技术综合实训-课件 第9章 防火墙技术实训_第3页
网络攻防技术综合实训-课件 第9章 防火墙技术实训_第4页
网络攻防技术综合实训-课件 第9章 防火墙技术实训_第5页
已阅读5页,还剩156页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章

防火墙技术实训9.1IPTABLES防火墙实验内容提纲实验目的2实验内容和环境3实验步骤4预备知识1总结与思考5防火墙(firewall)是一个应用广泛但其含义随领域不同而不同的术语。防火墙在电力系统中,指变电站内用于隔离充油设备、防止火焰蔓延的隔墙;在煤炭行业中,则指为封闭火区而修筑,用于限制火势扩散和保护设备安全的隔墙。防火墙在网络安全领域,根据2020年4月发布的国家标准《信息安全技术

防火墙安全技术要求和测试评价方法》(GB/T20281—2020),防火墙被定义为“对传输中的数据流进行解析,实现访问控制及安全防护功能的网络安全产品”。防火墙按其安全目标与实现机制,可划分为网络型防火墙、Web应用防火墙、数据库防火墙和主机型防火墙等。防火墙网络型防火墙(network-basedfirewall)通常部署于不同安全域之间(如内、外网络边界),对数据流实施解析,并提供网络层与应用层的访问控制与安全防护。其主要分为两种形态:防火墙一是单一主机防火墙(硬件防火墙),采用专用主机(常为高性能服务器)配备至少两块网卡,分别连接不同网络,并运行防火墙软件实现功能;二是集成于路由器中的防火墙模块,与路由功能共享硬件平台。后者多见于中高端路由器,可降低企业采购与部署成本,但性能通常低于前者。防火墙在Linux开源系统中,普遍采用Netfilter/Iptables作为防火墙解决方案。Netfilter位于内核空间,实现静态包过滤和状态报文检查等核心功能;Iptables则处于用户空间,作为配置工具通过命令行设定Netfilter的过滤与管理规则。防火墙Iptables涵盖四个规则表(filter、nat、mangle、raw)和五个规则链(INPUT、FORWARD、OUTPUT、PREROUTING、POSTROUTING)。其中,filter表用于包过滤,nat表负责地址转换;INPUT链处理输入数据包,防火墙FORWARD链处理转发包,OUTPUT链处理输出包。本次实验主要使用filter表中的INPUT和OUTPUT链。防火墙Iptables为用户提供了配置Netfilter规则的命令行接口,其基本命令语法如下:$iptables[-ttable]command[match][target]其中,[-ttable]指定要操作的表,如filter、nat、mangle规则表等,若不指定表名,则默认为filter表。command部分的常用命令如下所示。防火墙-A:新增加规则到链末尾。-D:从链中删除匹配的规则。-P:为链设置默认策略,所有不符合规则的包都被强制使用此策略。-N:用指定的名称创建一个新链。-F:清空指定链中的规则,若未指定链名,则清空表中所有链规则。-L:列出指定链中的所有规则。防火墙match部分为规则匹配条件,指定数据包与规则匹配所应具有的特征,在配置多个匹配条件时采用“与”关系,即同时满足才触发目标操作行为。target部分指定满足匹配条件之后的目标操作策略。防火墙包过滤和报文状态检查机制是Netfilter实现的最基本的防火墙功能,主要在INPUT、OUTPUT和FORWARD链检查点对网络流量进行检查与过滤。在设置和执行网络访问控制时,防火墙通常会有如下两种不同的策略。防火墙(1)设置默认的通行策略为允许(ACCEPT),然后定义禁止的网络流量和行为。(2)设置默认的通行策略为禁止(DROP),然后定义允许的网络流量和行为。防火墙内容提纲实验目的2实验内容和环境3实验步骤4预备知识1总结与思考5掌握Iptables防火墙的配置方法,加深对防火墙原理的理解。实验目的内容提纲实验目的2实验内容和环境3实验步骤4预备知识1总结与思考5在Kali虚拟机上配置Iptables防火墙,并在该虚拟机进行相关实验。实验内容和环境内容提纲实验目的2实验内容和环境3实验步骤4预备知识1总结与思考5(1)查看Iptables设置:在Kali虚拟机中打开终端命令行,使用iptables-L命令分别查看本机Iptables中filter、nat、mangle各规则表的设置情况,分别如图9-1~图9-3所示。实验步骤图9-1filter规则表设置情况实验步骤图9-2nat规则表设置情况实验步骤图9-3mangle规则表设置情况实验步骤(2)清除原有规则:若表中已有规则,则清除filter规则表中的所有规则链的规则,使用iptables-F、iptables-X、iptables-Z命令,如图9-4所示。实验步骤图9-4清空规则实验步骤(3)设置通行策略:设置默认的通行策略为禁止(DROP),如图9-5所示。实验步骤图9-5设置通行策略为禁止(DROP)实验步骤(4)验证设置效果:首先在该操作机(IP地址为)上对在同一个局域网中的另一台Kali虚拟机(IP地址为)执行ping命令,如图9-6所示。同样,在另一台Kali虚拟机上也执行ping命令,如图9-7所示。发现两个请求的丢包率均为100%,都被Iptables过滤掉了。实验步骤图9-6IP地址为的Kali虚拟机执行ping失败实验步骤图9-7IP地址为的Kali虚拟机执行ping失败实验步骤(5)设置过滤规则,定义允许的网络流量和行为:命令为iptables-AINPUT-s源IP地址-d目的IP地址-j动作和iptables-AOUTPUT-s源IP地址-d目的IP地址-j动作,如图9-8所示。实验步骤图9-8设置过滤规则实验步骤前两条命令表示允许(ACCEPT)源地址为(1)且目的地址为()的流量包输入,其中,是操作机的IP地址;后两条命令表示允许其输出。完成后用iptables-L查看filter规则表设置,如图9-9所示。实验步骤图9-9查看filter规则表设置实验步骤(6)验证设置效果:两台Kali虚拟机互相执行ping命令,都能ping成功,分别如图9-10和图9-11所示。实验步骤图9-10IP地址为的Kali虚拟机执行ping成功实验步骤图9-11IP地址为的Kali虚拟机执行ping成功实验步骤(7)设置特定服务的规则:在操作机中打开火狐浏览器,发现无法访问图9-12中的网址,如图9-12所示。实验步骤图9-12无法访问https://实验步骤若想访问该网址,要允许DNS查询(UDP端口53)和HTTPS(TCP端口443)通信。在Iptables的filter规则表中添加图9-13所示规则,开启DNS服务53端口,保证其能够解析域名。开启HTTPS服务443端口,保证其能够进行HTTPS通信。实验步骤图9-13设置规则实验步骤这里分别对INPUT和OUTPUT两个规则链进行设置(如果系统需要作为路由器转发数据包,则还需对FORWARD规则链进行设置),如图9-14所示。注意:--sport表示源端口,--dport表示目的端口。然后就可以成功访问图9-15中的网址了。实验步骤图9-14查看规则实验步骤图9-15成功访问实验步骤内容提纲实验目的2实验内容和环境3实验步骤4预备知识1总结与思考5通过本实验,读者不仅能掌握Linux防火墙配置技能,更能培养系统性安全思维,这是构建可靠网络架构的核心能力。(1)理解网络防御的本质:防火墙是纵深防御的第一道关卡,需与其他机制(IDS、加密)协同。(2)强化运维意识:规则变更需测试、备份、回滚三步走。总结与思考具体实验的经验总结如下。(1)规则顺序至关重要:例如,将DROPALL放在首条会导致后续规则失效。因此,应先放行必要服务(SSH、ICMP),最后设置-PINPUTDROP。总结与思考(2)远程操作风险:错误配置可能锁定服务器(如误封SSH端口),可使用cron设置定时回滚:∗/5∗∗∗∗iptables-restore/backup/iptables.bak或通过物理控制台/VNC操作。总结与思考(3)ICMP处理:完全屏蔽ping(ICMP)会影响网络诊断,可使用以下命令:iptables-AINPUT-picmp--icmp-typeecho-request-jACCEPT#允许入站pingiptables-AOUTPUT-picmp--icmp-typeecho-reply-jACCEPT#允许出站回复总结与思考注意:在生产环境中使用Iptables前,务必在测试环境中验证规则逻辑,并通过tcpdump抓包分析流量行为,以确保规则按预期生效。总结与思考9.2Web防火墙实验内容提纲实验目的2实验内容和环境3实验步骤4预备知识1总结与思考5Web应用防火墙(WebApplicationFirewall,WAF)是一种部署于Web服务器前端的网络安全产品,主要用于对流经的HTTP/HTTPS请求与响应数据进行解析,实现访问控制与安全防护功能。它可对恶意访问实施实时阻断、隔离、记录或警告,以保障Web应用的安全。Web应用防火墙WAF的核心能力包括对Web应用层数据的深度解析,支持对不同编码方式的数据进行多重转换与还原,将其转为可分析的明文,并在此基础上执行深度检测。其主要分析方法分为两类:基于规则的检测和异常检测。Web应用防火墙基于规则的检测方法对每个会话都执行一系列安全检查,每项检查由一条或多条检测规则构成。若请求未通过某条规则,则被视为非法并拒绝。该类方法对已知特征的Web攻击具有较高准确性,缺点在于难以识别未知攻击,且规则配置较复杂。Web应用防火墙异常检测方法则从Web服务本身的业务特征出发,通过持续学习用户访问行为,统计常见页面的访问模式(如URL参数类型与长度、表单参数类型与长度等),建立正常访问基线。一旦检测到偏离该基线的行为,WAF将根据预设策略进行警告或阻断。此外,WAF还可借助爬虫技术主动遍历整个站点,Web应用防火墙此外,WAF还可借助爬虫技术主动遍历整个站点,构建正常状态模型,或通过扫描生成防护规则。此类方法的优势是能够识别未知攻击,但误报率相对较高。Web应用防火墙近年来,基于人工智能的语义分析方法逐渐应用于WAF。该方法能够结合上下文逻辑进行攻击识别,还原经多重伪装的攻击向量,并从编码底层识别其危害程度,从而显著提升判断准确性,降低误报率,并增强对未知威胁的检测能力。Web应用防火墙WAF通常以串行方式部署于Web服务器前端,不仅要求硬件具备较高的性能,还要确保不影响Web服务的正常运行。在实际部署中,WAF还需与负载均衡、Web缓存等常见的位于Web服务器前的设备协调配合,以保证整体架构的稳定与安全。Web应用防火墙内容提纲实验目的2实验内容和环境3实验步骤4预备知识1总结与思考5掌握Web防火墙的配置方法,加深对Web防火墙原理的理解。实验目的内容提纲实验目的2实验内容和环境3实验步骤4预备知识1总结与思考5本实验需要将Ubuntu虚拟机作为服务器提供Web代理服务,Kali虚拟机作为受限的客户端。在Ubunut虚拟机上配置Squid代理服务器,在Kali虚拟机上进行Wireshark流量分析。实验架构如图9-16所示,实验环境如表9-1和表9-2所示。实验内容和环境图9-16实验架构实验内容和环境表9-1虚拟机实验内容和环境表9-2实验工具实验内容和环境内容提纲实验目的2实验内容和环境3实验步骤4预备知识1总结与思考51.虚拟网络配置(1)本实验涉及的所有虚拟机的虚拟网络均设置为NAT模式,如图9-17所示。NAT模式的VMnet配置信息如图9-18所示,其NAT设置如图9-19所示,DMCP设置如图9-20所示。其中,子网IP地址为/24,网关为。实验步骤图9-17虚拟机网络适配器设置为NAT模式实验步骤图9-18NAT模式的VMnet配置信息实验步骤图9-19NAT设置实验步骤图9-20DHCP设置实验步骤(2)打开Kali、Ubuntu虚拟机。在Kali虚拟机中使用ifconfig命令查看IP地址为,如图9-21所示。实验步骤图9-21在Kali中查看IP地址实验步骤(3)在Ubuntu虚拟机中使用ifconfig命令查看IP地址为,如图9-22所示。(4)在Ubuntu虚拟机中配置Squid代理服务器:首先下载Squid,然后执行sudoaptin-stallsquid命令,如图9-23所示。实验步骤图9-22在Ubuntu中查看IP地址实验步骤图9-23下载并安装Squid实验步骤(5)使用命令squid--version查看Squid版本,如图9-24所示,验证是否安装成功。使用命令sudoservicesquidstatus查看Squid的服务状态,如图9-25所示。图9-25显示,Squid服务已开启。注意:有些Linux版本中无service命令,这时使用命令sudosystemctlstatussquid实验步骤图9-24查看Squid版本实验步骤图9-25查看Squid服务状态实验步骤2.配置Squid(1)在Squid代理服务器中,使用访问控制表(ACL)来限制对某些网站的访问。Squid的配置文件为squid.conf(路径为/etc/squid/squid.conf),如图9-26所示。通过修改该文件可实现各种策略的配置,但每次修改之后都需要重启服务才能生效。实验步骤图9-26squid.conf所在目录实验步骤(2)Kali虚拟机(/24)是本实验中的客户端,相当于网络中的一个客户机。因此,客户端所在网络为/24。打开squid.conf并进行配置。squid.conf允许所有属于/24网络的客户端通过Squid代理服务器访问互联网资源,如图9-27所示。下面介绍如何使用vi编辑。实验步骤图9-27squid.conf文件内容实验步骤(3)按“/”键(准备查找内容),输入Andfinally(查找内容),按Enter键进行定位,基本上可以直接定位到图9-28所示的位置。实验步骤图9-28查找Andfinally实验步骤(4)定位之后,进行规则写入。按i键进入插入模式,即可进行写入。如图9-29所示,设置规则仅允许来自/24网络的主机连接。这里使用acl定义ACL规则,使用http_access配置访问控制方案(allow为允许,deny为拒绝)。实验步骤注意:一定要注释掉原始访问控制,否则下面的操作将不起任何作用,也会导致即使是/24网络的客户端也无法通过Squid代理访问互联网,具体原因可参阅9.2.5节中的相关内容。实验步骤图9-29配置squid.conf文件实验步骤(5)写入完成后,按ESC键退出插入模式;按“:”键进入底行模式,输入wp,保存并退出,如图9-30所示。实验步骤图9-30保存并退出实验步骤(6)输入命令sudoservicesquidrestart,重启Squid服务使以上修改生效。注意:有些Linux版本中无service命令,这时使用命令sudosystemctlstatussquid。实验步骤3.在Kali虚拟机中测试Squid代理服务器(1)连接Squid:在Kali虚拟机中打开火狐浏览器,单击右上角的三条横杠图标,找到Setting进入设置。在搜索框输入proxy,单击搜索结果中的NetworkSettings的Settings按钮,如图9-31所示。实验步骤图9-31火狐浏览器的代理设置实验步骤(2)如图9-32所示进行手动设置代理:代理服务器的IP地址为(Ubuntu虚拟机的IP地址),端口号为3128(Squid默认)。注意:可通过在squid.conf文件中搜索http_port查看端口号,如图9-33所示,且可以修改,这里使用默认端口3128。实验步骤图9-32手动设置代理实验步骤图9-33查看Squid默认端口实验步骤4.网络测试(1)在Kali虚拟机中打开火狐浏览器,在地址栏中输入,查看是否能成功访问。如图9-34所示,能够正常访问,说明通过该代理能正常上网。但这能说明作为客户端的Kali虚拟机成功连接了Squid代理服务器吗?下面使用Wireshark进行流量分析。实验步骤图9-34成功访问实验步骤(2)Wireshark流量分析(连接代理):打开Kali虚拟机中自带的Wireshark工具,双击eth0开始抓包,如图9-35所示。实验步骤图9-35双击eth0开始抓包实验步骤(3)刷新刚刚访问的页面,Wireshark中出现大量数据包,停止抓包(单击Wireshark左上方的方块图标),如图9-36所示。实验步骤图9-36访问的抓包实验步骤(4)进入Wireshark,从第1个数据包开始查看,如图9-37所示。这里重点关注No.1~No.13数据包,分析Squid代理服务器的作用。实验步骤图9-37访问页面产生的数据包实验步骤(5)No.1~No.3流量包(见图9-38):这是(Kali虚拟机)与(代理服务器)TCP的三次握手过程,通过三次握手,二者成功建立连接。实验步骤图9-38No.1~No.3数据包实验步骤(6)No.4~No.5流量包(见图9-39):建立连接之后,Kali虚拟机向代理服务器发出一个HTTP包,发送CONNECT请求连接目标:443。No.5流量包是代理服务器收到请求后返回给Kali虚拟机的ACK确认包。实验步骤图9-39No.4~No.5数据包实验步骤(7)No.6~No.9流量包(见图9-40):代理服务器()收到连接请求后,向网关()发起DNS查询请求。No.6查询类型为A的记录(请求从域名到IPv4地址的映射),No.7查询类型为AAAA的记录(请求从域名到IPv6地址的映射),No.8和No.9为返回的查询结果。实验步骤图9-40No.6~No.9数据包实验步骤(8)No.10~No.13(见图9-41):前三个数据包是代理服务器()与8(DNS查询结果,的IPv4)的TCP的三次握手过程,二者由此建立连接。No.13为代理服务器()返回给Kali虚拟机()的HTTP包,状态码200表示请求资源成功。实验步骤图9-41No.10~No.13数据包实验步骤综上所述,Kali虚拟机首先与代理服务器建立TCP连接,并将请求内容告诉代理服务器,代理服务器与目标站再建立TCP连接,代替Kali虚拟机发出请求,最后将请求到的内容经过代理服务器返回给Kali虚拟机。Kali虚拟机访问是经过Squid代理服务器的。实验步骤5.Wireshark流量分析(不连接代理)(1)在火狐浏览器中关闭代理设置,使用同样的方法,重新开始抓包,重新访问,查看抓包情况,如图9-42所示。实验步骤图9-42设置火狐浏览器的代理实验步骤(2)在Kali虚拟机不使用代理服务器的情况下,Kali虚拟机()首先进行DNS查询,然后根据查询结果与目标进行TCP三次握手(No.11~No.13),如图9-43所示。这样,Kali虚拟机与目标IP地址(的IP地址)直接建立了连接。实验步骤至此,读者已经对Squid的配置及其工作原理有了大致的了解,下面介绍Squid的其他应用场景。实验步骤图9-43重新访问产生的数据包实验步骤(3)拒绝来自/24网络的客户端使用代理服务,squid.conf配置信息如图9-44所示。注意:最后一行必须有,保证其他客户端能使用,否则其他客户端将无法使用。实验步骤图9-44squid.conf配置信息实验步骤将修改信息保存并退出,在Ubuntu虚拟机中执行命令sudoservicesquidrestart,重启Squid服务。实验步骤(4)回到Kali虚拟机,手动设置代理服务器后使用浏览器访问并抓包,如图9-45所示,显示“Theproxyserverisrefusingconnections”,即代理服务器拒绝连接。实验步骤图9-45火狐浏览器拒绝访问实验步骤(5)图9-46所示是上述过程中所有数据包的交互。客户端Kali虚拟机()首先与代理服务器()的TCP三次握手,成功建立连接,然后No.4为Kali虚拟机向代理服务器发送一个HTTP请求连接的数据包,代理服务器收到该请求后回复一个ACK确认包(No.5)、一个状态码为403(禁止访问)的HTTP包(No.6)。实验步骤图9-46访问产生的数据包实验步骤(6)设置拒绝所有使用代理的客户端访问4399.com如图9-47所示。这里,最后一行命令可以没有,因为Squid默认拒绝所有未明确允许的访问,添加可以更明确地表达这点。实验步骤保存并退出,在Ubuntu虚拟机中重启Squid服务。回到Kali虚拟机,手动设置代理服务器后,使用浏览器访问4399.com并抓包。实验步骤图9-47squid.conf配置信息实验步骤(7)如图9-48所示,访问4399.com的请求被代理服务器拒绝。实验步骤图9-48火狐浏览器拒绝访问4399.com实验步骤(8)如图9-49所示,客户端Kali虚拟机()与代理服务器()进行TCP三次握手后成功建立连接,然后Kali虚拟机发送访问4399.com的请求(No.4);代理服务器收到该请求后,发送状态码为403(拒绝访问)的HTTP包(No.6);实验步骤图9-49访问4399.com产生的数据包实验步骤最后(No.7~No.10)Kali虚拟机与代理服务器进行TCP四次挥手,断开连接。访问4399.com以外的其他网站,如,如图9-50所示,可以正常访问。实验步骤图9-50成功访问实验步骤6.连接代理使用用户认证(1)使用命令sudoaptinstallapache2-utils-y安装apache2-utils,如图9-51所示。实验步骤图9-51安装apache2-utils实验步骤(2)使用命令/etc/squid$sudotouchpasswords和/etc/squid$sudochmod777passwords在/etc/squid/目录下创建一个包含客户端身份验证详细信息的密码文件passwords,如图9-52所示。实验步骤图9-52创建passwords文件实验步骤(3)使用命令/etc/squid$sudohtpasswd-cpasswordhcc添加一个用户hcc,并设置密码为123(用户名、密码可随意设置),如图9-53所示。实验步骤图9-53添加用户hcc实验步骤(4)编辑squid.conf文件后保存并退出,在Ubuntu虚拟机中重启Squid服务,如图9-54所示。实验步骤图9-54编辑squid.conf文件实验步骤(5)回到Kali虚拟机,手动设置代理服务器后,尝试访问(也可访问其他网站,在访问之前打开Wireshark),出现如图9-55所示的页面,要求用户登录认证。实验步骤图9-55访问要求用户登录认证实验步骤(6)正确输入用户名和密码后,能够正常访问当前网站,如图9-56所示。实验步骤图9-56正常访问实验步骤(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论