RHEL7中防火墙firewalld的配置

转自http://lduan.blog.51cto.com/5428084/1547139web


在RHEL7里有几种防火墙共存:firewalld、iptables、ebtables,默认使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等。由于这几个daemon是冲突的建议禁用其余的几种服务: 浏览器

    systemctl mask iptables(ip6tables,ebtables)

bubuko.com,布布扣 

    在firewalld中使用了区域(zone)的概念,默认已经定义了几个zone:安全

bubuko.com,布布扣 

    zone的解释:网络

bubuko.com,布布扣 

    数据包要进入到内核必需要经过这些zone中的一个,而不一样的zone里定义的规则不同(即信任度不同,过滤的强度也不同)。能够根据网卡所链接的网络的安全性来判断,这张网卡的流量到底使用哪一个zone,好比上图来自eth0的流量所有使用zone1的过滤规则,eth1的流量使用zone3。一张网卡同时只能绑定到一个zone。你们就能够把这些zone想象成进入火车站(地铁)的安检,不一样的入口检测的严格度不同。tcp

    默认的几个zone(由firewalld 提供的区域按照从不信任到信任的顺序排序):ide

dropspa

    任何流入网络的包都被丢弃,不做出任何响应,只容许流出的网络链接。即便开放了某些服务(好比http),这些服务的数据也是不容许经过的。3d

blockorm

    任何进入的网络链接都被拒绝,并返回 IPv4 的 icmp-host-prohibited 报文或者 IPv6 的 icmp6-adm-prohibited 报文。只容许由该系统初始化的网络链接。blog

public(默认)

    用以能够公开的部分。你认为网络中其余的计算机不可信而且可能伤害你的计算机,只容许选中的服务经过。

external

    用在路由器等启用假装的外部网络。你认为网络中其余的计算机不可信而且可能伤害你的计算机,只容许选中的服务经过。

dmz

    用以容许隔离区(dmz)中的电脑有限地被外界网络访问,只容许选中的服务经过。

work

    用在工做网络。你信任网络中的大多数计算机不会影响你的计算机,只容许选中的服务经过。

home

    用在家庭网络。你信任网络中的大多数计算机不会影响你的计算机,只容许选中的服务经过。

internal

    用在内部网络。你信任网络中的大多数计算机不会影响你的计算机,只容许选中的服务经过。

trusted

容许全部网络链接,即便没有开听任何服务,那么使用此zone的流量照样经过(一路绿灯)。

查看当前的默认的区域:

bubuko.com,布布扣 

设置默认的区域:

bubuko.com,布布扣 

 

给某个区域开启某个服务

bubuko.com,布布扣 

 

 

关闭某个服务:

bubuko.com,布布扣 

若是没有指定zone的话,则是在默认的zone上操做。

 

查看某个zone上是否容许某个服务:

bubuko.com,布布扣 

在firewalld里添加一个端口,这样就能够访问了:

bubuko.com,布布扣 

 

查看开启了哪些端口:

bubuko.com,布布扣 

 

查看某个接口是属于哪一个zone的:

bubuko.com,布布扣 

把接口加入到某个zone:

bubuko.com,布布扣 

 

查看某个zone里开启了哪些服务、端口、接口:

bubuko.com,布布扣 

如今默认的zone是trusted,虽然如今已经不容许http访问了,可是还能访问,为何?

记住:由于trusted是最被信任的,即便没有设置任何的服务,那么也是被容许的,由于trusted是容许全部链接的。

有多个不一样的zone,每一个zone定义的规则是不同的,由于全部的数据都是从网卡进入,到底使用哪一个zone的规则,关键就在于这个网卡是在哪一个区域的,好比下面的例子:

bubuko.com,布布扣 

如今eth0是在public这个zone里的,此时public是容许http的:

bubuko.com,布布扣 

可是默认的zone是external,且不容许http访问:

bubuko.com,布布扣 

可是浏览器却能访问,证实了上面的说法。

若是改变eth0所在的zone,好比改到external:

bubuko.com,布布扣 

则访问不了:

bubuko.com,布布扣 

下面验证下源地址的意思:

网卡的source地址,也能决定能够使用哪一个zone,新添加了一张网卡,此网卡开始默认不属于任何的zone:

bubuko.com,布布扣 

此时经过访问eth1来访问web是访问不了的:

bubuko.com,布布扣 

下面咱们给public设置source,来自源192.168.30.0/24网段的都走public区:

bubuko.com,布布扣 

bubuko.com,布布扣 

经过验证,如今访问是成功的。

若是在external里面同时也加入192.168.30.0/24这个源呢?

bubuko.com,布布扣 

显示为冲突,即一个源只能属于一个zone,不能同时属于多个zone。

 

以上是对tcp协议作的实验,下面对ICMP作一些演示:

首先获取firewalld所支持的ICMP类型:

bubuko.com,布布扣 

记住:默认状况下是容许全部类型的ICMP经过。

bubuko.com,布布扣 

下面阻断public的request的包:

bubuko.com,布布扣 

这样凡是进来的是echo-request类型的包都会被拒绝,由于public是和eth0绑定在一块的,因此ping 192.168.2.130的时候是不通的:

 

bubuko.com,布布扣 

删除此规则:

bubuko.com,布布扣 

-端口的转发

bubuko.com,布布扣 

意思是凡是来从external进来的22端口的数据包所有转发到192.168.30.254

bubuko.com,布布扣 

验证:

bubuko.com,布布扣 

 

更详细的写法,能够指定目标端口的:

bubuko.com,布布扣 

bubuko.com,布布扣 

查询:

bubuko.com,布布扣 

删除:

bubuko.com,布布扣

相关文章
相关标签/搜索