前言
为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!
一、实验目的
一、 Windows 防火墙
(1)深入理解 NAT 和防火墙的工作原理。
(2)掌握 Windows Server2003 操作系统内置互联网连接防火墙(ICF)和网络地址转换(NAT)的配置技能
二、 Linux 防火墙
1.理解防火墙的功能和工作原理。
2.掌握 Linux 防火墙的配置与使用。
二、实验原理
一、 Windows 防火墙
互联网连接防火墙简称 ICF,用于保护家庭用户和小型企业不受外部威胁的侵害。ICF旨在为 Windows 操作系统提供一个基本的入侵保护机制,这意味着 ICF 可以防止黑客扫描计算机信息,也可以阻止未经计算机请求的外部流量进入计算机。所以,这个简单的防护工具可以有效防止低级黑客入侵系统。一般用户很难配置防火墙。ICF 为用户提供一种简单和透明的安全体验。用户可以通过一个简单的复选框或者向导在互联网连接上启用 ICF,在为高级用户提供灵活的定制设置的同时,也为普通用户提供了一种简单轻松的配置过程。
NAT(Network Address Translation)意为“网络地址转换”,它是一个IETF(Internet Engineering Task Force,因特网工程任务组)标准,允许一个整体机构以一个公用 IP 地址出现在互联网上。它是一种把内部私有网络地址(IP 地址)翻译成合法网络 IP 地址的技术。 NAT 功能通常被集成到路由器、防火墙、ISDN 路由器或者单独的 NAT 设备中,通过软件也可以实现这一功能。
NAT 有三种类型:静态 NAT(Static NAT)、动态地址 NAT(Pooled NAT)以及网络地址端口转换 NAPT(Port-Level NAT)。其中静态 NAT 的设置最简单、最容易实现,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址;动态地址 NAT 则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络;NAPT 则是把内部地址映射到外部网络的一个IP 地址的不同端口上。
需要注意的是:
(1)如果局域网上的主机为自动获得 IP 地址,则需要配置 DHCP 服务器。
(2)注意区分“入站筛选器”和“出站筛选器”。
防火墙是在可信网络(内部网络)和不可信网络(外部网络)之间执行控制策略的系统, 通过监测、限制、更改通过它的数据流,对外屏蔽内部网络的信息、结构和运行状况,以防 止发生网络入侵或攻击,从而达到对内部网络的安全保护。此外,防火墙也应用于内部网络, 保护某一重要部门的网络不受内部网中其它部门的侵害。
防火墙实质上就是一种隔离控制技术。从逻辑上看它既是一个分析器,又是一个限制器。 它要求所有进出网络的数据流都应该通过它,并且所有穿过它的数据流都必须通过安全策略和计划的确认和授权。
iptables 是 Linux 中的包过滤防火墙,通过 iptables 可以设置、维护对 IP 数据包进行过滤 的规则表,根据这些规则表中的规则,iptables 对来自某个源、到某个目的地或具有特定协议类型的数据包定义了转发、丢弃等具体的操作方法,从而实现对 IP 数据包的过滤。
在 iptables 防火墙中提供了 3 种规则表:Filter,NAT 和 Mangle。每一个规则表又由多个 规则链(chain)所组成。这 3 种表功能各不相同。在 iptables 防火墙中不同的规则表又包含 不同的规则链。其中 Filter 表是 iptables 中默认的规则表,如果没有指定其它规则表,则iptables 会按照 Filter 表中的规则对数据包进行过滤,所以 iptables 常被称为包过滤防火墙。 其它两种规则表需要通过相关命令参数设置后使用。
iptables 的语法可以简化为如下形式:iptables [-t table] command [match][target/jump]
。
其中:
(1)[-t table]选项:表示当前的策略属于哪个表,它可以是 Filter,NAT 和 Mangle 表中 的任何一个,默认是 Filter 表。
Filter 表用于一般的数据包过滤,在该表中包含了 INPUT、OUTPUT 和 FORWARD 3 个规则链。每一条链中可以有一条或多条规则,每条规则都是这样定义的:如果数据包头符合这样的条件,就这样处理这个数据包。当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件,如果满足,系统将根据该条规则所定义的方法处理该数据包;如果不满足,则继续检查下一条规则。当有数据包进入系统时,系统根据路由表决定将数据包发给哪一条链。如果数据包的目的地址是本机,则系统将数据包送往 INPUT链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢弃。如果数据包的目的地址不是本机,这个包将通过防火墙主机转发,则系统将数据包送往 FORWARD 链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢弃。如果数据包是由本地系统进程产生的,则系统将其送往 OUTPUT 链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢弃。最后,如果数据包不符合链中任何一条规则的话,系统就会根据该链预先定义的策略来处理该数据包。
NAT 表用于要转发的数据包,它包含 PREROUTING、OUTPUT 和 POSTROUTING 3 个规则 链。PREROUTING 链的作用是在数据包刚刚到达防火墙时改变它的目的地址;OUTPUT 链改 变本地产生的包的目的地址;POSTROUTING 链在包就要离开防火墙之前改变其源地址。NAT 分为两种:一种是改变源地址,即 SNAT;一种是改变目的地址,即 DNAT。SNAT 仅在 POSTROUTING 链中工作,DNAT 在 PREROUTING 或 OUTPUT 链中工作。
如果数据包及其包头内进行了任何更改,则使用 MANGLE 表,它包含一些规则来标记用于高级路由的数据包,该表包含PREROUTING、POSTROUTING、INPUT、OUTPUT和 FORWARD5 条规则链。PREROUTING 在包进入防火墙之后、路由判断之前改变数据包;POSTROUTING 是 在所有路由判断之后改变数据包;OUTPUT 在确定包的目的地址之前更改数据包;INPUT 在 包被路由到本地之后,但在用户空间的程序看到它之前改变数据包;FORWARD 在最初的路由判断之后、最后一次更改包的目的之前修改数据包的包头。
(2)command 命令:是 iptables 中最重要的部分,它指定了 iptables 命令的具体操作, 例如:插入规则、将规则添加到规则链的末尾或删除规则。常用的命令参数如表 3.2 所示。
(3)match 匹配:iptables 命令中由 match 部分指定的数据包所应具有的特征(如源和 目的地址、协议、端口、ICMP 类型等),用于和规则的匹配。常用的通用匹配如表 3.3 所示
(4)target/jump 目标选项:target 表示目标,jump 表示跳转,target/jump 决定符合条件的包跳转到何处去,并执行相应的动作,语法是-jump target 或-j target。常用的一些目标及其说明如表 3.4 所示。
此外,还允许用户定义的目标,例如:
#iptables N udp_packets
#iptables A udp_packets –p UDP --dport 53 – ACCEPT
#iptables A FORWARD –p UDP –s 192.168.1.0/24 –j udp_packets
第一个命令表示新建一条用户定义的链,名称叫做 udp_packets。第二个命令是定义udp_packets 链的策略,该策略表明接受目的端口为 53 的 UDP 数据包。第三个命令定义了一个转发策略,将源地址为 192.168.1.0/24 网段的用户产生的 UDP 数据包跳转至 udp_packets链处理。
从上面的介绍中,我们已经知道了如何建立基本的规则和链以及如何从数据包过滤标中添加或删除它们。但用上述方法所建立的规则只会保存到内存中,当重新启动计算机,这些规则都会消失。所以,如果希望在每次计算机启动之后再接着使用这些规则,那么必须将该规则集保存在/etc/sysconfig/iptables 文件中。可以使用 iptables –save 命令来做到这一点:
#/etc/rc.d.init.d/iptables –save
或者使用 services 服务来实现:
#/sbin/services iptables save
运行上述命令后,数据包过滤表中的所有规则都被保存在文件/etc/sysconfig/iptables 中。
三、实验环境
(1)运行 Windows Server2003 操作系统的PC一台,运行 windows2000/2003/XP 操作系统的 PC 两台,它们通过交换机相连。
(2)运行 Windows Server 2003 操作系统的 PC 具有两块以太网卡,一块与外网相连, 另一块与局域网相连。另外两台 PC 具有一块以太网卡,它们通过双绞线与局域网交换机相连。具体连接方式如图所示。
图 3.11 实验环境
1 台安装了 Redhat Linux 9.0 操作系统(装有 iptables)代理服务器作为防火墙,2 台集线器,其中网络拓扑图和 IP 地址分配图如图 3.33 所示。
图 3.33 实验环境图
四、实验内容
(l)配置 ICF 防火墙
设置互联网连接防火墙(ICF)其实是对 PC 中的网卡进行相关设置。ICF 防火墙与 NAT防火墙不同,它不需要多块网卡支持。ICF 通常作为个人防火墙使用,提供对本机的保护。因此,可以说 ICF 的设置过程是从网卡开始的。
执行“开始/控制面板/网络连接”,双击对外网络接口的图标,打开该接口的“状态”对话框。再打开该网络接口的“属性”对话框,切换至“高级”选项卡(如图 3.12 所示),选中“Internet 连接防火墙”下的复选框,使“高级”选项卡中的“设置”变成可用。
单击“设置/高级设置”,出现图 3.13 所示的页面。其中包括“服务”、“安全日志”以及“ICMP”3 个选项卡。在“服务”选项卡中,可以打开常用服务的访问权限,例如 FTP、HTTP、SMTP 等。
图 3.12 网络接口“高级”选项卡
图 3.13 高级设置中的服务
单击图 3.13 中的“添加”按钮,可以打开如图 3.14 所示的对话框。在该对话框中可以添加一些默认情况下系统没有的服务。例如 MySQL 数据库的 3306 端口、服务器 IP 地址或者计算机名称。
完成添加后,会在“服务”选项卡中看到添加的服务名称,并且自动选中了该项服务。如图 3.15 所示的“安全日志”选项卡,用于设置防火墙在过滤分组后所进行的记录操作,通过该记录,管理员可以了解到防火墙是否能正确连接以及过滤分组。但是,默认情况下系统并没有打开该服务,因此建议启动该功能。
图 3.14 服务设置
图 3.15 “安全日志”选项卡
在此选项卡中,选中“记录被丢弃的数据包”以及“记录成功的连接”复选框,以便设置具体记录的内容;“日志文件选项”部分用于设置日志文件名称以及大小,默认的日志文件大小为 4MB。
图 3.16 所示的“ICMP”选项卡包含设置 ICMP 协议的选项。因为通常使用 ICMP 的程序大多都是检测网络情况的软件,所以允许 ICMP 协议的数据包进入系统,黑客将可以借机扫描服务器,进而有计划性地施行攻击,例如使用 Ping 和 namp 等。
图 3.16 设置“ICMP”选项卡
若是启动默认的 ICF,ICMP 是不允许使用的,所以选中该选项卡中的复选框表示允许使用 ICMP 协议的某种功能。此外,使用 ICMP 协议最好是在内接局域网的网卡上设置,这样既可以阻挡来自互联网的 ICMP 数据包,同时也可以让局域网通过 ICMP 测试网络情况。
(2)配置 NAT/基本防火墙
Window Server 2003 内置的 NAT 也提供防火墙的功能。这个防火墙与 ICF 的最大的不同是,ICF 可以单独应用,而 NAT 内置的防火墙需要与网络地址转换(NAT)功能一起使用。NAT 防火墙不但可以保护 NAT 服务器,还可以保护局域网中其他通讨 NAT 服务连接互联网的计算机,其基本属性如图 3.17 所示。
图 3.17 NAT 基本防火墙
便用 IP 筛选器可以构建简单的防火墙,但需要先设置好 NAT,然后在设置好的 NAT 基础上增加 IP 筛选器的设置。需要注意的是,NAT 必须有两块网卡才能进行设置。其步骤如下:
①设置两块网卡的 IP 地址。
②设置 NAT。
③设置连接互联网的网卡上的 IP 筛选器。
④设置连接局域网的网卡上的 IP 筛选器(设置方法与设置互联网网卡一样)。
设置两块网卡并不复杂,只要在安装网卡的驱动程序后,分别为它们设置已经获得的 IP地址即可。对于连接互联网的地址,可设置为 ISP 所提供的地址;而对内连接 LAN 的地址则需要自行规划设置。这里假设连接 ISP 的地址是 192.168.0.16,网络掩码 255.255.255.0,网关为 192.168.0.254,DNS 为 218.2.135.1;你连接 LAN 的地址是 192.168.1.1,而且该地址也作为局域网中客户端的网关,网络掩码 255.255.255.0,DNS 为 218.2.135.1。
接着,执行“开始/控制面板/网络连接”命令,对该窗口中的网卡分别进行设置。如果该台 NAT 服务器具有多块网卡,不要注意设置的 IP 地址一定要规划适当。为网卡设置 IP地址的过程请参阅 1.1 节的内容。
网卡设置完成后,执行“开始/管理工具/路由和远程访问”命令,选择本机后,单击右键,执行“配置并启用路由和远程访问”命令,如图 3.18 所示。
图 3.18 配置并启用路由和远程访问
安装向导程序引导的第一个设置步骤就是选择服务类型,其中提供的选项有“远程访问(拨号或 VPN)”、“网络地址转换(NAT)”、“虚拟专用网络(VPN)访问和 NAT”、“两个专用网络之间的安全连接”以及“向定义配置”。因为这里只是要设置 NAT,所以选择“网络地址转换(NAT)”选项,如图 3.19 所示。
图 3.19 路由和远程访问服务器安装
选择好服务类型后,接着选择连接互联网的网络接口。由于在设置网卡时,已经将 IP地址以及连接名称设置好了,所以这里直接选择“使用此公共接口连接到 Internet”,并且选择实际连接到的互联网的网卡,如图 3.20 所示。
图 3.20 选择与互联网连接的网卡
安装向导程序在最后的对话框中,会提示已经为系统设置好 NAT 和基本防火墙,而且已设置好外部 DNS 以及 DHCP 服务器(DHCP 只有在网络需要自动分配 IP 地址时,才需要设置)。
设置完毕后,系统将会自动进行初始化,稍等片刻,系统即可完成设置。初始化完成后,点击“路由和远程访问/本地/IP 路由选择”,再点击“NAT/基本防火墙”,接着在右边的界面中选择外接互联网的网络接口,按鼠标右键执行“属性”命令,如图3.21所示。
图 3.21 路由和远程访问
点击“属性/高级”,在打开的对话框中选择“NAT/基本防火墙”选项卡,可以为该网络接口选择 3 种不同的接口类型:“专用接口连接到专用网络”、“公用接口连接到 Internet”以及“仅基本防火墙”。通常系统会根据安装向导中的设置进行设置(即设置为公用接口连接到互联网),所以不需要特别更改。
选择好连接选项后,若要启用该网络连接上的基本防火墙,可以通过选中“在此接口上启用基本防火墙”复选框来达成。另外,该网卡是连接互联网的,所以需要同时选中“在此接口上启用 NAT”复选框,来完成 NAT 功能。如图 3.22 所示。
单击“入站筛选器”按钮打开“入站筛选器”对话框,然后单击“添加”按钮,将会启动“添加 IP 筛选器”对话框。在“添加 IP 筛选器”对后框中,选择需要增加的 IP 集合,其中“源网络”是指对数据包中的地址进行判断,而“目标网络”则是目标地址。例如,要控制局域网中的 211.10.22.0 和 255.255.255.0 这个网络,需要选中“目标网络”选项,并在“IP地址”以及“子网掩码”文本框中分别填入 211.10.22.0 和 255.255.255.0,如图 3.23 所示。
设置好网络后,在“协议”下拉列表框中,选择需要的控制协议,其中包括“TCP”“TCP(已建立的)”“UDP”“ICMP”“任何”以及“其他”选项。选择好协议后,将会出现两个字段,一个是“源端口”,用于指定检查来自源主机数据包中的端口;而“目标端口”用于指定检查到达目的主机的数据包中的端口,如图 3.24 所示。
设置一个 IP 筛选器后,回到“入站筛选器”窗口,“筛选器操作”选项将变得可以选择了,而且该筛选器也包含两个操作;“接收所有符合下列条件以外的数据包”和“丢弃所有的包,满足下面条件的除外”,如图 3.25 所示。
除了设置入站 IP 筛选器外,还可以设置出站筛选器,两者的设置方式一样。入站筛选器通常用于控制外来数据包,而出站筛选器则用来控制内部向外访问。如图 3.26 所示,“出站筛选器”对话框中已经设置了出站筛选器。
图 3.22 设置 NAT 功能
图 3.23 添加 IP 筛选器
图 3.24 配置目标网络地址
图 3.25 配置入站筛选器操作
图 3.26 配置出站筛选器操作
(3)测试防火墙
①ICF 防火墙测试。如图 3.27 所示,在 ICF 的“高级设置”界面中,不选择 Telnet 服务器,即防火墙阻止该主机向外提供 Telnet 服务。
在远程通过 Telnet 访问该主机时,访问请求被防火墙阻断,如图 3.28 所示。
在图 3.27 所示的界面中,若选择 Telnet 服务器,即 ICF 不阻止向外提供 Telnet 服务。在远程通过 Telnet 访问该主机时,访问请求被防火墙放行(前提条件是 Telnet 服务已打开),如图 3.29 所示。
②NAT/基本防火墙测试。图 3.30 所示为 NAT/基木防火墙的出站筛选器为空时,ping地址 192.168.0.254 的结果。
之后在 NAT/基本防火墙中进行如图 3.31 所示的配置,阻止内网主机通过任何协议访问 192.168.0.0/24 网段。
图 3.27 高级设置
图 3.28 远程 Telnet 访问请求被防火墙拦截
图 3.29 . 远程 Telnet 访问请求被防火墙放行
图 3.30 NAT/基本防火墙测试
图 3.31 阻止内网主机访问 192.168.0.0/24 网段
ping 该子网中的一台主机,如 192.168.0.254 的结果如图 3.32 所示。
图 3.32 ping192.168.0.254 的结果
类似地,我们可以制定更加复杂的出站、入站规则。
③在 Windows Server 2003 上运行 Ethereal,根据 IP 筛选器设置的不同,分析防火墙所起的作用。
1.在代理服务器上安装 Redhat Linux 9.0 操作系统作为防火墙。
2.在代理服务器上加载 iptables 及相关模块
为了使用 iptables 的包过滤规则,需要预先将 iptables 及其所需的模块加载到内核中,所需的相关模块及其执行的命令如下:
#/sbin/modprobe ip_tables
#/sbin/modprobe ip_conntrack
#/sbin/modprobe iptable_filter
#/sbin/modprobe iptable_nat
#/sbin/modprobe ipt_LOG
#/sbin/modprobe ipt_limit
#/sbin/modprobe ipt_state
#/sbin/modprobe ip_conntrack_ftp
3.启动 iptables 的服务
加载 iptables 模块后,可通过下面的命令配置或启动 iptables 服务:
#/sbin/chkconfig --level 345 iptables on
#/sbin/service iptables start
chkconfig 命令表示在系统启动时,设置 iptables 在相应的 init 启动级别的缺省启动设置。
如果是 off,则代表系统启动时不启动 iptables 服务;如果是 on,则启动。
4.列出当前的 iptables 规则
使用下面的命令可以显示当前规则的设定:
#/sbin/iptables –L
5.清除原有的规则
为避免原有规则的影响,首先清除原有的规则,命令如下:
#/sbin/iptables -F
清除 filter 表中所有规则链中的规则
#/sbin/iptables –X
清除 filter 表中,用户自建链中的规则
#iptables –F –t nat
清除 nat 表中,所有规则链中的规则
#iptables –t nat –X
清除 nat 表中,用户自建链中的规则
这时如果再使用上面的显示语句发现规则已被清空。
#/sbin/iptables –L
6.设定策略
首先把 INPUT,OUTPUT 和 FORWARD 的默认策略设置为 DROP,这样如果链中没有与包匹配的规则就抛弃该包。
#/sbin/iptables –P INPUT DROP
#/sbin/iptables –P OUTPUT DROP
#/sbin/iptables –P FORWARD DROP
设置后任何数据包都不能通过防火墙,因而我们不能和外网互联。
7.开放 http 协议
为了开放 http 协议,需要允许 80 端口的 TCP 协议数据包通过。在下面的例子中,用IP_Num 代表本机 IP 地址,开放 HTTP 协议。
#/sbin/iptables –A OUTPUT –o eth0 –p tcp –s IP_Num --sport 1024:65535 –d any/0 --dport 80 –j ACCEPT
#/sbin/iptables –A INPUT –i eth0 –p tcp –s any/0 --sport 80 –d IP_Num --dport 1024:65535 –j ACCEPT
设置完成后即可实现 HTTP 访问,但只能使用数字 IP 地址,不能使用域名登录,因为没有开通 DNS 协议的相关端口和 UDP 协议。
8.实现 DNS
为实现域名解析,需要开放 UDP 协议和 DNS 的 53 端口:
#/sbin/iptables –A OUTPUT –o eth0 –p udp –s IP_Num --sport 1024:65535 -d any/0--dport 53 -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p udp -s any/0 --sport 53 -d IP_Num --dport 1024:65535 -j ACCEPT
现在就可以使用域名上网了。
9.实现 Telnet 功能
为开放 Telnet 功能,需要在 TCP 协议下打开相应的 23 号端口:
#/sbin/iptables -A OUTPUT -o eth0 -p tcp -s IP_Num --sport 1024:65535 -d any/0 --dport 23 -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 23 -d IP_Num --dport 1024:65535 -j ACCEPT
–syn 相当于"–tcp-flags SYN,RST,ACK SYN"的简写。
10.实现 FTP 功能
为开放 FTP 服务,需允许 TCP 协议的数据包在 21 端口对控制命令的传输:
#/sbin/iptables -A OUTPUT -o eth0 -p tcp -s IP_Num --sport 1024:65535 -d any/0 --dport 21 -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 21 -d IP_Num --dport 1024:65535 -j ACCEPT
同时,还要开放数据包在 20 端口进行数据的传输:
#/sbin/iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 20 -d IP_NUM --dport 1024:65535 -j ACCEPT
#/sbin/iptables -A OUTPUT -o eth0 -p tcp ! --syn -s IP_Num --sport 1024:65535 -d any/0 --dport 20 -j ACCEPT
下面打开 passive 模式下的 FTP 服务:
#/sbin/iptables -A OUTPUT -o eth0 -p tcp -s IP_Num --sport 1024:65535 -d any/0 --dport 1024:65535 -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 1024:65535 -d IP_NUM --dport 1024:65535 -j ACCEPT
11.实现 ping
为了可以使用 ping 命令测试网络的连通性,需要开放 icmp 协议的数据包:
#/sbin/iptables -A OUTPUT -o eth0 -p icmp -s IP_Num --icmp-type 8 -d any/0 -j ACCEPT #/sbin/iptables -A INPUT -i eth0 -p icmp -s any/0 --icmp-type 0 -d IP_Num -j ACCEPT
通过上面的配置完成了一个仅允许少数网络服务功能的简单防火墙设置,设置完后使用 services 服务来实现 iptables 规则的保存: #/sbin/services iptables save
在系统重启后,上述设定的规则都会被启动。
五、思考题
- Windows ICF 防火墙与 NAT 防火墙有何区别?
答:后者可以过滤IP - Windows ICF 防火墙有哪些功能?
答:可以针对端口进行防火墙隔离或测试网络情况 - Windows 防火墙与 Linux 防火墙各自有什么特点?
答:前者通过图形化界面设置,后者通过命令行设置 - 请比较包过滤、应用代理和状态检测三种防火墙技术的优缺点。
答:包过滤防火墙优点:
①利用路由器本身的包过滤功能,以ACL方式实现②处理速度较快③对于安全要求低的网络采用路由器自带防火墙功能时,不需要其他设备④对于用户来说是透明的,用户的应用层不受影响
缺点:①无法阻止ip欺骗②路由器的过滤规则的设置和配置十分复杂③不支持应用层协议,无法发现基于应用层的攻击④实施的是静态的、固定的控制,不能跟踪TCP状态⑤不支持用户认证
代理防火墙优点:
采用代理机制工作,内外部通信需要经过代理服务器审核,所有可以避免入侵者使用数据驱动攻击渗透内部网路
缺点:性能低,处理速度慢,一般单纯使用代理防火墙应用比较少
状态监测防火墙优点:可以检测内部状态
缺点:安全性低