Firewalld 字符管理工具,命令分享
Posted 一文梨梨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firewalld 字符管理工具,命令分享相关的知识,希望对你有一定的参考价值。
Firewalld 防火墙维护命令
在安装 CentOS7 系统时,会自动安装 firewalld 和图形化工具 firewall-config。执行
以下命令可以启动 firewalld 并设置为开机自启动状态。
systemctl start firewalld //启动 firewalld
systemctl enable firewalld //设置 firewalld 为开机自启动
Firewalld防火墙状态查询命令
如果 firewalld 正在运行,通过 systemctl status firewalld 或 firewall-cmd 命令
可以查看其运行状态。
systemctl status firewalld
firewall-cmd --state
如果想要禁用 firewalld,执行以下命令即可实现。
systemctl stop firewalld //停止 firewalld
systemctl disable firewalld //设置 firewalld 开机不自启动
Firewalld 防火墙重载配置命令
如果修改了防火墙的配置,通过 firewall-cmd –reload 命令可以使其生效。
firewall-cmd --reload
当防火墙出现问题时,通过 firewall-cmd --complete-reload 命令可以完全重载防火
墙,但是状态信息将会丢失。
firewall-cmd --complete-reload
还可以通过重启服务的方式重载防火墙的配置。
systemctl restart firewalld
查询预定义信息命令
firewall-cmd 预定义信息主要包括三种:可用的区域、可用的服务以及可用的 ICMP 阻
塞类型,具体的查看命令如下所示。
firewall-cmd --get-zones //显示预定义的区域
firewall-cmd --get-service //显示预定义的服务
firewall-cmd --get-icmptypes //显示预定义的 ICMP 类型
Firewalld 区域操作命令
使用 firewall-cmd 命令可以实现获取和管理区域,为指定区域绑定网络接口等功能。
(1)显示当前系统中的默认区域。
firewall-cmd --get-default-zone
(2)显示默认区域的所有规则。
firewall-cmd --list-all
(3)显示网络接口 ens33 对应区域。
firewall-cmd --get-zone-of-interface=ens33
(4)将网络接口 ens33 对应区域更改为 internal 区域。
firewall-cmd --zone=internal --change-interface=ens33
firewall-cmd --zone=internal --list-interfaces
firewall-cmd --get-zone-of-interface=ens33
(5)显示所有激活区域。
firewall-cmd --get-active-zones
Firewalld 服务操作命令
为 了 方 便 管 理 , firewalld 预 先 定 义 了 很 多 服 务 , 存 放 在/usr/lib/firewalld/services/ 目录中,服务通过单个的 XML 配置文件来指定。这些配置文件则按以下格式命名:service-name.xml,每个文件对应一项具体的网络服务,如 ssh 服务等。与之对应的配置文件中记录了各项服务所使用的 tcp/udp 端口。在最新版本的firewalld 中默认已经定义了 70 多种服务供我们使用,对于每个网络区域,均可以配置允许访问的服务。当默认提供的服务不适用或者需要自定义某项服务的端口时,我们需要将service 配置文件放置在 /etc/firewalld/services/ 目录中。service 配置具有以下优点。
(1)通过服务名字来管理规则更加人性化。
(2)通过服务来组织端口分组的模式更加高效,如果一个服务使用了若干个网络端口,则服务的
配置文件就相当于提供了到这些端口的规则管理的批量操作快捷方式。
(1)为默认区域设置允许访问的服务。
firewall-cmd --list-services
firewall-cmd --add-service=http
firewall-cmd --add-service=https
firewall-cmd --list-services
(2)为 internal 区域设置允许访问的服务。
firewall-cmd --zone=internal --add-service=mysql
firewall-cmd --zone=internal --remove-service=samba-client
firewall-cmd --zone=internal --list-services
Firewalld 端口操作命令
在进行服务配置时,预定义的网络服务可以使用服务名配置,服务所涉及的端口就会自动打开。但是,对于非预定义的服务只能手动为指定的区域添加端口。例如,执行以下操作即可实现在 internal 区域打开 443/TCP 端口。
firewall-cmd --zone=internal --add-port=443/tcp
若想实现在 internal 区域禁止 443/TCP 端口访问,可执行以下命令。
firewall-cmd --zone=internal --remove-port=443/tcp
Firewalld 阻塞 ICMP 操作命令
可以通过防火墙的 ICMP 阻塞命令,阻止特定类型的 ICMP 数据在某个区域中转发。ICMP有多种消息类型,比较典型的是 echo-request 和 echo-reply 详细,分别对应 icmp 的发起使用如下命令,显示 work 区域内阻塞的所有 ICMP 类型。
firewall-cmd --zone=work --list-icmp-blocks
执行以下命令,可以为 work 区域设置阻塞 echo-reply 类型的 ICMP。
firewall-cmd --zone=work --add-icmp-block=echo-reply
使用如下命令,删除 work 区域已阻塞的 echo-reply 类型的 ICMP。
firewall-cmd --zone=work --remove-icmp-block=echo-reply
执行以下命令,可以查询 work 区域的 echo-request 类型的 ICMP 是否阻塞。
firewall-cmd --zone=work --query-icmp-block=echo-request
以上是关于Firewalld 字符管理工具,命令分享的主要内容,如果未能解决你的问题,请参考以下文章