`

ShoreWall的安装和使用实例(二)

阅读更多

在上一篇iptables防火墙配置工具ShoreWall的安装和使用实例 中,我们介绍了如何安装和使用ShoreWall工具来进行防火墙配置,在本篇文章中,将给大家介绍它的一些高级组件的使用实例。
一、进阶组件介绍
1、params
这 是用来设定shell变量的一个档案,这个档案有点像是C语言中的include功能一样,把include进来的档案的变量放到现在这个档案中,只是在 shorewall的设定档中,并不需要再使用include来引入,params这个档案的目的在于将所有相关的变量都统一设定在里面,当您的规则全都 设定好了之后,只要变更params的内容就可以套用在别的网络状态,管理起来非常的方便,以下就是一个例子:

在/etc/shorewall/params中的设定:
NET_IF=eth0 NET_BCAST=130.252.100.255
NET_OPTIONS=blacklist,norfc1918
在/etc/shorewall/interfaces中的设定:
net$NET_IF$NET_BCAST$NET_OPTIONS


这样子的话,其它的规则就都可以使用变量的方式来写,所以说规则只要写一次,就可以重复的使用啰!
2、rules
这 个档案是整个shorewall的重点档案,policy档案的目的在于制定整个防火墙政策,比方说loc这个接口对dmz这个接口的政策是REJECT 或是ACCEPT等,通常由防火墙外至内部网络的政策都是全部先设定为关闭的。而rules这个档案则是在制定一些【例外】的状况,比方说,您的防火墙将 所有的port都给关闭了,以至于从外不能由ssh连结进来,那么这个时候就可以在rules这个档案中来定义,它的格式如下所示:

#ACTIONSOURCEDESTPROTODESTSOURCEORIGINAL
#PORTPORT(S)DEST
DNAT fw loc:192.168.1.3 tcp ssh,http


以上的设定是指转送所有fw防火墙接口的ssh及http的请求至loc的界面,而IP为192.168.1.3的机器上。
在这个档案中有几个较常用到的字段,分别说明如下,其它较少用的字段在此笔者就不多加说明了:
◆字段名称设定项目说明
ACTIONACCEPT允许这个联机的要求。
ACCEPT+和ACCETP一样,但是会排除之后有关REDIRECT-及DNAT-的规则。
DROP:忽略这个联机的请求。
REJECT:不接受这联机的请求,并回复一个icmp-unreachable或是RST的封包给对方。
DNAT:转送这个封包至另一个系统(或是其它的port号)。
DNAT-:只有进阶的使用才会用到,这和DNAT的规则一样,但是只产生DNAT的iptables的规则而且也不是ACCEPT成对的规则。
REDIRECT:重导这个联机的请求到local的另一个埠号中。
REDIRECT-:只有进阶的使用才会用到,这和REDIRECT的规则一样,但是只产生REDIRECT的iptables的规则而且也不是ACCEPT成对的规则。
CONTINUE:专家模式专用,对于这里所定义的来源及目的端的请求就会被pass通过。
LOG:简单的记录封包信息
QUEUE:将这个封包伫放在使用者的应用程序中。
<action>;定义在/etc/shorewall/actions或是/usr/share/shorewall/actions.std中的动作。
SOURCE: 来源地址,格式可设定以下几种样式:loc、net(在zones档案中所定义的接口)192.168.1.1(IP格 式)192.168.1.0/24(子网络格式)loc:192.168.1.1loc:192.168.1.0 /24loc:192.168.1.1,192.168.1.2loc:~00-A0-C9-15-39-78(MACAddress)
DEST:目的地址,设定的方式和SOURCE一样,但是如果SOURCE设定为all时,则有以下的限制:并不允许使用MACAddress在DNAT的规则中只允许使用IPAddress不可同时使用interface及IP
PROTO:必需是tcp、udp、icmp或是all,或者是数字。
DESTPORT(S):目的端的端口号,可用数字或名称,在设定这个字段时,可以用逗号(,)来建立多个端口号清单,也可以用一整个范围的埠号(1024:2048->;意思是从1024到2048之中所有的端口号)来建立清单。
CLIENTPORT(S):客户端的埠号,这个字段可以忽略掉。
3、nat
这 个档案主要是用来定义one-to-one型式的NAT,所谓的"one-to-one"是代表说一个真实IP将所有的服务都转向内部的一个虚拟IP,所 以通常是一个真实的IP就【只能】指向一个虚拟的IP,这通常是用在当这台NAT主机是只有跑防火墙服务,然后所有提供外部服务的主机都是藏在内部虚拟 IP的状况下,在一般的情况下比较少用到这个档案,如果想要使用forward或是DNAT的功能的话,就不能使用这个档案来设定,必需去设定rules 这个档案才行,有关于nat的设定内容如下所示:

#EXTERNALINTERFACEINTERNALALLLOCAL
#INTERFACES
x.x.x.x eth0192.168.1.23


EXTERNAL设定此台服务器所要对外的【真实IP】。
INTERFACE设定此台服务器的对外网络网卡接口名称。
INTERNAL设定想将此真实IP转向内部的虚拟IP地址。
ALLINTERFACES如果不想同时套用到其它的网络接口时,请在此设定为no,如果为空白的话,就只会套用到这个界面。
LOCAL 如果这个选项设定为Yes或yes,还有ALLINTERFACES也被设定为Yes或yes的话,那么由EXTERNAL传送至INTERNAL的封包 就会被限制在内部,要开启这个功能的话,核心版本必需要在2.4.19以上,并且要确认开启CONFIG_IP_NF_NAT_LOCAL的功能,
4、masq
这个档案是用来架设一般所谓的NAT服务器,masq设定的内容如下所示:

#INTERFACESUBNETADDRESSPROTOPORT(S)IPSEC
eth0 eth1 206.124.146.176
#LASTLINE--ADDYOURENTRIESABOVETHISLINE--DONOTREMOVE


INTERFACE设定负责对外部网络的接口名称。
SUBNET设定负责对内部网络的接口名称。
ADDRESS设定负责对外部网络的IP地址,这个选项可以不设定。
PROTO在此您可以设定的内容为/etc/protocols的服务内容。
PORT(S)如果在PROTO的部份设定为TCP或是UDP的话,那么在这个选项中就可以设定端口号,或者是服务名称了。
IPSEC设定是否要对这个网络接口的联机进行加密,如果是空白,就是不需要,如果是yes的话,就会进行加密。
范例:

eth0 eth1 206.124.146.177 tcps mtp
eth0 eth1 206.124.146.176


以上的设定内容是代表所有由eth1的tcp协议的smtp封包,都会把IP的标头设定为206.124.146.177,然后由eth0送出去,然后其余的封包都是将封包的标头设定为206.124.146.176,然后由eth0送出去。
5、modules
这个档案会将所有Iptables所需要的模块都加载进去,预设的内容如下所示:

loadmoduleip_tables
loadmoduleiptable_filter
loadmoduleip_conntrack
loadmoduleip_conntrack_ftp
loadmoduleip_conntrack_tftp
loadmoduleip_conntrack_irc
loadmoduleiptable_nat
loadmoduleip_nat_ftp
loadmoduleip_nat_tftp
loadmoduleip_nat_irc


如果您有其它的模块的话,只要加入modules这个档案即可。
6、blacklist
这个档案是设定联机的黑名单,您可以在这个档案中限制某些网络地址的联机动作
ADDRESS/SUBNET PROTOCOL PORT  ADDRESS/SUBNET设定所要限制的网络地址,或是子网络及MAC Address,格式分别为下列三种:网络地址:192.168.1.10 子网络:192.168.1.0/24 MACAddress:~00-A0-C9-15-39-78
PROTOCOL可以设定的内容为/etc/protocols的服务内容,这个字段可以选择不设定。
PORT如果在PROTOCOL的部份设定为TCP或是UDP的话,那么在这个选项中就可以设定端口号,或者是服务名称了,这个字段可以选择不设定。
范例:

192.0.2.126 udp 53


上面这行所表示的是封锁由IP192.0.2.126所请求的DNS查询服务。
二、进阶应用介绍
1、开放服务
前面的政策就是将所有由外而内的服务都给封锁掉了,所以现在要一个一个的打开,在此开放HTTP、SMTP、POP3、SSH、DNS、还有一个port10000的Webmin的服务,那么在rules的设定就会如下所示:

ACTION SOURCE DEST PROTO DEST PORT
ACCEPT net fw tcp http
ACCEPT loc fw tcp http

ACCEPT net fw tcp smtp
ACCEPT loc fw tcp smtp

ACCEPTnetfwtcppop3
ACCEPClocfwtcppop3

ACCEPT net fw tcp ssh
ACCEPT loc fw tcp ssh

ACCEPT net fw tcp dns
ACCEPT loc fw tcp dns
ACCEPT net fw udp dns
ACCEPT loc fw udp dns

ACCEPT net fw tcp10000
ACCEPT loc fw tcp10000


以上所有的服务因为都是在这台防火墙中,所以DEST的字段都是设定为fw这个接口,另外因为分别有对内及对外的接口,所以每一个服务都会设定两次,不过也有另外一种设定的方式,如下所示:
2、实例:阻挡MSN
MSN是1863,而MSN连结的网站地址则是为gateway.messenger.hotmail.com。
先挡掉gateway.messenger.hotmail.com的所有tcp连结,在rules的档案中加入以下的记录:

DROPlocnet:gateway.messenger.hotmail.comtcp-


接着再挡掉连结到任何地址的1863端口,

DROP local tcp1863


这样子就可以挡掉大部份msn连结的服务了。

分享到:
评论

相关推荐

    shorewall防火墙的使用

    shorewall防火墙的使用 提要:相信大家一定很想自己做一个企业级应用得防火墙,看到大家在论坛上常常问到累似得问题,现在我将我自己身边得一个防火墙企业级应用实例共享出来,希望能帮到需要帮助得朋友。

    chef-shorewall:通过 Chef 安装和配置 shorewall

    安装和配置 shorewall 要求 应该在任何地方工作。 属性 岸墙 node['shorewall']['dir'] - 安装 shorewall 的位置(默认为 /etc/shorewall) node['shorewall']['init_file_dir'] - 安装初始化文件的位置(默认为 /...

    shorewall防火墙配置教程.zip

    shorewall防火墙配置教程.zip

    fail2ban-shorewall-0.9.7-1.el7.noarch.rpm

    离线安装包,亲测可用

    homestead-shorewall:Shorewall 配置文件可提高 Forge Droplet 的安全性

    如何使用它 将 ssh 登录到您的 VM 并运行: sudo aptitude install shorewall cd /etc/shorewall sudo git clone https://github.com/rikless/homestead-shorewall.git cd homestead-shorewall sudo mv * ../ && ...

    Shoreline Firewall (Shorewall)-开源

    基于iptables的防火墙,用于运行Linux 2.4或更高版本内核的系统。 高度灵活的配置使防火墙可以在多种防火墙/网关/路由器和VPN环境中使用。

    fail2ban-shorewall-0.9.5-3.el7.noarch.rpm

    离线安装包,亲测可用

    puppet-shorewall:人偶岸壁模块

    岸墙木偶模块此模块管理Shorewall的配置( )要求该模块需要augeas模块,您可以在这里找到: ://gitlab.com/shared-puppet-modules-group/augeas.git 该模块需要concat模块,您可以在这里找到: : 版权版权所有(C)...

    Linux下最好的100个软件

    17. 软件包管理器:Linux系统的软件包管理器包括APT、YUM、DNF和Pacman等,它们使得安装、更新和移除软件变得极其简单。 通过以上分类和介绍,我们可以看到Linux平台提供了丰富的软件选项来满足用户的各种需求。...

    go-sshd_autoban:使用go编写的用于快速和慢速蛮力攻击的ssh autoban

    该脚本可以禁止iptables,shorewall或hosts.deny的攻击者(实际上),并且在快速和缓慢的蛮力攻击中非常有效。 依靠 去 安装 要安装它,请确保已安装golang 1.3或更高版本。 然后从命令提示符处运行以下命令: 去...

    路由器/防火墙 (1).pdf

    4. **Shorewall防火墙的临时文件处理漏洞**:Shorewall 2.0.3及以下版本存在不安全的临时文件和目录创建问题,本地攻击者可以利用此漏洞破坏系统文件或提升权限。为解决这个问题,用户应升级到不受影响的版本,如...

    LINUX FTP服务器设计

    9. **限制带宽**:使用`/etc/shorewall/shorewall.conf`或`/etc/pure-ftpd/conf/LimitBANDWIDTH`来限制FTP用户的上传和下载速度。 10. **故障排查**:当遇到问题时,可以通过`netstat`查看连接状态,`tail`或`less`...

    centos下fail2ban安装与配置详解

    二、简单来介绍一下fail2ban的功能和特性 1、支持大量服务。如sshd,apache,qmail,proftpd,sasl等等2、支持多种动作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(邮件通知)等等。3、...

    CentOS 6.4 x64 KickStart confogiuration file

    CentOS 6.4 x64 KickStart 自動化安裝配置檔, 整合 shorewall & squid

    Proxmox Firewall-开源

    Proxmox防火墙(Proxwall)是基于Shorewall和许多其他开源工具的灵活Linux防火墙。 它旨在在数分钟内安装在商用硬件上。 它可以处理复杂且快速变化的网络环境。

    防火墙的介绍与实现

    自己写的一个介绍关于防火墙的ppt,里面讲讲解了iptables和netfilter的关系,语法以及c代码封装iptables规则的方法与过程。

Global site tag (gtag.js) - Google Analytics