在设置过滤规则时,应当注意以下问题:
第一,如果只是禁止某些协议和应用时,当前面规则一一列出“个别禁止”,并在最后规则中应当设置“全部允许”。例如,除了ICMP和蠕虫病毒所使用的端口外,允许其他所有网络应用,则键入下述规则:
admin@NetST> add rule any any 134:139 any drop any
admin@NetST> add rule any any 445 any drop any
admin@NetST> add rule any any 9995:9996 any drop any
admin@NetST> add rule any any 4444 any drop any
admin@NetST> add rule any any 5554 any drop any
admin@NetST> add rule icmp any any any drop any
admin@NetST> add rule any any any any accept any
第二,如果只是允许某些协议和应用时,当前面规则一一列出“个别允许”,并在最后规则中应当设置“全部禁止”。例如,除了常用的网络服务外,禁止其他所有的网络应用,则键入下述规则:
admin@NetST> add rule any any 80 any accept any
admin@NetST> add rule any any 21 any accept any
admin@NetST> add rule any any 110 any accept any
admin@NetST> add rule any any 25 any accept any
admin@NetST> add rule any any 8000 any accept any
admin@NetST> add rule any any 554 any accept any
admin@NetST> add rule icmp any any any accept any
admin@NetST> add rule any any any any drop any
第三,过滤规则通常设置在内网端口,因为默认情况下,所有端口都是拒绝的。

6. 网络地址转换配置

网络地址转换(NATNetwork Address Translation)是在IP地址资源日趋紧张的情况下出现的一种技术,可以将网络内部的IP地址映射为一个合法的IP地址,实现Internet连接共享,甚至可以借助端口映射实现对内部服务器的访问。NAT不仅完美地解决IP地址不足的问题,而且还能有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
NAT分为源NAT和目的NAT两种。源NAT是指,转换前源IP地址和转换后源IP地址不同,数据进入防火墙后,防火墙将其源地址进行转换后再将其发出,使外部看不到数据包原来的源地址。目的NAT是指,转换前目的IP地址和转换后目的IP地址不同(对于TCP/UDP协议,也可以改变端口号),数据进入防火墙后,防火墙将其目的IP地址进行转换后再将其发出,使看不到数据包原来的目的地址。在进行NAT时,如果是一个地址到一个地址的转换,称为一对一模式;如果是一个网段地址对到一个地址的转换,称为多对一的转换;如果是一个网段地址到一个网段地址的转换,称为多对多的转换。IP伪装就属于源ANT,而端口映射和透明代理等属于目的NAT
NAT从另一个角度也可分为静态和动态两种。静态方式是明确指定了转换前后的地址和端口的情况,可以有一对一、多对一、多对多等方式。如果实际地址发生变化,NAT规则必须相应改变;而动态方式也就是IP伪装方式,是一种多到一的源NAT转换模式,一般只需指定转换前的地址,转换后的地址则是防火墙的IP地址,此地址是可以动态改变的,而NAT规则可以不变。静态NAT一般用在防火墙拥有固定IP地址的情况,而动态NAT则用于防火墙拥有动态IP地址的情况。
一般来说,源NAT多用于从内部网络到外部网络的访问,内部网络地址可以是保留IP地址;目的NAT多用于外部网络到内部服务器的访问,内部服务器可使用保留IP地址。当使用透明模式时,由内到外的访问实际上是一种目的NAT,是将访问的目的IP和目的端口转换为代理服务器的IP和代理端口。
使用目的NAT功能时,可实现负载均衡(Load BalanceLB)功能,假设防火墙外网接口上有一个合法IP地址,内部有多个服务器同时提供服务,当将访问防火墙外部接口IP的访问请求转换为这一组内部服务器的IP地址时,访问请求就可以在这一组服务器进行均衡。
1)增加NAT规则
若欲将NAT规则增加到NAT规则表的最后,可使用下述命令:
add nat type ori_src_ip ori_dst_ip ori_port trans_src_ip trans_dst_ip trans_port
命令参数包括NAT类型(type)、转换前源IP地址(ori_src_ip)、转换前目的IP地址(ori_dst_ip)、转换前端口(ori_port)、转换后源IP地址(trans_src_ip)、转换后目的IP地址(trans_dst_ip)和转换后端口(trans_port)。NAT类型可以是静态NATstatic)或动态NATdynamic)。
转换前IP地址格式为带掩码的点分格式“xxx.xxx.xxx.xxx/xx”,如果是一个网络,必须带“/xx”掩码位,否则,就被认为是一台主机,或者用“any”表示任意IP地址。转换后IP地址不带掩码位,若是网络,则采用“xxx.xxx.xxx.xxx - xxx.xxx.xxx.xxx”形式。端口主要针对TCP协议或UDP协议而言,如http (80)ftp (21)smtp (25)POP3 (110)等。在输入时,既可以采用名称方式,也可以采用数字方式,用“any”表示任意端口,也可用“xx:xx”方式表示端口段。在IP地址和服务类型前加“~”表示取反,即表示除此地址或服务之外的所有其他地址或服务,“any”无取反意义。缺省情况下,端口指的是TCP协议端口,当端口名或端口号前加大写字母“U”时,表示是UDP协议端口。
需要注意的是,源NAT和目的NAT不能同时使用。当转换前端口与转换后端口不同时,就为端口转发。与过滤规则一样,NAT规则中的地址/服务设置也支持取反(~)。
例如,网络防火墙采用静态IP地址。若欲将网段192.168.10.0映射为61.159.62.158,以实现Internet连接共享,则执行下述操作:
admin@NetST> add nat
Enter NAT type (static-s, dynamic-d): static
Enter original source IP address (xxx.xxx.xxx.xxx): 192.168.10.0/24
Enter original destination IP address (xxx.xxx.xxx.xxx): any
Enter original port: any
Enter translated source IP address (xxx.xxx.xxx.xxx): 61.159.62.158
Enter translated destination IP address (xxx.xxx.xxx.xxx): any
Enter translated port: any
Add NAT item success!
2)修改NAT规则
若欲修改在NAT规则表的指定位置处的NAT地址,键入下述命令:
modify nat number type ori_src_ip ori_dst_ip ori_port trans_src_ip trans_dst_ip trans_port
序号参数“number”用于指定欲修改NAT规则,其他参数与增加NAT规则命令完全相同。当有参数不变时,用“*”代替,或者在分段输入时直接敲回车。
例如,若欲修改第5条规则,将转换后源IP地址设置为61.159.62.169,则执行操作如下:
admin@NetST> modify nat
Enter NAT item number: 5
Enter NAT type (static-s, dynamic-d):
Enter original source IP address (xxx.xxx.xxx.xxx):
Enter original destination IP address (xxx.xxx.xxx.xxx):
Enter original port:
Enter translated source IP address (xxx.xxx.xxx.xxx):
Enter translated destination IP address (xxx.xxx.xxx.xxx): 61.159.62.169
Enter translated port:
Add NAT item success!
3)插入NAT规则
若欲在NAT规则表中的指定位置插入NAT规则,键入下述命令:
insert nat number type ori_src_ip ori_dst_ip ori_port trans_src_ip trans_dst_ip trans_port
序号参数“number”用于指定欲插入的位置,插入的NAT规则即成为第numberNAT规则,其他参数与增加NAT规则命令完全相同。
例如,若欲插入第2条规则,并且将内部服务器192.168.100.10转换为合法IP地址61.159.62.160,则执行下述操作:
admin@NetST> insert nat
Enter NAT item number: 2
Enter NAT type (static-s, dynamic-d): static
Enter original source IP address (xxx.xxx.xxx.xxx): any
Enter original destination IP address (xxx.xxx.xxx.xxx): 192.168.100.10
Enter original port: any
Enter translated source IP address (xxx.xxx.xxx.xxx): any
Enter translated destination IP address (xxx.xxx.xxx.xxx): 61.159.62.160
Enter translated port: any
Add NAT item success!
4)移动NAT规则
若欲移动NAT规则中的规则,执行下述命令:
move nat number step
参数包括NAT序号(number)和移动步数(step)。命令将NAT的第number条规则移动step位,step为正是后移,为负是前移。如果移动步数超过了第一条或最后一条规则,就将该规则设置为第一条或最后一条规则。
例如,将第5条规则向前移动两步,则执行下述操作:
admin@NetST> move nat
Enter nat number: 5
Enter step: -2
Move nat sueecss!
5)显示NAT规则
若欲显示NAT规则表,可执行下述命令:
Show nat [ number ]
参数“number”用于指定显示的NAT规则号或范围(使用“-”分隔)。若指定NAT规则号,则只显示指定的NAT规则信息;若不具体指定规则号,则显示所有NAT规则信息。
例如,若欲查看第3条规则,可执行下述命令:
admin@NetST> show nat 3
No.      Type     Original_src_IP/Mask      Trans_src_IP/Mask
                  Original_dst_IP/Mask      Trans_dst_IP/Mask
                  Original_port             Trans_ port
3       STATIC    10.10.0.0/24             192.168.1.100
                  ANY                    ANY
                  ANY                    ANY
6)删除NAT规则
若欲删除某条NAT规则,可执行下述命令:
delete nat number
其中,参数“number”用于指定删除的规则。若欲删除多个NAT规则,可以使用“-”指定范围,或使用空格指定若干规则。
例如,若欲删除第3条规则,可执行下述操作:
admin@NetST> delete nat
Enter NAT item number: 3
It will delete NAT item 3. Are you sure (y/n) ? y
Delete NAT item success!
又如,若欲删除第1~3条规则,可执行下述操作:
admin@NetST> delete nat 1-3
It will delete NAT item 1-3. Are you sure (y/n) ? y
Delete NAT item success!
再如,若欲删除第13条规则,可执行下述操作:
admin@NetST> delete nat 1 3
It will delete NAT item 1 3. Are you sure (y/n) ? y
Delete NAT item success!
7)删除全部NAT规则
若欲删除所有的NAT规则,使用下述命令:
Delall nat
例如,若欲删除所有规则,可执行下述操作:
admin@NetST> delall nat
It will delete all NAT item. Are you sure (y/n) ? y
Delete all NAT item success!
admin@NetST> show nat
Error: No any NAT item!
8)使NAT规则起作用
若欲启用某条NAT规则,使用下述命令:
enable nat number
例如,若欲启用第5条规则,可执行下述操作:
admin@NetST> enable nat
Enter number: 5
Enable nat success!
9)使NAT规则不起作用
若欲禁用某条NAT规则,使用下述命令:
disable nat number
使用“show nat”命令时,在不起作用的规则前有“*”号标记。
例如,若欲禁用第2~5条和第7条规则,可执行下述操作:
admin@NetST> disable nat 2-5 7
Disable nat success!
10)使用NAT实现负载均衡
只需将外网接口的地址转换为不同内部服务器的地址,即可实现简单的负载均衡。
例如,网络的合法IP地址为“61.159.62.163Web服务端口号为默认的“80”,提供Web服务的服务器的内部IP地址为192.168.100.10192.168.100.20,端口号均为8000。若欲借助防火墙实现负载均衡,执行下述操作:
admin@NetST> add nat
Enter NAT type (static-s, dynamic-d): static
Enter original source IP address (xxx.xxx.xxx.xxx/xx): any
Enter original destination IP address (xxx.xxx.xxx.xxx/xx): 61.159.62.163
Enter original port: 80
Enter translated source IP address (xxx.xxx.xxx.xxx/xx): any
Enter translated destination IP address (xxx.xxx.xxx.xxx/xx): 192.168.100.10 192.168.100.20
Enter translated port: 8000
Add NAT item success!
11)常见问题
如何配NAT规则使内网可以访问外部Internet
要由内网访问外网,在NAT情况下由于发起方是内部机器,需要修改数据包中的源地址,因此称为源NAT,配置NAT规则时需要改变源地址,目的地址不变,假设内网IP192.168.1.0/24,防火墙外部地址为10.0.0.1(这也是一个保留地址,在实际中根据实际情况取实际值),如用以下命令:
“add nat static 192.168.1.0/24 any any 10.0.0.1 any any”
即可实现。
 
如何配NAT规则使外网可以访问DMZ上的Internet服务器?
要由外网访问DMZ区,在NAT情况下由于发起方是外部机器,而DMZ区服务器的地址往往是保留地址,因此需要修改数据包中的目的地址,因此称为目的NAT,配置NAT规则时需要改变目的地址,源地址不变,假设DMZ服务器IP172.16.0.2,防火墙外部地址为10.0.0.1(这也是一个保留地址,在实际中根据实际情况取实际值),如用以下命令:
“add nat static any 172.16.0.2 80 any 10.0.0.1 80”
即可实现外网访问DMZWWW服务器,如果端口不同,称为端口映射,如用以下命令:
“add nat static any 172.16.0.2 8080 any 10.0.0.1 80”
则将对8080端口的访问转到80端口上。
当然,在过滤规则中还要增加允许访问DMZ服务器的相应规则,如:
“add rule tcp any 172.16.0.2 80 external accept”
注意:在指定目的NAT规则时,端口一般不要设置为“any”,而必须明确指定,否则外界就可能访问到内部服务器开的一些危险端口从而取得服务器的控制权。如果只允许某些外部IP访问DMZ服务器,NAT规则也应该按所述NAT规则形式设置,然后在过滤规则表中进行过滤处理,以免和下面的情况冲突。
 
如何配NAT规则使内网可以访问DMZ上的Internet服务器?
要由内网访问DMZ网,在NAT情况下由于发起方是内部机器,地址范围可以确定,而DMZ服务器的地址往往是保留地址,因此需要修改数据包中的目的地址,因此称为目的NAT,配置NAT规则时需要改变目的地址,源地址不变,假设内部机器地址范围为:192.168.1.0/24DMZ服务器IP172.16.0.2,防火墙DMZ网卡地址为172.16.0.1如用以下命令:
“add nat static 192.168.1.0/24 172.16.0.2 80 192.168.1.0/24 172.16.0.1 80”
即可实现内网访问DMZ区的WWW服务器,注意此规则中的倒数第二个参数可以使用防火墙的外网卡、DMZ网卡地址,但不要用内网卡地址,否则Java控制台有可能不能连接防火墙,因为这样会使防火墙不能区分Java控制台是要连接防火墙还是DMZ服务器。
如果端口不同,称为端口映射,如用以下命令:
“add nat static 192.168.1.0/24 172.16.0.2 8080 192.168.1.0/24 172.16.0.1 80”
则将对8080端口的访问转到80端口上。
当然,在过滤规则中还要增加允许访问DMZ服务器的相应规则,如:
“add rule tcp 192.168.1.0/24 172.16.0.2 80 internal accept”
注意:此规则与问题14中的规则的差异在于源地址是有范围的,而不是any,两种情况下防火墙的处理是有较大差别的,在配置规则时必须注意。
 
由外网访问内部服务器的NAT规则已经配置正确,为什么还不能访问?
请检查在过滤规则表中是否已经加入允许接受目的地址为服务器内部地址,端口为相关服务的规则;另外检查安全选项中是否设置了“SYN”项,此项设置是禁止外部机器向内部机器连接,在向外提供服务的情况下需要删除。

7. MAC/IP地址绑定配置

在网络防火墙上,将拥有特殊权限的IP地址与其网卡的MAC地址进行绑定,即可有效地控制对IP地址的盗用。由于网卡的MAC地址具有唯一性,也就是说,即使恶意用户盗用了其他用户的IP地址,但由于其网卡的MAC地址与访问列表并不相符,因此,仍然无法实现对其他网络的访问,自然也就无法享有合法用户的特殊权益,从而保障网络访问安全。
1)增加MAC/IP地址绑定项
若欲将MAC/IP绑定项添加到MAC/IP绑定表的最后,使用下述命令:
add mac MAC_addr IP_addr
其中,参数“MAC_addr”表示MAC地址,格式为“xx:xx:xx:xx:xx:xx”。参数“IP_addr”表示IP地址,格式为点分格式“xxx.xxx.xxx.xxx”,不带“/xx”掩码位。
例如,若欲在防火墙上绑定IP地址192.168.100.10MAC地址00:11:22:33:44:55,则执行下述操作:
admin@NetST> add mac
Enter MAC address (xx:xx:xx:xx:xx:xx): 00:11:22:33:44:55
Enter IP address (xxx.xxx.xxx.xxx): 192.168.100.10
Add MAC-IP item success!
需要注意的是,以上操作只在系统数据库里增加MAC/IP绑定信息,若欲使MAC/IP绑定实际生效,还必须在安全选项“MAC/IP”中设置。
 
2)显示MAC/IP绑定项
若欲显示已经绑定的MAC/IP绑定表,使用下述命令:
show mac [ number ]
参数“number”用于指定欲显示的MAC/IP绑定项序号或序号范围(用“-”分隔)。若指定序号,只显示指定的MAC/IP绑定项;若不指定序号,则显示所有MAC/IP绑定项信息。
例如,若欲显示所有绑定的MAC/IP绑定表,可执行下述操作:
admin@NetST> show mac
No.    MAC               IP
1      00:11:22:33:44:11     192.168.100.10
2      00:11:22:33:44:22     192.168.100.20
3      00:11:22:33:44:33     192.168.100.30
4      00:11:22:33:44:44     192.168.100.40
 
3)删除MAC/IP绑定项
若欲删除指定的MACIP绑定项,使用下述命令:
delete mac number/IP/MAC
可以使用序号、IP地址或MAC地址指定欲删除的MAC/IP绑定项。
例如,若欲删除对IP地址192.168.100.10的绑定,可执行下述操作:
admin@NetST> delete mac
Enter MAC or IP address or number: 192.168.100.10
It will delete MAC-IP item 192.168.100.10. Are you sure (y/n)? y
Delete MAC-IP item success!
 
4)删除全部MAC/IP绑定项
若欲删除所有MAC/IP绑定项,使用下述命令:
delall mac
例如,若欲删除所有MAC/IP地址绑定项,可执行下述操作:
admin@NetST> delall mac
It will delete all MAC-IP item. Are you sure (y/n)? y
Delete all MAC-IP item success!
admin@NetST> show mac
Error: No items!