实践环境
CentOS-7-x86_64-DVD-2009
简介
Firewalld是一种简单的、有状态的、基于区域(zone-based)的防火墙。策略和区域用于组织防火墙规则。网络在逻辑上被划分为多个区域,它们之间的流量可以通过策略进行管理。
查看防火墙状态
或者
说明:如果输出显示 Active: inactive (dead)
,则表示未开启防火墙。 如果现实Active: active (running)
则表示开启了防火墙。
或者
开启防火墙
或者
重启防火墙
或者
设置防火墙开机自启
禁用防火墙开机自启
查看预定义区域
区域简介:
区域 | 默认规则 |
block | 拒绝流入的流量,除非与流出的流量相关 |
dmz | 拒绝流入的流量,除非与流出的流量相关;如果流量与ssh服务相关,则允许流量 |
drop | 拒绝流入的流量,除非与流出的流量相关 |
external | 拒绝流入的流量;除非与流出的流量相关;如果流量与ssh服务相关,则允许流量 |
home | 拒绝流入的流量;除非与流出的流量相关;如果流量与ssh,mdns,ipp-client,amba-client,dhcpv6-client服务相关,则允许流量 |
internal | 等同于home区域 |
public | 拒绝流入的流量;除非与流出的流量相关;如果流量与ssh,dhcpv6-client服务相关,则允许流量 |
trusted | 允许所有的数据包流入与流出 |
work | 拒绝流入的流量;除非与流出的流量相关;如果流量与ssh,ipp-client,dhcpv6-client服务相关,则允许流量 |
创建自定义区域
注意:--permanent
选项不能少
查看默认区域
查看网卡关联的区域
注意:一张网卡只能关联一个区域
修改默认区域
例子:
修改网卡关联的区域
方法1:先删除现有关联区域,再添加目标关联区域(因为同一时间,一张网卡只能关联一个区域,所以要先添加再删除)
方法2:
打印当前活动区域及绑定的接口和源
打印当前活动区域以及这些区域中使用的接口和源。活动区域是与接口或源绑定的区域。输出格式为:
例子:
端口访问限制
查看已开放端口
以空格分隔的列表形式列出为区域添加的端口。端口的形式为portid[-portid]/protocol
,它可以是端口和协议对,也可以是具有协议的端口范围。如果忽略--zone
选项配置,将使用默认区域。
添加开放端口
为zone
(区域)添加端口。如果省略了--zone
选项配置,将使用默认区域。此选项可以多次指定。如果提供了--timeout
,则该规则将在指定的超时时间内处于活动状态,超时之后将自动删除。timeval是一个数字(秒)或数字后跟一个字符s(秒)、m(分钟)、h(小时),例如20m或1h。
端口可以是单个端口号,也可以是端口范围portid-portid
。协议可以是tcp
、udp
、sctp
或dccp
。--timeout
选项不能与--permanent
选项组合使用。
取消开放端口
从区域中删除端口。如果省略了--zone
选项配置,将使用默认区域。此选项可以多次指定。--permanent
可用于持久设置选项。这些更改不会立即生效,只有在重新启动/重新加载服务或系统重新启动后才会生效。如果未使用--permanent
,则更改将仅是运行时配置的一部分(所做的变更在重启服务、重新加载服务后失效),下同,不再赘述。
例子
例子:为public区域持久开放 tcp协议端口 15672
说明:
firewall-cmd --reload
重新加载防火墙规则并保留状态信息。当前的持久配置将成为新的运行时配置,也就说执行的所有仅运行时变更在重新加载规则后丢失。类似的,有以下命令firewall-cmd --complete-reload
完全重新加载防火墙,甚至netfilter内核模块。这很可能会终止活动连接,因为状态信息会丢失。此选项仅用于严重的防火墙问题。例如,防火墙规则正确的情况下,无法建立连接的状态信息问题
例子:为public区域持久开放 tcp协议端口范围 1000-2000(包括1000及2000)
例子:为public区域持久取消开放 tcp协议端口 15672
例子:为public区域持久取消开放tcp协议端口范围 1000-2000(包括1000及2000)
IP、网络访问限制
添加开放源
绑定源(source
,IP、网络、MAC、IP集)到区域zone
。如果省略了--zone
选项配置,将使用默认区域。
取消开放源
从区域zone
删除之前添加绑定的源
例子
例子:允许IP 192.168.50.182持久访问为public区域
说明:添加IP白名单后,即使未添加开放端口,针对当前IP,也可以正常访问。
例子:允许子网192.168.50.0/24持久访问为public区域
例子:取消IP 192.168.50.182对public区域的持久访问许可
富语言规则
列出富语言规则
以换行符分隔的列表形式列出为区域添加的富语言规则。如果省略了--zone
选项,将使用默认区域。
添加富语言规则
为区域添加富语言规则'rule'。此选项可以多次指定。如果省略了区域,将使用默认区域。如果提供了--timeout
,则该规则将在指定的超时时间内处于活动状态,超时之后将自动删除。timeval是一个数字(秒)或数字后跟一个字符s(秒)、m(分钟)、h(小时),例如20m或1h。
--timeout
选项不能与--permanent
选项组合使用。
删除富语言规则
从区域中删除富语言规则'rule'。此选项可以多次指定。如果省略了区域,将使用默认区域。
查询富语言规则
返回是否为区域添加了富语言规则'rule'。如果省略了--zone
,将使用默认区域。如果为真,则返回0,否则返回1。
例子
例子:允许 IP 192.168.50.182 持久访问public区域tcp协议端口15672
例子:取消 IP 192.168.50.182 持久访问public区域tcp协议端口15672的许可
例子:禁止 IP 192.168.50.182 持久访问public区域
注意:添加访问限制前,建议先移除之前的访问许可配置,否则可能导致当前规则不起作用。此外,这里的reject
也可以替换为drop
,即直接丢弃来访请求数据包。
例子:取消禁止 IP 192.168.50.182 持久访问public区域限制
例子:查看当前配置的富语言规则
列出为区域启用或添加的所有内容
列出为区域添加或启用的所有内容。如果省略了--zone
选项配置,则将使用默认区域。
例子:
保存当前运行时配置为持久配置
保存活动运行时配置并用它覆盖持久配置。
参考链接
https://firewalld.org/documentation/concepts.html
作者: 授客