什么是 Firewalld:它是 Centos 或类似系统下默认的防火墙系统,类似于 Ubuntu 的 ufw 系统。
Firewalld 的优点#
使用 Firewalld 添加的出入站规则可以直接在运行环境中启用,不需要重启服务本身。
使用 Firewalld 提供的接口可以为服务,应用,和用户轻松的配置任何规则。
通过分离永久和内存中的规则,可以使用户实时对添加的规则进行评估。任何非永久添加的规则都会在下一次的热加载或服务重启时消失。而任何永久的规则会在重载后得以保留。通过这种方式,用户可以添加一些临时的设置。而如果配置已被评估完毕,并且成功运行,那么这项规则便可以添加至永久的设置中。
Firewalld 下载安装#
下载并安装 firewalld 包:
sudo yum update && sudo yum install firewalld
Firewalld 规则配置#
开放状态获取#
查看区域:获取当前激活的区域,区域在大部分情况默认为 public
firewall-cmd --get-active-zones
列出规则:获取当前区域已配置的规则
firewall-cmd --zone=public --list-all
端口添加和关闭#
开放端口:在 public 区域永久允许 5000 端口的 TCP 流量传输
firewall-cmd --zone=public --add-port=5000/tcp --permanent
firewalld 服务也支持开放一个地址段,比如
--add-port=5000-5500/tcp
即开放从 5000 到 5500 的所有 TCP 端口。
关闭端口:在 public 区域永久关闭 5000 的 TCP 端口
firewall-cmd --zone=public --remove-port=5000/tcp --permanent
服务添加和关闭#
你可以使用防火墙内置的服务,也可以在添加端口时,自定义服务名使用
--service=
选项,查看这个 文档 了解更多。
获取服务:使用 --get-services
获取所有可开放的服务规则。
firewall-cmd --get-services
添加服务:使用 --add-service
添加一个内置的服务。
firewall-cmd --zone=public --add-service=http
启用添加的规则#
热加载:使用 reload 热加载规则
firewall-cmd --reload
冷加载:使用 complete-reload 冷加载规则
firewall-cmd --complete-reload