一、对象与规则现在大多防火墙都采用了面向对象的设计。
针对对象的行为进行的快速识别处理,就是规则。
比如:甲想到A城市B地点。
由这个行为就可以制定一些规则进行约束,例如:1)用户身份识别,是不是甲用户(说明:在实际应用中,甲用户可能是一群人或所有的人)。
2)用户当前的目标是不是A城市,是不是B地点。
3)用户当前状态中是否符合规定,比如,是不是带了危险品什么的。
用户、城市、地点等等均可以看作为一个个的对象。
在防火墙中我们可以这样来比喻:用户-->访问者城市-->主机地点-->端口为了安全,我们就可以制定一个规则:如果用户甲或所有的人到达A城市B地点,并且没有携带任何危险品,就允许他或他们通过,否则就禁止通行。
翻译成防火墙的规则就是:如果访问者访问目标区域中的开放主机中的允许访问的端口,并且访问的过程中没有防火墙禁止的恶意行为,就允许通过。
二、路由功能与地址转换现在防火墙都集成了路由功能。
路由功能简单的说法就是告诉访问者怎么走,相当于引路。
比如:甲要到美国洛杉矶,甲城市的路由器就告诉甲,你应该先到上海,然后上海的路由器再告诉甲,该乘飞机到洛杉矶。
我们使用的互联网是基于TCP/IP协议的。
所有在网络上的主机都是有IP地址的,相当于在互联网上的用户身份,没有IP地址是无法进行网络访问的。
互联网中的主机中(包括访问者与被访问者)是不可能存在两个相同的IP的。
当前互联网中应用的大都是IPV4。
比如:我们姜堰教育城域网的IP是58.222.239.1到58.222.239.254。
由于当初的IP规划没想到后来会有这么多的计算机,所以发展到现在,IP 地址是非常紧缺的。
目前,已不可能为世界上的所有的计算机都分配一个IP地址,这就产生了源地址转换又称为源地址伪装技术(SNAT)。
比如A学校有100台计算机,但是只有一个互联网IP,上网的时候就将所有上网的计算机都伪装为这个唯一的互联网IP进行访问。
实际的网络访问都是基于IP和端口的访问,比如计算机A访问计算机B,那么,计算机B 相当于服务器,计算机A相当于客户机。
如果是访问网页,一般就是客户机访问服务器的80端口。
在访问的过程中,浏览器会主动开放一个端口(就是客户端端口)与服务器的80端口进行连接访问。
一般客户端端口号都比较大。
现在的BT、迅雷等P2P软件就是利用了客户端端口作为服务端口来运行的,就是你进行下载的同时也同时提供了被下载的服务,你的客户端端口也是一个服务端口。
在防火墙中应用较多的是源转换(SNAT)和目标转换(DNAT)。
DNAT相当于路由功能。
一般都是把服务器和上网区域放在防火墙后面,如下面的图例。
服务器和上网客户机上网是均转换成58.222.239.253进行上网,这是源地址转换(SNAT)。
外界访问58.222.239.253时,防火墙会根据访问的IP及端口进行转向,将服务请求发送至服务器(DMZ)区域中的提供相应服务的主机,这是目的转换(DNAT)。
DMZ区域又称武装缓冲区,上图利用防火墙的多个网卡功能将这一区域与客户机及外网进行了隔离。
客户机及外网不能直接访问服务器,病毒木马也不可能直接攻击到服务器,所有的访问请求都要经过访火墙的判别,符合规则的请求才可能传递到服务器。
利用多个网卡(eth),可以将不同的服务器同样进行隔离,即使服务器区一的某一个服务器中了毒或木马,也不可能直接感染到服务器区二的主机。
天融信防火墙提供了8个网络接口(从eth0-eth7),我们可以充分利用这些接口来采取有效的隔离措施。
三、定义对象天融信防火墙的对象定义在网络管理和资源管理中。
比如,上图中服务器区域是eth1和eth2,我们可以在资源管理中定义一个区域如“服务器区域”,属性选择eth1和eth2,这样就可以在后面的规则中进行应用。
如果以后增加了一个接口如eth4,我们只需要修改服务器区域,加入eth4就可以了。
再者如果将学生上网用机与办公用机进行区分,可以增加一个eth5,将增加的线路接口插入eth5,我们可以增加区域为学生上网区域及教师上网区域,或者定义一个区域为公共上网区域,将eth3和eth5加入这个区域就可以了。
如下图:区域相当于分组功能,其它的对象定义如地址、接口、服务等等可以按照需要进行定义。
需要说明的是,在后面规则中用到的,如果在对象中没有定义,一定要先进行定义。
比如,对于一个大型服务器集群,服务器是很多的,我们可以在地址中这样进行定义:名称地址web服务器172.16.12.22流媒体服务器172.16.12.21文件服务器172.16.66.88......四、基本行为与基本策略对于防火墙来说,被处理对象的行为只有三个:进入防火墙自身的服务端口(INPUT)、转向(FORWARD)、出防火墙(OUTPUT)。
天融信防火墙对于INPUT的处理是提供服务,在系统管理的配置菜单下,我们可以在面板中选择开放服务来查询和配置。
FORWARD一般是用在地址转换中,包括SNAT和DNAT。
OUTPUT指数据包出防火墙,可以细节到每一个eth接口。
防火墙处理的基本策略只有两种:一是先全开放,再对相应的进行关闭;二是先全关闭,再有选择的进行开放。
通常的也是推荐的做法是先全关闭再开放。
因此我们在定义对象的时候,如果有权限选项,建议全部选禁止,比如定义区域的时候。
五、地址转换与访问控制学完本节以后就可以配置防火墙了。
地址转换常用的是源地址转换和目的地址转换,至于双向转换是二者的综合。
一般我们应该用源地址转换和目的地址转换就可以了。
比如我们学生机和教师机要上网,我们可以这样进行设置:1)在接口中加入地址。
在外网接口中加入外网地址:如在eth0中加入58.222.239.235,掩码:255.255.255.248。
在eth3中加入192.168.0.1,掩码255.255.255.0,同理在eth5中加处192.168.5.1,掩码同上。
在资源管理的地址中加入一个名称为出口地址的58.222.239.235。
2)定义一个区域名称为内网,属性选择学生机和教师机的接口eth3和eth5。
权限选择禁止。
再定义一个区域名称为上连区域或外网,属性选择为eth0,权限同样为禁止。
3)进行防火墙设置,在地址转换中选择添加,定义为源地址转,在源中点击高级,选择区域中的上网区域,如学生机区域和办公用机区域。
点击->按扭就添加到源地址表中了。
(下图中为内网)4)点击目的,同样点击高级,选择上连区域或外网。
5)在下面的源地址转换为中选择出口地址。
这个出口地址已被定义为58.222.239.235。
确定以后就加入了一条源地址转换(SNAT)规则。
现在你发现还不可以上网,这是困为我们在定义区域的时候权限被禁止了。
下面我们在访问控制中增加一条规则,同样选择区域为学生机区域和办公用机区域,目的选择上连区域或外网。
访问权限选择为允许。
确定以后,我们就发现可以用学生机或办公机上网了。
当上网机通过网关192.168.0.1或192.168.5.1时就被转换为58.222.239.235对外进行访问。
下面来谈一下目的地址转换,一般我们是在服务器设置中需要用到。
1)在资源管理的地址管理中加入服务器地址,如名称为web服务器,IP为172.16.12.22。
2)在地址转换中添加时选择为目的转换。
3)点击高级,源选择为上连区域或外网,如果想内网用户可以用外网地址或域名访问,同样在区域中加入。
4)目的地址中选择出口地址,在下面的目的地址转换中选择为web服务器。
建议在服务中选择相应的服务如80,21等等需要提供的服务。
当访问者访问防火墙(IP:58.222.239.235)的80端口时,防火墙就自动转向到WEB服务器(IP:172.16.12.22)的相应端口。
同理我们需要在访问控制中添加一个规则:源选择为上连区域、内网,目的选择为服务器区域,权限选择为允许。
现在我们的WEB服务器就可以提供服务了。
重要说明:我市教育域域网是通过VPN连接的,电信提供的地址是电信内部的VPN网络地址,本文中的58.222.239.235如果在防火墙中直接使用并不能访问,我们在城域网中实际应用时应填写电信提供的VPN网络地址,如172.24.129.XXX,否则将不能访问。
六、防火墙产品与安全意识和安全措施防火墙仅仅是一个安全方面的软硬件产品,但它并不是万能的、全能的,就象一把剑,丢在任何地方并不起任何杀伤的作用,只有我们握在手中用我们的意识去指挥它才能发挥它的作用。
当前流行的就是硬件防火墙和软件防火墙。
软件防火墙包括企业级的Windows ISA和Unix\Linux下的基于IPTables之类的自主编写的防火墙脚本,以及一些客户级的防火墙如Windows XP自带的防火墙和瑞星个人防火墙、天网个人防火墙等等。
硬件防火墙种类就很多了,但硬件防火墙从原理上来说一般可以说是Linux或类Unix安全软件产品的硬件化,本身也是软件产品,通过自主开发实现复杂的安全控制以及提供友好的操作界面。
一些中低档的硬件防火墙实际上就是一个Linux或类Unix主机,里面有硬盘、cpu、内存等等,与电脑没有多大区别,高档的防火墙则将这些东西写入芯片,提供芯片级的处理能力。
实际上现在很多网络产品,如交换机、路由器等等也都是这样的实现方法。
从某种意义上来说,我觉得防火墙实际上就是一个安全程序,这个安全程序可以由用户制定一些规则而产生相应的安全策略。
在第二篇中我在区域设置中说明每建立一个对象如区域,只要有初始的默认的安全权限,就设置为禁止,然后在安全控制中再打开需要的权限。
这就是一个基础安全策略。
一般来说,开放的端口即服务越多,安全系数就降低,所以我认为对于安全级别要求很高的环境来说,除了设置强度很高的登录密码,也需要尽量减少服务端口,所有开放的端口只是必要的面向客户的服务端口,如WEB的80。
这就带来一个问题,管理者可能还需要其它端口,比如ftp的21,SSH的22、远程桌面的3389及4899等等来进行管理等操作,在一个Linux或Unix服务器集群中,很简单高效的办法就是只在一台主机上开通ssh登录服务,对其它服务器的访问均只可以通过这个基本的ssh登录后再进行ssh的登录管理访问。
但对于Windows主机集群,这就有些困难了,因为Windows很多操作需要图形化的界面。
最好的解决办法我认为是通过vpn的拨入再进行管理。
就是说,在防火墙外面的所有外网的IP都不能直接管理内网的服务器或客户机器,只有内网的允许的IP才可以进行管理。
当然除了vpn的拨入,也可以采用一台机器开放远桌面服务,再由这台机器进行管理。
上述原理就是封闭直接管理通道,只开放指定内网IP的管理功能和权限。