注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

Iptables的配置工具:shorewall  

2013-06-10 21:51:49|  分类: xtables应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 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。



1
LOGFILE=/var/log/messages

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



1
LOGNEWNOTSYN=info

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



1
CONFIG_PATH=/etc/shorewall:/usr/share/shorewall

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



1
FW=fw

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



1
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的设定内容如下所示:


1
2
3
4
#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是对内部局域网络的接口,那么设定的内容如下所示:



1
2
3
4
#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的设定内容如下:



1
2
3
4
5
#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的功能,设定内容如下:



1
2
3
#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的防火墙,请依照下列指令重新启动



1
2
3
#shorewall check
#shorewall restart
#chkconfig --level2345 shorewall on

  完成!

  

  评论这张
 
阅读(172)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017