第十四章 Firewall防火墙(一)

第十四章 Firewall防火墙

14.1 Firewall防火墙简介

Firewall防火墙是在RHEL7.0开始加入到系统中的,是系统安装后默认使用的防火墙工具。它是基于iptables工作的,可以说firewall就是iptables的一个外壳。我们操作firewall时,实质上是由firewall生成了iptables命令,给iptables执行。

由于在局域网通信时,路由器都是使用的企业级路由,几乎不会使用主机做路由器开启iptables保护内网,所以,iptables的nat代理功能较为少用,服务器上启用防火墙更多的是为了保护自己,即审核访问自己或自己发出去的数据包。Firewall防火墙最主要的功能就是针对本机做保护的。

14.1 Firewall原理

Firewall采用区域式管理机制,共有九大区域,通信时以网卡所在的区域为生效区域,审核规则。

Firewall的九大区域功能如下:

public ---公共区域,默认有效区域,可设定规则

trusted ---信任区域,允许任何通信

drop ---丢弃区域,拒绝任何通信

external ---nat区域,防火墙作为nat代理服务器使用

dmz ---非军事区域,该区域内的主机,服务端口自动映射,即DNAT

work ---工作区域

home ---家庭区域

internal ---内部区域

block ---类似于drop,拒绝所有外部通信。

其中,前五个区域是最常用的区域,work、home、internal可视为针对不同环境制定的不同规则,比如,我们拿着笔记本电脑,到单位上可以启用work区域生效;拿回家后可以启用home生效。pulic区域为默认区域,即安装完linux系统后,firewall默认使用public作为生效区域,所有网卡都工作在public区域内。

这里,再次强调一下:若没有特殊设定,网卡所在的区域为生效区域,经过该网卡的所有数据包都要审核区域内的规则。

14.2 Firewall配置

本章我们仍使用上一章的实验拓扑图。左边外网卡是ens33,内网卡是ens34。

14.2.1 默认区域配置

首先,来查一下当前firewall的默认区域是哪一个:

firewall-cmd --get-default-zone ---查看当前的默认生效区域

那么默认区域中的规则有哪些呢?查看命令如下:

firewall-cmd --list-all ---查看默认区域的规则

图中可见到,默认区域是public,它有两块网卡:ens33、ens34。下面显示的是本区域中的规则,表示允许客户访问的本机服务、端口等设置,可见基本都是空的。

要查看所有九大区域中的规则,可使用如下命令:

firewall-cmd --list-all-zones ---查看所有区域的规则

我们现在在Linux上部署一个web网站,使用客户机访问,可发现是无法访问的,因为访问的网卡在public区域中,而public区域允许访问的services中并没有http服务,但是使用客户端连接服务器的ssh服务是可以的,这是因为services中有ssh服务,即允许客户访问本机的ssh。

若要更改firewall默认生效的区域,可以使用下面命令:

firewall-cmd --set-default-zone=trusted ---更改默认区域为信任区域

firewall-cmd --get-default-zone

firewall-cmd --list-all

再次查看可见默认区域已更改,并且两块网卡也都转到trusted中了。

这时我们再次从客户机访问服务器的web网站,可发现已经通了。说明trusted区域允许所有通信。

14.2.2 网卡所在区域配置

我们先把默认区域恢复到public中:

firewall-cmd --set-default-zone=public

然后我们来配置一下网卡的所在区域:

firewall-cmd --change-interface=ens33 --zone=trusted

firewall-cmd --list-all --zone=trusted ---指定仅查看trusted区域

这样,可见到我们把网卡ens33转入到trusted区域了。然后可以在主机A上访问http://202.0.0.2,即Linux上的web服务,会发现访问成功,因为主机A访问时通信的是ens33网卡,走trusted区域。但是在主机B上访问http://192.168.10.1会发现打不开页面,因为通信的是ens34网卡,走的是public区域。

firewall-cmd --remove-interface=ens33 --zone=trusted

注:从区域中删除网卡,网卡将被放空,不属于任何区域

firewall-cmd --list-all-zones

查看所有区域,会找不到ens33。

firewall-cmd --add-interface=ens33 --zone=public

注:把网卡加入区域。

两个命令的区别是:change可以更改任何网卡(在或不在某个区域都可以);add只能把放空网卡加入到区域。

好了,为了后面的实验。我们先把网卡转回public:

firewall-cmd --change-interface=ens33 --zone=public

原文发布于微信公众号 - 教主小筑(gh_e0879483602d)

原文发表时间:2019-06-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券