所属分类: NetFilter 整理: FengNet.Com 更新日期:2007/3/22 10:32:05 阅读次数:5667

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


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,它的更新速度非常的快速,


4


----------------------------------------------------------------------------------------------------------------------

、反安装过程
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的方式联机到外部网络,这样子就算是成功的建立一座防火墙了。

--------------------------------------------------------------------------------

相关文章
Linux运维工程师的十个基本技能点 2015/9/21 9:40:09
iptables官方手册整理 2014/12/18 15:50:54
系统架构师经验总结 2014/12/18 15:48:36
Centos Bind配置完整版 2014/11/10 16:08:33
从攻到防,深入浅出DDoS 2014/4/23 10:15:26
中文Linux Command 2013/5/28 11:25:48
LAMP 环境搭建 2013/3/15 16:44:51
Fail2ban简介 2012/3/30 10:53:11
服务器暴力入侵防护 fail2ban 2012/3/30 10:45:23
centos一些常用命令的备忘录 2012/3/29 15:45:16
Linux下防御/减轻DDOS攻击 2011/10/23 13:12:58
防恶意扫描 PortSentry保护Linux服务器 2011/10/23 13:08:21
Postfix+Dovecot+Roundcube+MySQL架设完整Webmail系统 2011/10/22 8:52:25
iptables中用hashlimit来限速 2010/4/16 15:14:22
运用Solaris的系统安全特性进行企业审计 2010/3/15 21:21:29
初次远程做Linux Iptables规则注意事项 2008/6/1 18:01:24
关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明 2008/6/1 17:45:27
Vsftpd快速安装配置参考(适用于各类linux/unix系统) 2008/4/27 7:59:45
Linux 2.6.19.x 内核编译配置选项简介 2007/5/29 7:55:59
iptables防火墙配置工具ShoreWall的安装和使用实例 2/2 2007/3/22 10:33:22
shorewall 企业防火墙的完美实现 2007/3/22 8:37:20
用iptables封BT 2007/1/16 15:09:12
常见 iptables 的 firewall 设定配置问题: 2007/1/16 15:07:48
用Linux系统防火墙功能抵御网络攻击 2006/12/14 17:28:02
Solaris系统安全之审计 2006/7/22 17:26:03
用Solaris防火墙构建非军事区 2006/7/14 9:54:53
VSFTP—安全与效能兼备的ftp 服务器 2006/6/15 19:20:08
使用OPENVPN实现各机房的互通 2006/5/8 14:34:04
OpenVPN使用User/Pass验证登录 2006/5/8 14:33:08
建立一个带宽、线程可控的下载型WEB网站 2006/4/30 13:53:11
向P2P通信宣战(关于封BT下载软件) 2006/4/4 8:07:19
用专用Linux日志服务器增强系统安全 2006/4/3 13:37:51
实时监测网络是否断线的几种办法 2006/1/2 21:24:22
在RedHat9上构建小型的入侵检测系统 2005/9/20 14:14:17
Linux 2.4 Packet Filtering HOWTO 简体中文版 2005/8/19 8:27:48
把linux配置成pix 的日志主机 2005/6/3 12:07:51
TC(HTB)+iptables作流量控制 2005/6/3 12:05:25
netfilter/iptables模块编译及应用 2005/6/3 12:04:20
推荐大家使用一个入侵测系统+主动防火墙-->Snort+Guardian 2005/3/24 9:20:54
NAT后无法在内网通过外部IP访问内部服务的问题的详细说明 2004/7/27 17:12:50
iptables 入门 2004/7/26 8:45:34
iptables 使用时的样板 2004/5/26 14:02:16
Linux一句话精彩问答-网络相关篇 2004/5/26 13:44:58
將 iptables 的規則寫成 shell 執行檔 2004/4/1 8:46:56
netfilter和squid配合创建透明代理的问题讨论 2004/2/18 9:22:08
用iptables+squid实现透明代理/用pwebstats进行squid日志分析 2004/2/13 17:00:27
LINUX新手入门及安装配置faq200(下) 2003/12/31 20:54:57
Linux实现ip和mac绑定 2003/12/31 20:40:01
高性能linux双效防火墙howto 2003/12/31 20:32:05
限制单个IP并发TCP连接的iptables方法 2003/11/20 14:06:11
iptables防火墙脚本 2003/11/20 14:05:27
在防火墙环境下DNS的安装与设置 2003/10/30 11:24:12
ADSL+RH8.0透明网关指南 2003/10/23 15:11:40
Redhat9+ADSL+IPTABLES+DHCPD解决方案 2003/9/17 8:44:16
最佳的75个安全工具 2003/9/5 15:18:38
Linux服务器的一些基本应用 2003/8/15 12:11:07
RedHat7.3 上建立网通拨号的上网共享 2003/8/15 11:03:32
Linux下如何接ADSL一类的宽带猫带动局域网上internet (转) 2003/8/15 10:45:23
Debian GNU/Linux下的入侵检测系统 2003/8/12 8:41:10
Linux下的NAT及防火墙的混合应用 2003/8/5 8:15:16
用Iptables+Red Hat Linux 9.0 做ADSL 路由器 2003/8/5 7:23:08
一个国产的防火墙脚本 2003/7/30 17:29:45
iptables基础,绝对的基础 2003/7/30 17:17:23
给予网吧使用的Nat+Iptables+Squid的脚本 2003/7/30 17:13:48
构建小型的入侵检测系统(RedHat9) 2003/7/30 16:50:32
用实验快速学习Samba 2003/7/21 8:40:19
用实验快速掌握DNS配置 2003/7/21 8:38:23
用实验快速配置Vsftp 2003/7/21 8:37:29
用实验快速配置Nfs 2003/7/21 8:37:07
iptables扩展功能的增加 2003/7/19 19:11:25
iptable 使用实例 2003/7/19 18:54:18
使用TC实现基于linux的流量管理 2003/7/14 8:38:01
防火墙脚本netfilter 2003/7/13 18:51:51
限制单个IP并发TCP连接的iptables方法 2003/7/13 18:48:16
linux下的VPN配置 2003/7/13 18:45:00
redhat linux 9.0的samba设置详解(原创) 2003/7/13 18:15:31
redhat linux 9.0 VSFTP配置大权(转载) 2003/7/13 18:13:25
Linux环境下多链路负载均衡 2003/7/13 18:12:01
iptables防火墙脚本 2003/7/13 18:09:57
非常全面的NFS文档(FOR LINUX) 2003/7/13 18:04:38
Linux代理服务全攻略 2003/6/27 8:24:29
redhat linux 9.0 VSFTP配置大权 2003/6/10 10:22:56
RedHat 8.0提供ADSL共享上网的解决办法 2003/5/25 21:07:48
iptables的状态检测机制 2003/5/22 10:40:37
Linux 2.4内核下新型包过滤结构的使用 2003/5/21 9:59:12
防火墙软件Netfilter 2003/5/13 9:37:45
Linux 2.4中netfilter框架实现 2003/5/13 9:35:24
Linux服务器的一些基本应用 2003/3/24 10:43:09
Linux简明系统维护手册 2003/3/11 18:35:40
Netfilter的高级使用 2003/2/24 13:25:49
Linux简明系统维护手册5 2003/2/18 19:48:03
Linux简明系统维护手册4 2003/2/18 19:45:25
iptables应用之动态DNS 2003/1/19 22:01:34
用iptales实现包过虑型防火墙 2003/1/15 16:55:53
用iptables实现NAT 2003/1/15 16:49:48
Netfilter/Iptables的防火墙功能介绍 4 2003/1/12 16:21:46
Netfilter/Iptables的防火墙功能介绍 3 2003/1/12 16:20:28
Netfilter/Iptables的防火墙功能介绍 2 2003/1/12 16:19:33
Netfilter/Iptables的防火墙功能介绍 1 2003/1/12 16:18:20
防火墙软件Netfilter(一) 2003/1/12 16:04:23
Netfilter的高级使用 2003/1/12 16:00:27
理解防火墙及防火墙实例系列: 第二部分 unix 下的防火墙软件 ipfilter 2003/1/12 15:47:31


感性空间
设计&运维
网络技术
休闲娱乐
NetFilter
linux&Unix
网络安全
程序空间
软件考试
RFC&ISO
规划&规范
虚拟&存储
Apple技巧
云计算&大数据



文章搜索



站内搜索