高级选项整个网络被指定成以下的几个部分:net ( 代表在防火墙以外的网络 ),loc (代表在防火墙以内的网络),以及fw ( 防火墙自身 ) 和dmz ( 代表介于外部网络与内部网络之间的缓冲区 )。如VPN正被使用,'road '可以用来指定为VPN网络。
总体而言,为简便起见,我们没有将一些预设的规则显示在设置菜单中。这些规则是:阻止所有从net至fw和loc的传输;接受所有从fw至net的传输;允许所有从loc至net的传输。
所以,您在添加规则的时候,就不需要再指定任何允许loc至net、或者阻止net至loc的规则了-这些规则都被预先确定好了。所有这些类型的规则都是预设的。此处详述的这些规则是针对'例外'的情况。例如,我们已经知道依据预先确定的规则,从net到fw的传输是被阻止的,然而,我们仅仅想要打开从net到fw的用于远程登录的TCP 端口21。这种情况下,我们可以如下所述,去指定例外情形。
添加规则
对于每个规则来说,我们需要在网络封包上执行相关“动作”。通常,那些“动作”是指:接受(ACCEPT),阻止(DROP),拒绝(REJECT),转发(DNAT),改道 (REDIRECT)。除这些动作之外,如来源(Source)、目的地(Destination)、协定(Protocol)、目的端口(Destination Port)、来源端口(Source Port),和初始目的地(Original Destination),这些属性,是用来鉴别IP标头中网络封包的类型,及我们要执行的相关动作。来源(source),表示封包的IP标头中的“来源IP地址”,或是产生网络封包的区域(net,loc,fw,dmz)。协定有两种:UDP和IP传输所用的TCP。来源端口 (Source port) 和目的端口 (Destination port),表示它们在IP标头中的相应区域。初始目的地(Original Destination) 表示在防火墙动作运作于封包前的、位于IP标头的目的IP地址。您也可在初始目的地 (Original Destination) 中置入IP别名 的IP地址。
就目的地 (Destination) 此属性来说,它的用法有很多。在接受 (ACCEPT)、阻止 (DROP) 和拒绝 (REJECT) 的动作中,目的地 (Destination)表示网络传输将要到达的区域(net,fw,loc,dmz)在此状况下,,您可以指定规则如,“接受 (ACCEPT) ”从“net”到“fw”与TCP端口23相关联的传输。
设置项目 |
可填入的值 (范例或说明) |
指令 (Action) |
ACCEPT, DROP, REJECT, DNAT, REDIRECT |
来源 (Source) |
net, fw ,loc, dmz |
目的地 (Destination) |
net, fw, loc, loc:192.168.1.22:80 , loc:192.168.1.2 , 3128 (端口号) |
目的传输端口 (Destination Port) |
80, 1024: 等等 … |
来源传输端口 (Source Port): |
- |
初始目的IP (Original Destination IP) |
到达eth0的原始目地 IP,例: 1.2.3.4 |
协定 (Protocol) |
UDP, TCP |
速限(Rate Limit)是提供给网络管理者去针对所属区段的子网络制定完善的安全策略和网络流量管控的一个工具。通过它,可以对网络的总流量做一个管理的机制,让管理者可以有效地分配频宽,避免发生滥用者占用过多频宽;也可以限制异常流量,缓冲黑客攻击的冲击;但在其能对应用流量作出有效的控管之前,要如何针对其现有网络使用状况,拟定适切的流量管理策略,是在实施控制前不可或缺的。
防火墙上设置极限速率控制的本身的价值是什么呢?答案取决于服务器的表现。当短时间内突然遭遇巨量的工作请求,您试图去保护邮件服务器或http服务器时,这显得尤为重要。
有很多数学模型去预言这种行为。在这里我们仅以较耳熟能详的排队理论模型来解释它。请求抵达某系统是一种速率为的 卜氏过程(Poisson Process);处理那些请求所用的时间是具有指数分布功能的i.i.d.(独立同分布),这也可以被阐述为处理速率是的 卜氏过程。在随机处理理论中,它呈现为一个产生和死亡问题。在定态中,
预计的队列长度
, 在这里的 > 
在邮件服务器防御的情形下,如邮件服务器的处理速率是每分钟 封邮件,则队列长度设置为N,以此来保护服务器。所以,通过上面的公式,我们可以知晓如何在防火墙上设置极限速率。
为详细说明,我们假设A邮件服务器之邮件的处理速率:12封/分钟,预计的平均队列长度:20
这样可得 20= /(12 - ) ,所以 = 11.43 (emails/min )
因此,在防火墙上,我们应将SMTP连接的极限速率设置为每分钟11次,以此来保护邮件服务器免遭垃圾邮件的轰击。
为什么要在这里提出这个话题呢?这与邮件服务器的效能有关。假设在扫描了150000个病毒信号及进行内容分析后,服务器需要花平均5秒钟的时间去辨别某封邮件是否是垃圾邮件。但很不幸,无数垃圾邮件突然以远大于前面提及的处理速率的速度抵达服务器,并且它们不分昼夜持续很长时间地攻击,这会导致什么结果呢?
最直觉的反应就是,大家都知道这会致使一大堆邮件在排队等候处理,邮件服务器会因此变得行动迟缓。
回顾我们刚才提到的模式,

它意味着当处理速率与抵达速率几乎一致的时候,队列长度趋于无限值。所以,当有人向您声称某邮件服务器每天可以处理多达100万封邮件时,您应问问看那是在什么测试环境下得出的数据。如果该环境未将数据抵达的速率考虑在内,则您不能寄望该邮件服务器真的能在一天内处理100万封邮件。
如果有大量的垃圾邮件在排队等候以至于系统无法处理时,我们可以做什么呢?若病毒扫描和内容分析占用了太多处理时间,那最好的方式是:寻求其它的方法去尽快消除这些垃圾邮件。在这“合适的”方法完工之前,我们可以使用防火墙中的速率控制去调整进入邮件服务器的通信量。
但正如您可以预知的那样,针对垃圾邮件去调整最高的抵达速率同样也会扰乱“正常的”邮件的抵达。它仅能将服务器维持在活动状态,而其它实体却可能因此要努力很长的时间,才能使它们的邮件运送您的邮件服务器。所以,我们还是必须要能灵活运用相关的功能,去结合其它可使用的方法来解决这个问题。
范例一:打开防火墙上的SMTP端口
接收电子邮件通常是在TCP端口25使用SMTP。因而,我们在防火墙中做以下设置:
指令 (Action): ACCEPT
来源 (Source): net
目的地 (Destination): fw
协定 (Protocol): TCP
目的传输端口 (Destination Port): 25
范例二:打开防火墙上的FTP端口
想要在不同机器之间作档案的传输,在TCP端口20, 21使用FTP的协定是最佳的选择,因此您需要在防火墙做如下的设置:
指令 (Action): ACCEPT
来源 (Source): net
目的地 (Destination): fw
协定 (Protocol): TCP
目的传输端口 (Destination Port): 20
指令 (Action): ACCEPT
来源 (Source): net
目的地 (Destination): fw
协定 (Protocol): TCP
目的传输端口 (Destination Port): 21
范例三:打开防火墙上的DNS通道
当外部网络无法查询到正确的主机位置时,记得打开UDP端口53,才能让DNS正常的运作,在防火墙需要做的设置是:
指令 (Action): ACCEPT
来源 (Source): net
目的地 (Destination): fw
协定 (Protocol): UDP
目的传输端口 (Destination Port): 53
范例四:封锁 (DROP) 本地用户浏览因特网(http 传输)
请注意防火墙不单是具备封锁外部传输进入防火墙的能力,也具备封锁源于防火墙内部传输的能力。例如,如您想要禁止内部用户使用Web浏览器去检视防火墙外的网页,您只要如此做:
指令 (Action): DROP
来源 (Source): loc
目的地 (Destination): net
协定 (Protocol): TCP
目的传输端口 (Destination Port): 80

在此状况下,所有目的地为TCP端口80的外发传输(普通http传输)都会被封锁。如您只是想要封锁某台特定的计算机去存取外部网页,您可以在来源中指定IP地址。例如:
指令 (Action): DROP
来源 (Source): loc:192.168.2.21
目的地 (Destination): net
协定 (Protocol): TCP
目的传输端口 (Destination Port): 80

这意味着:这台IP地址为192.168.2.21的主机将不能浏览因特网。
封包在经过防火墙时,REJECT 会传送一个ICMP错误封包通知至传送端,告知封包无法到达目地的原因,大多用于对内部网络主机的响应;而 DROP 则会直接丢弃封包,传送端并不会收到任何封包无法传达的通知,这通常会用于对外部网络的响应。之所以要使用DROP的原因不外乎:退回封包通知会增加网络传输的负担、响应封包可能会成为DOS攻击的媒介、响应的讯息可能有包含入侵者所需要的讯息…等。
范例五:防火墙上eth0有多个IP地址—综合运用端口转送和目的网络地址转换 (DNAT) 与IP别名
应用前面介绍过的IP别名,我们可以在eth0上拥有若干IP地址。现在,我们将此特性与防火墙结合。现在我们尝试做的是将不同目的IP地址的传输转送给不同的内部服务器(尽管它们拥有相同的目的端口)。
DNAT是目的网络地址转换 (Destination Network Address Translation) 的缩写。它用来改变封包IP标头中与目的端口和目的IP地址相关的纪录。应用DNAT时,目的地属性是如此的格式:
封包区域:IP_地址:端口号 (zone:IP_ADDRESS:port_number ) 或
封包区域:IP_地址 (zone:IP_ADDRESS)
例如,loc:192.168.1.22:80表示传输将会被转送到位于LAN区域中的主机,其IP地址为192.168.1.22 的端口80上。另一个例子是loc:192.168.1.21则表示封包会在不改变目的端口的情况下,被转送到LAN中的192.168.1.21。
DNAT是针对 端口转送 的基本操作。如果您要在端口转送的设置菜单中增加服务器,您会看到相应的规则会显示在规则列表的设置页面。下面的网络图表可以如此执行:依据初始目的IP地址,用DNAT和IP别名将传输转送给不同的服务器:
我们用下图来演示如何使用DNAT。 Eth0接口拥有3个IP地址:1.2.3.4,1.2.3.5,和1.2.3.6。

另有3个内部服务器A、B和C,其IP地址分别为192.168.1.2,192.168.1.3和192.168.1.4。
我们要使目的地为1.2.3.4 TCP端口80的封包转送给主机A,目的地为1.2.3.5 TCP端口8080的封包转送给主机B,目的地为1.2.3.6 TCP端口8081的封包转送给主机C。

可以如下设置:
指令 (Action): DNAT
来源 (Source): net
目的地 (Destination): loc:192.168.1.2
协定 (Protocol): TCP
目的传输端口 (Destination Port): 80
来源传输端口 (Source Port): - (记得需填入 ‘-‘ )
初始目的IP (Original Destination IP): 1.2.3.4
(数据将转送到主机A)
指令 (Action): DNAT
来源 (Source): net
协定 (Protocol): TCP
目的传输端口 (Destination Port): 8080
来源传输端口 (Source Port): -
初始目的IP (Original Destination IP): 1.2.3.5
(数据将转送到主机B)

指令 (Action): DNAT
来源 (Source): net
目的地 (Destination): loc:192.168.1.4
协定 (Protocol): TCP
目的传输端口 (Destination Port): 8081
来源传输端口 (Source Port): -
初始目的IP (Original Destination IP): 1.2.3.6
(数据将转送到主机C)
范例六:将传输从一个端口改道 (REDIRECT) 至另一个端口
REDIRECT 是指使某个特定类型的传输改变方向,而送至防火墙的本地端口。这种情况下,目的地仅仅就是端口数据了。
例如,下面的例子是让从loc而来、初始目的端口80的传输改道至端口3128:
指令 (Action): REDIRECT
来源 (Source): loc
目的地 (Destination): 3128
协定 (Protocol): TCP
目的传输端口 (Destination Port): 80

请留意不要任意将网络信息流做无意义的转送。信息流被转送后,必须要有一个程序来监听,若无任何程序在监听,则该信息流会被丢弃。
以下是一个有用的例子,它将 “ 目的端口80的TCP信息流导向端口 443” 使得 “http” 信息流变为 “https” 信息流。 ( TCP port 443 常设为“https” 端口 )
指令 (Action): REDIRECT
来源 (Source): loc
目的地 (Destination): 443
协定 (Protocol): TCP
目的传输端口 (Destination Port): 80

当您向防火墙增加某条规则时,请注意以下细节。例如,在处理防火墙内的网络封包时,部分不用注意的属性,可空着不填。但有时您会发现因为这些“空白字段”的关系,会导致您曾输入的某些的字段信息,不会显示在相应位置。这归因于分解字符串时,那些设置参数的内部处理逻辑。这种情况下,您可以只用“-”来表示“空白”,从而来避免混淆并使规则列表菜单上的规则能正常显示。
请注意 端口转送 和 LAN-NET路由环回 会显示在规则列表菜单中的一些规则。但这不意味着所有与 端口转送 和 LAN-NET路由环回 相关的规则都会显示出来。有些规则无法在此格式中展现,它们涉及到一些追踪网络封包的关系创建方面的细节。这部分已经超出本书的范围了,不在这里介绍。
范例七:运用速限以避免因流量过大造成的网站崩溃
太过热门的网站或是遭受恶意攻击的网站通常都会有流量过大的问题,瞬间流量过大会使主机忙碌不堪,而若持续流量过大则可能导致网站瘫痪,可用流量控制来避免此类情形发生。
指令 (Action): ACCEPT
来源 (Source): net
目的地 (Destination): fw
协定 (Protocol): TCP
目的传输端口 (Destination Port): 80
速限 (Rate Limit): 平均 60 极速 60 单位 min

在“速限”的部分,“平均”意味着系统会将当前传输速率与机器前一次重新启动之后的平均值做比较;如果该平均值超过了限定,系统会关闭连接。“极速”是指在任一时间间隔单位,都不应该超出限定。
上列的规则所表达的意思是:在开机后,服务器平均每分钟所能允许的流量为60次的存取;而在平均的设置项目次数是可累计的,也就是主机开机时间越久,所能允许的连接次数便可累积越多,除非主机有重新开机,否则便会持续累计;如果您担心主机太久没有重新启动而使累积次数过大的话,极速便是让您在设置每分钟的单位里所能允许的存取极限次数;以上的范例只是提供您做参考,主机效能的影响因素有很多,您必须依您就有的现况,因地因时来做最有效的安排。
移除规则
您可为处理网络封包而向防火墙添加规则,也可移除防火墙中现存的规则。移除防火墙中的规则会引起一系列的影响。按下与该规则相关的 移除 按钮,就可以完成移除的动作。
请注意在防火墙设置改变之后,系统须重新启动。

实时通 (Instant Messenger) 管理规则
封锁如MSN Messenger、Yahoo Messenger、AIM、ICQ、QQ或Skype等其它实时通讯工具的传输,在某些地方或场合看起来是一个很严重的问题。这里,我们不去争论这一类的传输是否应该封锁:有些人可能争辩说这类工具促进了人们彼此的交流;有些人则辩说这类应用会消耗系统资源(网络频宽,工作专心与否,等等),或者说在发展中国家频宽是非常昂贵且被垄断的。是否应该封锁此类应用,众说纷云,没有定见。我们仅简单地描述此类实时通讯工具的传输方式,而将剩下的工作—─即如何使用手边的工具去建构自己的网络—─交由您自己去处理。
在以前NAT还不流行时,某些及时通讯工具仅仅是让两个终端用户,在邮件服务器上进行sign-on后直接交流。随着NAT结合防火墙的设置,使用的普及,那些实时通讯讯息被加上更多且复杂的设置,以探测网络布局或方法。举例来说,计算机都具有“直接的NAT”或使用结合UDP或TCP封包来发出初始的外送讯息,或者透过一些自动调整架构而建立出众多的超级节点,如此其下的众多客户端,就能基于这些初始节点,来开始从事讯息传递了。
封锁这些实时讯息并不能仅仅靠“简单的”设置来完成,如关闭4或5个端口,或者将一些IP地址放入“黑名单”来封锁。这些简单设置,有一些在初始的时候可能有用,但却非“一劳永逸”的解决方法。那些实时通讯工具也在不断发展中,如今,某些实时聊天工具会扫描所有可用的端口(它们甚至可用TCP端口80或433-这些当初是仅供http或https使用的端口),并用私有的协定将封包加密。此外,初始的外发连接封包所用的目的IP地址,甚至都会改变了-它是个活动的目标。某些人可能会想利用透过传输分析,来抓取某特定实时讯息工具的一些信号,并试图以这在搜集到的实时传输讯息的基础上去封锁它们,但这也不是一个“一劳永逸”的解决方法。
所以,怎么去封锁此类的传输呢?我们可以按以下的方式想:所有在1024以下端口的数据都是供IANA(因特网指派数据管理Internet Assigned Numbers Authority-因特网上一个“数据指派”的组织)专用的。所以,当某个实时讯息工具在做端口扫描时,它会首先扫描1024以上的端口,如1025至65535。
所以,可以封锁目的端口在1024以上的、从loc至net的外发的传输。(您可以填入“1024:”到在目的端口的字段中)但如果那些实时通讯工具,使用目的端口80或者433的情形又当如何呢?封锁所有目的端口80或433从loc至net的外发传输吗?您可能不能接受这个方法,因为您还要使用“http”;您不想因为那些实时通讯工具而去封锁http的传输。然而我们的答案是:一旦您封锁了那些外发的传输,您可以用 代理服务器,并须在防火墙上设置 http的代理服务器。并且您须要强制所有防火墙内的人,都使用代理服务器。换句话说,从loc至net的传输都是被禁止的--只有某些从loc至fw的端口才被允许,然后从fw至net,则使用代理服务器。
那如果未来有些实时通讯工具,使用了TCP端口25(email所用的)呢?如果您确实是要用类似刚才那样的方式来封锁,那除了将电子邮件服务器放在防火墙上外别无选择。您想那样做吗?那是网络规划的问题了;您不得不做些抉择,并在同时考虑其它的方法。
一旦您明白了上面提及的基本原理,另外还有其它一些复杂的设置可以用。例如,若您只允许邮件服务器和http代理服务器的机器可以拥有外发封包,却仍然将“http代理服务器”或者“邮件服务器”置于防火墙内部的机器上,而不是防火墙上。 在执行这些计划和设置时,您必需从网络的弹性或扩充性上考虑及是否容易做日常的运行及维护。
范例八:封锁所有目的TCP端口在1024以上的外发传输
指令 (Action): DROP
来源 (Source): loc
目的地 (Destination): net
协定 (Protocol): TCP
目的传输端口 (Destination Port): 1024: (请注意末尾的 : 符号)

在本书的末尾处,我们会告诉您如何做办公室的网络规画。
IP置换
IP置换是用于设置于置换通往外部网络封包中的来源IP地址。
由于此防火墙带有NAT的功能,所以,所有的传输都会经由网络地址转换后才能被送出。也就是说当在防火墙里面的用户,在送出要求要连到一个位于防火墙外的网站或是资源的时候,那么NAT就会发挥它的功用,把防火墙内部的私有IP地址送出的封包档头里面来源端的地址,改成主机共享一个公共IP地址,再做送出封包的动作。但若只有一台防火墙,对外传输也就只有使用一个公共IP地址,在某些情况下,我们希望能让单一主机的对外传输能有多个公共IP在变换,类似就像有很多不同的主机在运作一样,这与效能无关,目的主要是伪装。
一般情况下并不用在此处做任何设置。这牵涉到比较特殊的网络需求,只有在有特殊网络规划的需求下,才要做此类的设置。
|