前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第十四章 Firewall防火墙(一)

第十四章 Firewall防火墙(一)

作者头像
晓天
发布2019-07-04 14:36:07
6320
发布2019-07-04 14:36:07
举报

第十四章 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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 教主小筑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档