Linux firewalld 的用法

2024-05-08 17:18:50 浏览数 (2)

大乌龙事件之防火墙作祟: 在我的初始化环境中 selinux、iptables、firewalld 是关闭的, 莫名的firewalld 是没有关闭的这是我在安装完docker后一段时间后部署jenkins才发现的,当时在排错折腾了一下午,从防火墙,负载均衡,jenkins本身服务,docker没想到firewalld开启了,我说服务器内正常运行一直没找到是什么给拦截了. 没办法关了 firewalld docker就的流量就嘎了,所以重新学习一下 Firewalld.

firewalld 是 Linux 中的一个动态防火墙管理工具,它允许配置和管理 iptables 规则。以下是一些常见的 firewalld 命令和用法:

检查 firewalld 状态:

代码语言:javascript复制
sudo systemctl status firewalld

启动 firewalld 服务:

代码语言:javascript复制
sudo systemctl start firewalld

停止 firewalld 服务:

代码语言:javascript复制
sudo systemctl stop firewalld

重新启动 firewalld 服务:

代码语言:javascript复制
sudo systemctl restart firewalld

设置 firewalld 开机启动:

代码语言:javascript复制
sudo systemctl enable firewalld

禁用 firewalld 开机启动:

代码语言:javascript复制
sudo systemctl disable firewalld

查看所有可用的服务:

代码语言:javascript复制
sudo firewall-cmd --get-services

查看当前活动的区域:

代码语言:javascript复制
sudo firewall-cmd --get-active-zones

查看指定区域的详细信息:

代码语言:javascript复制
sudo firewall-cmd --zone=public --list-all

开放端口:

代码语言:javascript复制
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

允许某个服务:

代码语言:javascript复制
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload

如果想要移除 HTTP 服务,命令可能如下:

代码语言:javascript复制
sudo firewall-cmd --remove-service=http --permanent
sudo firewall-cmd --reload

这样,HTTP 服务将从 firewalld 的配置中移除。确保在修改防火墙规则之前了解其影响,并确保不会因此而失去对系统的访问。

封锁指定 IP 地址:

代码语言:javascript复制
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.2" reject' --permanent
sudo firewall-cmd --reload

移除端口或服务:

代码语言:javascript复制
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
sudo firewall-cmd --reload

查看 firewalld 版本:

代码语言:javascript复制
sudo firewall-cmd --version

这些命令提供了一些基本的 firewalld 操作。请根据的需求调整区域、端口和服务等设置。务必小心地配置防火墙规则,以确保系统的安全性。

--zone 选项用于指定在 firewalld 防火墙中应用规则的区域。每个区域代表一个网络区域或一个网络接口,并定义了一组预定义的规则集。不同的区域可以应用不同的防火墙规则,允许根据网络环境的不同设置不同的安全策略。

以下是一些常见的预定义区域:

  1. public: 适用于公共网络,比如互联网。
  2. internal: 适用于内部网络,通常是信任的本地网络。
  3. external: 适用于外部网络,通常是不受信任的外部网络。
  4. dmz: 适用于 DMZ(隔离区)网络,通常用于放置公共可访问的服务。

可以在规则中使用 --zone 选项来指定要应用规则的区域。例如,要在 public 区域中打开端口 80,可以执行以下命令:

代码语言:javascript复制
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

这样,端口 80 将在 public 区域中永久地打开。请注意,添加 --permanent 选项表示这是永久性修改,然后需要通过 --reload 命令重新加载防火墙规则,以使更改生效。

0 人点赞