<div id="content_views" class="htmledit_views">
<p style="text-align:center;"> <img alt="" height="80" src="https://img-blog.csdnimg.cn/direct/3b7ecfb50593488a85d6a18de8a57bc8.gif" width="640"></p>
目录
前言
在本指南中,我们将通过十个实际案例,详细介绍如何使用 firewalld 管理和配置系统端口。无论您是刚开始学习 Linux 防火墙配置,还是希望深入了解 firewalld 的高级功能,这些案例都将为您提供实用的指导和参考。让我们一起探索如何确保系统安全并优化网络访问吧!
案例1: 开放单个端口
如果需要开放一个特定的端口,例如 8080 端口,可以使用以下命令:
firewall-cmd --permanent --add-port=8080/tcp
案例2: 开放端口范围
要开放一系列端口,例如从 5000 到 5500 端口,可以使用以下命令:
firewall-cmd --permanent --add-port=5000-5500/tcp
案例3: 开放UDP端口
如果需要开放一个 UDP 端口,例如 123 端口,可以使用以下命令:
firewall-cmd --permanent --add-port=123/udp
案例4: 关闭特定端口
如果需要关闭一个已经开放的端口,例如 8080 端口,可以使用以下命令:
firewall-cmd --permanent --remove-port=8080/tcp
案例5: 查询特定端口是否开放
要查询某个端口是否已经开放,例如 80 端口,可以使用以下命令:
firewall-cmd --query-port=80/tcp
案例6: 列出所有开放的端口
如果需要查看系统中所有已经开放的端口,可以使用以下命令:
firewall-cmd --list-ports
案例7: 开放多个端口
可以一次性开放多个端口,例如 3000、4000 和 5000 端口,可以使用以下命令:
firewall-cmd --permanent --add-port={3000/tcp,4000/tcp,5000/tcp}
案例8: 在特定区域开放端口
如果需要在特定区域(例如 public 区域)开放一个端口,例如 8888 端口,可以使用以下命令:
firewall-cmd --zone=public --permanent --add-port=8888/tcp
案例9: 临时开放端口(重启后失效)
如果只需要临时开放一个端口,例如 9999 端口,可以使用以下命令:
firewall-cmd --add-port=9999/tcp
案例10: 将端口转发到另一个IP
如果需要将一个端口的流量转发到另一个 IP 地址,例如将 80 端口的流量转发到 192.168.1.100 的 8080 端口,可以使用以下命令:
firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100
案例11: 在特定区域临时开放端口
如果您希望在特定区域临时开放一个端口,可以使用以下命令。此更改将在系统重启后失效:
firewall-cmd --zone=public --add-port=7070/tcp
案例12: 拒绝所有入站连接
为了提高系统安全性,有时需要拒绝所有入站连接。可以使用以下命令来完成此操作:
firewall-cmd --panic-on
要取消此设置并恢复正常操作,请使用:
firewall-cmd --panic-off
案例13: 添加特定服务的规则
Firewalld 支持通过服务名来添加规则。例如,如果您希望开放 HTTP 服务,可以使用以下命令:
firewall-cmd --permanent --add-service=http
案例14: 移除特定服务的规则
如果您不再需要某个服务的规则,可以将其移除。例如,要移除 HTTP 服务的规则:
firewall-cmd --permanent --remove-service=http
案例15: 设置默认区域
默认区域是当接口未绑定到特定区域时所使用的区域。您可以通过以下命令设置默认区域为 public:
-
firewall-cmd --
set-
default-zone=
public
-
案例16: 列出特定区域中的所有端口
要查看某个区域中所有开放的端口,可以使用以下命令。例如,列出 public 区域中的所有端口:
firewall-cmd --zone=public --list-ports
案例17: 将网络接口分配到特定区域
为了更好地管理网络流量,可以将特定的网络接口分配到指定区域。例如,将 eth0 接口分配到 public 区域:
firewall-cmd --zone=public --change-interface=eth0
案例18: 永久封禁某个IP地址
如果需要永久封禁来自某个 IP 地址的所有流量,可以使用以下命令:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
案例19: 允许特定IP地址的所有流量
相反,如果需要允许来自某个 IP 地址的所有流量,可以使用以下命令:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
案例20: 在特定区域启用端口转发
在某些情况下,您可能需要在特定区域内启用端口转发。例如,在 public 区域启用端口 8080 到 80 的转发:
firewall-cmd --zone=public --permanent --add-forward-port=port=80:proto=tcp:toport=8080
请记住,每次修改防火墙规则后,都需要重新加载防火墙配置以使更改生效:
-
firewall
-cmd
--reload
-
通过以上这些实例,您可以更加灵活地使用 firewalld 管理和配置系统端口,确保系统的安全性和网络的高效访问。
总结
这些例子涵盖了常见的服务器角色和应用场景。在实际操作中,我们还需要根据具体的网络拓扑、安全策略和应用需求来精细调整防火墙规则。例如,可能需要限制特定IP地址或网段的访问,设置端口转发,或者配置更复杂的富规则等。
此外,作为一个经验丰富的Linux运维工程师,我还建议定期审核防火墙规则,移除不再需要的规则,并使用如firewall-cmd --list-all
这样的命令来检查当前的防火墙配置,确保系统安全性和性能的平衡。