前言
在当今的数字化时代,网络安全已成为每个系统管理员和网络工程师的重中之重。firewalld
作为 Linux 系统中的防火墙管理工具,以其动态配置和高度灵活性,成为保护系统的重要利器。在这篇文章中,我们将深入解析 firewalld
的常用命令,帮助你全面掌控网络安全。
一、初步了解 firewalld
firewalld
是一个动态防火墙管理工具,旨在为 Linux 系统提供更灵活和高效的网络安全解决方案。它通过使用 zones(区域)来划分网络资源,并根据需求对流量进行实时控制。我们首先需要了解如何管理 firewalld
服务。
启动与管理 firewalld 服务
要确保 firewalld
正常运行,首先需要掌握启动、重启和停止服务的基本命令:
sudo systemctl start firewalld
sudo systemctl restart firewalld
sudo systemctl stop firewalld
sudo systemctl status firewalld
同时,为了确保系统重启后 firewalld
依然运行,我们可以设置其开机启动:
sudo systemctl enable firewalld
sudo systemctl disable firewalld
检查 firewalld
当前状态的命令如下:
sudo firewall-cmd --state
二、管理区域与规则
firewalld
的核心概念之一是区域(zones)。区域定义了不同网络环境下的安全策略,比如家庭、工作和公共网络。每个区域可以有不同的规则和服务设置。
查看与设置默认区域
了解当前系统的默认区域:
sudo firewall-cmd --get-default-zone
设置新的默认区域:
sudo firewall-cmd --set-default-zone=<zone>
查看所有可用区域:
sudo firewall-cmd --get-zones
管理区域中的服务和端口
在特定区域中添加或移除服务,可以增强或减少网络访问权限:
sudo firewall-cmd --zone=<zone> --add-service=<service> --permanent
sudo firewall-cmd --zone=<zone> --remove-service=<service> --permanent
同样,管理端口的开放与关闭也非常重要:
sudo firewall-cmd --zone=<zone> --add-port=<port>/tcp --permanent
sudo firewall-cmd --zone=<zone> --remove-port=<port>/tcp --permanent
三、开放与关闭指定端口或端口段
firewalld
允许用户开放或关闭指定的端口或端口段,以控制进出网络的流量。
开放指定端口
要开放指定端口,例如 8080 端口,可以使用以下命令:
# 永久开放端口
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 临时开放端口(重启后失效)
sudo firewall-cmd --zone=public --add-port=8080/tcp
关闭指定端口
要关闭指定端口,例如 8080 端口,可以使用以下命令:
# 永久关闭端口
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
# 临时关闭端口(重启后失效)
sudo firewall-cmd --zone=public --remove-port=8080/tcp
开放端口段
要开放一段端口,例如从 3000 到 4000 的端口段,可以使用以下命令:
# 永久开放端口段
sudo firewall-cmd --zone=public --add-port=3000-4000/tcp --permanent
# 临时开放端口段(重启后失效)
sudo firewall-cmd --zone=public --add-port=3000-4000/tcp
关闭端口段
要关闭一段端口,例如从 3000 到 4000 的端口段,可以使用以下命令:
# 永久关闭端口段
sudo firewall-cmd --zone=public --remove-port=3000-4000/tcp --permanent
# 临时关闭端口段(重启后失效)
sudo firewall-cmd --zone=public --remove-port=3000-4000/tcp
四、IP 访问控制
firewalld
允许根据 IP 地址或 IP 段来限制或允许访问,以进一步提升安全性。
允许特定 IP 访问
要允许特定 IP 地址访问,例如 192.168.1.100,可以使用以下命令:
sudo firewall-cmd --zone=public --add-source=192.168.1.100 --permanent
允许特定 IP 段访问
要允许特定 IP 段访问,例如 192.168.1.0/24,可以使用以下命令:
sudo firewall-cmd --zone=public --add-source=192.168.1.0/24 --permanent
限制特定 IP 访问
要限制特定 IP 地址访问,可以先添加一个拒绝规则,例如:
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' --permanent
限制特定 IP 段访问
要限制特定 IP 段访问,可以使用类似的方法,例如:
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" reject' --permanent
移除 IP 访问限制
要移除之前添加的 IP 访问限制,可以使用以下命令:
sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' --permanent
移除 IP 段访问限制
同样,移除 IP 段访问限制的方法是:
sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" reject' --permanent
五、配置伪装(Masquerading)
伪装(Masquerading)是网络地址转换(NAT)的一种形式,用于隐藏内部网络的真实 IP 地址。通常用于共享一个公共 IP 地址来访问外部网络。
启用伪装
要在特定区域启用伪装,例如在 public 区域,可以使用以下命令:
sudo firewall-cmd --zone=public --add-masquerade --permanent
禁用伪装
要禁用伪装,可以使用以下命令:
sudo firewall-cmd --zone=public --remove-masquerade --permanent
六、配置与重载
在对 firewalld
进行配置修改后,确保设置生效的命令是:
sudo firewall-cmd --reload
若需检查配置是否正确:
sudo firewall-cmd --check-config
其他有用命令
查看当前激活的区域和接口所属区域,可以帮助我们更好地理解系统的网络配置:
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --get-zone-of-interface=<interface>
将接口分配到特定区域:
sudo firewall-cmd --zone=<zone> --change-interface=<interface>
总结
掌握 firewalld
的常用命令,是每个系统管理员和网络工程师必备的技能。这不仅能提升系统的安全性,还能为企业的网络管理带来更高的效率和灵活性。希望本文能为你提供全面的指导,帮助你更好地保护你的系统网络安全。