扫一扫
关注微信公众号

iptables防火墙配置工具ShoreWall的安装和使用实例
2007-08-31   

shorewall不是一个daemon的程序,它是一个加载iptables指令的套件,所以请别指望使用ps -aux这类的指令来查询它的行程,接下来的部份就分别说明各个设定文件的功能及格式。
本质上来说,shorewall是Iptables的配置工具。因为Iptables的语法晦涩难懂,命令繁多,难以记忆和理解。所以通过配置相对容易理解的shorewall进行防火墙的配置,之后shorewall会自动的调用Iptables完成配置。
一、下载安装与卸载
1、下载
ShoreWall的官方网址为http://www.shorewall.net,在安装之前先要去下载它的原始码程序,地址在http://www.shorewall.net/download.htm这个页面,您可以选择一个Mirror站台来下载,笔者是选择USA的站点来下载,进入画面之后,选择一个您想要使用的版本,最新的版本已经出到了3.2,它的更新速度非常的快,随后安装即可
2、反安装过程
Tarball:
请在原来的安装目录中输入以下的指令:
#./uninstall.sh
这个指令会将shorewall的所有设定档给移除掉。
RPM:
#rpm-eshorewall
二、编辑设定档
安装完毕后,必需先要设定各个设定档才能启动shorewall。
1、/etc/shorewall/shorewall.conf
shorewall.conf这个设定文件是整个软件配置中最重要的一个档案,里面有许多的设定,若是搞错的话,很可能会造成shorewall的启动失败或是错误:
STARTUP_ENABLED=Yes

预设是为No,如果您决定要使用shorewall来管理您的防火墙的话,那么强烈的建议您将这个选项设定为Yes。
LOGFILE=/var/log/messages

设定记录文件的位置,预设的记录文件是messages这个档案,您也可以指定另外的档案,以区分防火墙及一般讯息,便于除错时较能快速掌握状况。
LOGNEWNOTSYN=info

设定记录文件的等级,一般来说shorewall的记录是由syslog这只程序来进行,一共有八级,而shorewall预设的记录等级为info,您可以参考/etc/syslog.conf来了解其它等级的记录内容为何。
CONFIG_PATH=/etc/shorewall:/usr/share/shorewall

设定shorewall的所有配置文件所存放的目录位置为何,如果您的设定档不是放在这个位置的话,请自行修改至正确的路径。
FW=fw

预设的防火墙接口名称,在shorewall中,会内定一个防火墙的Zone名称,这个名称不需要在/etc/shorewall/zones中定义,直接可以在各个设定档中使用。
IP_FORWARDING=On

预设是打开的,这个选项代表是开启IPForward的功能,如果您的Linux主机是独立型的主机,并不需要使用到NAT或者是DNAT等功能的话,那么这个选项就可以把它给关闭。
以一个最简单的网络架构来做为设定的例子,以一台Linux主机为主要单位,有两张以太网络卡,eth0是对外部的网络卡,而eth1则是对内的网络卡,内部局域网络透过NAT连结到外部网络,而这台Linux主机同时具备有简易防火墙的功能,针对下面的各个设定档案做说明。
2、/etc/shorewall/zones
在zones这个档案中,您可以定义您的网络区域代码,限制在5个或5个字符之下,总共有三个字段,分别说明如下:
ZONE:定义的名称,限制在5个或5个字符以下。
DISPLAY:这个接口所显示的名称,通常和ZONE设定是一样的。
COMMENTS:对这个接口的简略说明。
那么在这个例子中,笔者就定义了二个接口,在zones的设定内容如下所示:
#ZONEDISPLAYCOMMENTS
loc Local Localhost
net Net Internet
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE

其中loc就是对内的网络接口,而net就是对外部网络的网络接口。
3、/etc/shorewall/interfaces
接下来就要建立网络接口及ZONE的对照表了,前面说过eth0是对因特网的接口,而eth1是对内部局域网络的接口,那么设定的内容如下所示:
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 xxx.xxx.xxx.128
loc eth1 192.168.1.255 dhcp
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE 

其中第一个字段就是对应到/etc/shorewall/zones的ZONE名称,而第二个字段就是对应到在Linux系统中的接口名称,在这个例子中,eth0是对外部网络的接口,所以对应到net,而eth1是对内部局域网络的接口,所以对应到loc,第三个字段是设定该网络接口的BROADCAST,如果是Cclass的话,就是设定成x.x.x.255。而最后一个OPTIPNS的字段就是这个接口要用什么样的功能,比方说在这个例子中,eth1接口还要负责DHCP配发的动作,所以就在OPTIONS的字段上加入dhcp的记录,其它的功能请参照interfaces的批注,在此不做太多的说明。
4、/etc/shorewall/policy
这个档案是设定整个大方向的防火墙政策,通常建议较安全的方案是先将所有由外而内的政策都设定成为拒绝,然后再一个一个的打开可用的port号,所以policy的设定内容如下:
#SOURCE DEST POLICY LOG LIMIT:BURST
loc net ACCEPT
net all DROP info
all all REJECT info
#LAST LINE -- DO NOT REMOVE

其中第一行是允许由内部局域网络连到外部网络,第二行是将所有外部来的封包都丢弃,并记录到记录文件中,第三行的功能也是一样。
5、/etc/shorewall/masq
这个档案是设定让内部的虚拟IP可以伪造真实的IP联机出去,也就是NAT的功能,设定内容如下:
#INTERFACE SUBNET ADDRESS
eth0 eth1 xxx.xxx.xxx.xxx
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE

其中INTERFACE是对外的网络卡,而SUBNET则是对内部虚拟网络的网络卡,最后的字段ADDRESS则是对外网卡的真实IP,输入完后就存档离开。
最后再重新启动shorewall的防火墙,请依照下列指令重新启动
#shorewall check
#shorewall restart
#chkconfig --level2345 shorewall on

完成!
虽然这样子就完成了最基本的防火墙建置,所有由外部对内部的服务全部都被关闭,只让内部的虚拟IP以NAT的方式联机到外部网络,这样子就算是成功的建立一座防火墙了。

热词搜索:

上一篇:Radware LinkProof产品如何解决南北互通问题
下一篇:iptables防火墙配置工具ShoreWall进阶实用介绍

分享到: 收藏