摘 要:摘要:网络防护墙在大中型企业的网络安全方面扮演重要角色,该文针对目前在大中型企业对网络安全性,可靠性上的需要,利用Linux的iptables及开源软件包实现高可用的防火墙系统。
关键词:关键词:防火墙,高可用,网络安全
中图分类号:TP393.08 文献标识码:A 文章编号:
1.引言
随着互联网技术的不断发展,互联网的用户数目也在逐年扩增。随即带来的互联网信息安全问题越发显的重要。而其中防火墙在互联网信息安全方面扮演着重要的角色。如今防火墙在大型网站,政府机构、大中型企业,教育机构中广为使用。但是目前的防火墙产品大多以硬件产品的形象出现,而且大多是国外品牌,例如CISCO,Juniper等,这些防火墙虽性能强大,稳定性高,但是却有着产品价格高昂,功能比较单一,源码不公开等缺陷,为了解决这一问题,本文研究的是基于Linux Iptables实现的高可用性,开源,免费的防火墙技术。
2.防火墙概述
该防火墙主要由开源的软件所构建的。Linux从2.6内核开始已经把iptables整合了。Iptablss是一款强大的包过滤程序,能实现防火墙,NAT等功能。如果实现单一的防火墙,使用iptables完全可以解决。要实现高可用的防火墙,还需要以下两个开源软件包conntrackd和keepalived。图1为防火墙示意图。
图1中的两台防火墙运行Debian 2.6.35系统,并安装conntrackd和keepalived这两个软件包。FW1和
FW2实现的是主备模式的防火墙系统,当FW1失效的时候,FW2能自动切换到主模式从而实现防火墙的热备份。
3.Conntrackd介绍
Conntrackd提供了一个用户控件守护进程用来追踪iptables连接状态信息。守护进程在几个防火墙间同步网络连接的状态信息。因此conntrackd是实现高可用防火墙不可缺少的组件。在主备模式的防火墙下,当一个连接在主防火墙建立时,连接的信息会通过conntrackd同步到备份防火墙上。这样备份防火墙始终保存目前已经建立的连接信息,一旦主防火墙失效时,备份防火墙可以立即投入使用,而不用让已经建立的连接重新建立。
Conntrackd在使用上比较简单,主要的配置文件位于/etc/conntrackd下面。定义了同步的协议接口和协议等。例如FW1需要配置的信息,
Multicast {
IPv4_address 225.0.0.50#同步信息使用的组播地址
IPv4_interface 172.16.0.1#发送同步信息接口的IP地址
Interface eth2#发送同步信息的接口
Group 3780
因为防火墙只关心通过的数据包,所以还需要将防火墙的地址加入到忽略的列表中
Address Ignore {
Ipv4_address 127.0.0.1
Ipv4_address 192.168.1.2
Ipv4_address 10.1.1.2
Ipv4_address 172.16.0.1
这个脚本文件用于协调conntrackd和keepalived的工作,当keepalived发现连接出现问题时会调用该脚本进行conntackd的主从切换。下文的keepalived的配置也会调用该脚本。
4. Keepalived介绍
Keepalived是基于VRRP协议实现的一款失效转发机制的软件,当服务器的状态出现异常时,例如死机、网卡接口失去连接时,keepalived将检测到,并将有故障的server从集群中剔除,当服务器恢复后,keepalived能自动将服务器重新加入到集群中。要实现防火墙的主备切换,主备服务器都需要通过keepalived绑定相同的虚拟IP,内部的主机通过这个虚拟的IP与外界进行交互。
如图1所示,分别在eth0和eth1上绑定虚拟ip:192.168.1.1及10.1.1.1。当FW1作为主服务器时,虚拟IP192.168.1.1和10.1.1.1以子接口的方式存在FW1的eth0和eth1上,当FW1出现故障时,这两个虚拟地址会通过keepalived绑定到FW2上,这样对于Users Pc来说网关的地址并未发生变化,从而实现了防火墙的热备份。
Keepalived的核心配置文件是/
FW1的配置
vrrp_sync_group {
group {#定义需要监控的Group
cluster-eth0
cluster-eth1
}
#实现conntrackd和keepalived的联动
notify_master "/ primary"
notify_backup "/ backup"
notify_fault "/ fault"
}
vrrp_instance cluster-eth0 {
state MASTER#初始状态为主
interface eth0#需要主从切换的接口
virtual_router_id 20#主和备的ID需要相同
priority 100#优先级高的会被选举为主
virtual_ipaddress {#接口的虚拟IP
192.168.1.1/24 brd 192.168.1.255 dev eth0
}
}
vrrp_instance cluster-eth1 {
state MASTER
interface eth1
virtual_router_id 30
priority 100
virtual_ipaddress {
10.1.1.1/24 brd 10.1.1.255 dev eth1
}
}
FW2的配置
vrrp_sync_group {
group {
cluster-eth0
cluster-eth1
}
notify_master "/ primary"
notify_backup "/ backup"
notify_fault "/ fault"
}
vrrp_instance cluster-eth0 {
state BACKUP
interface eth0
virtual_router_id 20
priority 50
virtual_ipaddress {
192.168.1.1/24 brd 192.168.1.255 dev eth0
}
}
vrrp_instance cluster-eth1 {
state BACKUP
interface eth1
virtual_router_id 30
priority 50
virtual_ipaddress {
10.1.1.1/24 brd 10.1.1.255 dev eth1
}
}
Keepalived引入了sync_group组,当组中的一个接口发生主备切换时,组中的其他接口也会发生主备切换,这样满足了所有的网络流量在同一个防火墙上通过的需要。Sync_group也提供了VRRP的三种状态信息:master,backup和fault,并可以把状态信息发送到其他的脚本,例如上文提到的conntrackd的主备切换脚本。对于优先级的设置,一般是把性能高的服务器设置为主防火墙,当keepalived运行时,优先级高的会被选举为master,只有当优先级高的发生错误时,优先级低的才可成为master。如果优先级高的恢复正常后,keepalived又会重新选举,优先级高的重新被选为master。
5.Iptables配置简单的防火墙规则
启动内核的IP转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
清除现有规则
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -P FORWARD DROP
设定防火墙的基本规则:允许内网用户访问Internet,对内网地址进行NAT转换
iptables -t nat -A POSTROUTING -o eth0 -s 10.1.1.0/24 -j MASQUERADE
iptables -A FORWARD -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 10.1.1.0/24 -j ACCEPT
为了保证主备防火墙之间的VRRP协议能正常的通讯,需要加入以下的规则
iptables -A INPUT -p VRRP -j ACCEPT
iptables -A OUTPUT -p VRRP -j ACCEPT
同时也需要添加规则允许conntrackd交换状态信息
iptables -A INPUT -i eth2 -j ACCEPT
iptables -A OUTPUT -o eth2 -j ACCEPT
将上面的防火墙规则加入到主备防火墙的/中,让每次防火墙启动是自动加载这些配置。每次需要修改防火墙规则时,需同时修改主备两台防火墙的规则,以保证防火墙集群的高效、可靠。
6.结束语
通过运用linux的Iptables技术,以及开源软件包Conntrackd和Keepalived搭建的高可用性防火墙,解决了单独的软件防火墙的稳定性差及硬件防火墙价格高,技术不公开等问题。给对安全性、可靠性高度重视的政府,军事机构提供了一个经济的解决方案。
参考文献:
[1] 劉華,顏國正,丁國清.在Linux下用Iptables建立防火墻的方法[J].计算机工程,2003,29(10)
[2] 王正.网络安全中防火墙技术探讨[J].通信技术,2008,41(8)
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。