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的启动失败或是错误:
预设是为No,如果您决定要使用shorewall来管理您的防火墙的话,那么强烈的建议您将这个选项设定为Yes。
LOGFILE=/var/log/messages
|
设定记录文件的位置,预设的记录文件是messages这个档案,您也可以指定另外的档案,以区分防火墙及一般讯息,便于除错时较能快速掌握状况。
设定记录文件的等级,一般来说shorewall的记录是由syslog这只程序来进行,一共有八级,而shorewall预设的记录等级为info,您可以参考/etc/syslog.conf来了解其它等级的记录内容为何。
CONFIG_PATH=/etc/shorewall:/usr/share/shorewall
|
设定shorewall的所有配置文件所存放的目录位置为何,如果您的设定档不是放在这个位置的话,请自行修改至正确的路径。
预设的防火墙接口名称,在shorewall中,会内定一个防火墙的Zone名称,这个名称不需要在/etc/shorewall/zones中定义,直接可以在各个设定档中使用。
预设是打开的,这个选项代表是开启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的方式联机到外部网络,这样子就算是成功的建立一座防火墙了。
分享到:
相关推荐
shorewall防火墙的使用 提要:相信大家一定很想自己做一个企业级应用得防火墙,看到大家在论坛上常常问到累似得问题,现在我将我自己身边得一个防火墙企业级应用实例共享出来,希望能帮到需要帮助得朋友。
安装和配置 shorewall 要求 应该在任何地方工作。 属性 岸墙 node['shorewall']['dir'] - 安装 shorewall 的位置(默认为 /etc/shorewall) node['shorewall']['init_file_dir'] - 安装初始化文件的位置(默认为 /...
shorewall防火墙配置教程.zip
离线安装包,亲测可用
如何使用它 将 ssh 登录到您的 VM 并运行: sudo aptitude install shorewall cd /etc/shorewall sudo git clone https://github.com/rikless/homestead-shorewall.git cd homestead-shorewall sudo mv * ../ && ...
基于iptables的防火墙,用于运行Linux 2.4或更高版本内核的系统。 高度灵活的配置使防火墙可以在多种防火墙/网关/路由器和VPN环境中使用。
2. 防火墙:Shorewall提供了一个图形界面,使得管理使用iptables的好质量防火墙变得更加简单。Firestarter也是一个好的图形界面防火墙工具。 3. 文件恢复工具:PhotoRec是一个用于视频、文档和档案恢复的工具。...
离线安装包,亲测可用
岸墙木偶模块此模块管理Shorewall的配置( )要求该模块需要augeas模块,您可以在这里找到: ://gitlab.com/shared-puppet-modules-group/augeas.git 该模块需要concat模块,您可以在这里找到: : 版权版权所有(C)...
9. **限制带宽**:使用`/etc/shorewall/shorewall.conf`或`/etc/pure-ftpd/conf/LimitBANDWIDTH`来限制FTP用户的上传和下载速度。 10. **故障排查**:当遇到问题时,可以通过`netstat`查看连接状态,`tail`或`less`...
4. **Shorewall防火墙的临时文件处理漏洞**:Shorewall 2.0.3及以下版本存在不安全的临时文件和目录创建问题,本地攻击者可以利用此漏洞破坏系统文件或提升权限。为解决这个问题,用户应升级到不受影响的版本,如...
该脚本可以禁止iptables,shorewall或hosts.deny的攻击者(实际上),并且在快速和缓慢的蛮力攻击中非常有效。 依靠 去 安装 要安装它,请确保已安装golang 1.3或更高版本。 然后从命令提示符处运行以下命令: 去...
一、fail2ban简介 fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送e-mail通知系统管理员,是不是很好、很实用、很强大! 二、简单来...
CentOS 6.4 x64 KickStart 自動化安裝配置檔, 整合 shorewall & squid
Proxmox防火墙(Proxwall)是基于Shorewall和许多其他开源工具的灵活Linux防火墙。 它旨在在数分钟内安装在商用硬件上。 它可以处理复杂且快速变化的网络环境。
自己写的一个介绍关于防火墙的ppt,里面讲讲解了iptables和netfilter的关系,语法以及c代码封装iptables规则的方法与过程。