大乌龙事件之防火墙作祟:
在我的初始化环境中 selinux、iptables、firewalld 是关闭的, 莫名的firewalld 是没有关闭的这是我在安装完docker后一段时间后部署jenkins才发现的,当时在排错折腾了一下午,从防火墙,负载均衡,jenkins本身服务,docker没想到firewalld开启了,我说服务器内正常运行一直没找到是什么给拦截了. 没办法关了 firewalld docker就的流量就嘎了,所以重新学习一下 Firewalld.
firewalld
是 Linux 中的一个动态防火墙管理工具,它允许配置和管理 iptables 规则。以下是一些常见的 firewalld
命令和用法:
-
检查
firewalld
状态:sudo systemctl status firewalld
-
启动
firewalld
服务:sudo systemctl start firewalld
-
停止
firewalld
服务:sudo systemctl stop firewalld
-
重新启动
firewalld
服务:sudo systemctl restart firewalld
-
设置
firewalld
开机启动:sudo systemctl enable firewalld
-
禁用
firewalld
开机启动:sudo systemctl disable firewalld
-
查看所有可用的服务:
sudo firewall-cmd --get-services
-
查看当前活动的区域:
sudo firewall-cmd --get-active-zones
-
查看指定区域的详细信息:
sudo firewall-cmd --zone=public --list-all
-
开放端口:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --reload
-
允许某个服务:
sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --reload
-
如果想要移除 HTTP 服务,命令可能如下:
sudo firewall-cmd --remove-service=http --permanent sudo firewall-cmd --reload
这样,HTTP 服务将从
firewalld
的配置中移除。确保在修改防火墙规则之前了解其影响,并确保不会因此而失去对系统的访问。 -
封锁指定 IP 地址:
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.2" reject' --permanent sudo firewall-cmd --reload
-
移除端口或服务:
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent sudo firewall-cmd --reload
-
查看
firewalld
版本:sudo firewall-cmd --version
这些命令提供了一些基本的 firewalld
操作。请根据的需求调整区域、端口和服务等设置。务必小心地配置防火墙规则,以确保系统的安全性。
--zone
选项用于指定在 firewalld
防火墙中应用规则的区域。每个区域代表一个网络区域或一个网络接口,并定义了一组预定义的规则集。不同的区域可以应用不同的防火墙规则,允许根据网络环境的不同设置不同的安全策略。
以下是一些常见的预定义区域:
- public: 适用于公共网络,比如互联网。
- internal: 适用于内部网络,通常是信任的本地网络。
- external: 适用于外部网络,通常是不受信任的外部网络。
- dmz: 适用于 DMZ(隔离区)网络,通常用于放置公共可访问的服务。
可以在规则中使用 --zone
选项来指定要应用规则的区域。例如,要在 public
区域中打开端口 80,可以执行以下命令:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
这样,端口 80 将在 public
区域中永久地打开。请注意,添加 --permanent
选项表示这是永久性修改,然后需要通过 --reload
命令重新加载防火墙规则,以使更改生效。