Rhel7firewalld防火墙规则

在Redhat Enterprise Linux7中已经默认使用 firewalld 作为防火墙,其使用方式已经变化。 基于 iptables 的防火墙被默认不启动,但仍然可以继续使用。 RHEL7 中有几种防火墙共存:firewalld、iptables、ebtables 等,默认使用 firewalld 作为防 火墙,管理工具是 firewall-cmd。RHEL7 的内核版本是 3.10,在此版本的内核里防火墙的包 过滤机制是 firewalld,使用 firewalld 来管理 netfilter,不过底层调用的命令仍然是 iptables 等。因为这几种 daemon 是冲突的,所以建议禁用其他几种服务

RHEL7 虽然有 iptables 但是不建议使用了,使用新的 firewalld 服务。

1)查看firewalld软件包是否安装

2)Firewalld 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的防火墙管理 工具。拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规 则的接口。以前的 system-config-firewall 防火墙模型是静态的,每次修改都要求防火墙完全 重启。这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等。相反, firewall daemon 动态管理防火墙,不需要重启整个防火墙便可应用更改。因而也就没有必 要重载所有内核防火墙模块了

3)网络区域定义了网络连接的可信等级。

丢弃区域(Drop Zone):如果使用丢弃区域,任何进入的数据包将被丢弃。这个类似与我
们之前使用 iptables -j drop。使用丢弃规则意味着将不存在响应。
阻塞区域(Block Zone):阻塞区域会拒绝进入的网络连接,返回 icmp-host-prohibited,只
有服务器已经建立的连接会被通过即只允许由该系统初始化的网络连接。
公共区域(Public Zone):只接受那些被选中的连接,默认只允许 ssh 和 dhcpv6-client。这
个 zone 是缺省 zone
外部区域(External Zone):这个区域相当于路由器的启用伪装(masquerading)选项。只
有指定的连接会被接受,即 ssh,而其它的连接将被丢弃或者不被接受。
隔离区域(DMZ Zone):如果想要只允许给部分服务能被外部访问,可以在 DMZ 区域中定
义。它也拥有只通过被选中连接的特性,即 ssh。
工作区域(Work Zone):在这个区域,我们只能定义内部网络。比如私有网络通信才被允
许,只允许 ssh,ipp-client 和 dhcpv6-client。
家庭区域(Home Zone):这个区域专门用于家庭环境。它同样只允许被选中的连接,即 ssh,
ipp-client,mdns,samba-client 和 dhcpv6-client。
内部区域(Internal Zone):这个区域和工作区域(Work Zone)类似,只有通过被选中的连
接,和 home 区域一样。
信任区域(Trusted Zone):信任区域允许所有网络通信通过。记住:因为 trusted 是最被信
任的,即使没有设置任何的服务,那么也是被允许的,因为 trusted 是允许所有连接的

1)获取firewalld状态

2)在不改变状态条件下加载防火墙;

3)获取所支持区域的列表

4)获取所有支持的服务

5)列出默认有效的服务也可以进入下面的目录查看

cd /usr/lib/firewalld/services

6)想要创建属于自己的服务,需要在下面的目录自定义它。例如我想创建一个yankai的服务端口号为1314. 首先我们我们任选一个服务复制过来改名为yankai.xml

7)然后我们打开创建的yankai.xml 修改以下内容 wq保存退出

8)保存退出后我们加载firewalld防火墙,查看是否有yankai的服务

1)获取所有支持icmp的类型

 

2)列出全部启用的区域的特性(即查询当前防火墙策略) 

 

3)输出区域全部启用的特性。如果省略区域,将显示默认区域的信息。 firewall-cmd [--zone=] --list-all 

4)查看默认区域

5)设置默认区域 firewall-cmd --set-default-zone=区域名 例如我们把drop设置为默认区域

6)列举区域中启用的服务 例如:查看home区域启用的服务

7)启用应急模式,由于临时问题,在这里我就不给大家演示了。 

方法:打开两台linux主机 例如:192.168.1.100去ping192.168.1.110 这时候是可以ping通的 当你在192.168.1.110主机上输入启用应急模式firewall-cmd --panic-on   1.100的主机就会ping不通1.110因为启用了应急模式。怎么取消应急模式呢? firewall-cmd --panic-off

1)启用区域中的一种服务即给某个区域开启某个服务 这里以httpd服务为例,在这里我没有关闭防火墙但是启用了httpd服务在客户机上访问apache网页是出不来的因为防火墙是运行状态。

firewall-cmd [--zone=区域] --add-service=服务 [--timeout=秒数] 

2)我们把httpd服务添加到drop区域。添加成功后再次访问apache测试页

3)我们这时候可以看到apache测试页已经访问成功

 

4)禁用区域中的某种服务即关闭某个服务 firewall-cmd [--zone=区域] --remove-service=服务  例:我们禁用drop区域下的httpd服务

这时候再次访问apache测试页就会失败。

5)启用区域端口和协议组合 firewall-cmd [--zone=区域] --add-port=portid[-portid]/protocol [--timeout=seconds] 此操作将启用端口和协议的组合。端口可以是一个单独的端口或者是一个端口范围 - 。 协议可以是 tcp 或 udp 这里就以tomcat TCP/8080为例: 首先需要安装tomcat这里我就不说安装步骤了,安装成功后查询8080端口是否起来

以端口的方式添加到区域之后,我们访问tomcat测试页。

6)禁用端口和协议组合 firewall-cmd [--zone=区域] --remove-port=portid[-portid]/protocol 

禁用之后我们在访问tomcat页面的时候就访问不到了 这里我就不在演示了同上面的httpd服务 只不过是用了端口的方式。

7)端口转发。例如:

端口转发。desktop访问server的5423端口,将访问server的80端口。 Server 上的操作:(192.168.106.129 是 desktop 的 IP 地址)

配置防火墙在 public 区域打开 http 协议,并保存,以致重启有效 firewall-cmd --permanent --zone=public --add-service=http 

配置端口转发,讲httpd 80端口转发1314

重新加载firewalld防火墙

配置完成后我们直接去用转发的1314端口访问httpd

用1314端口访问成功代端口转发配置成功!    希望对您有所帮助~