构筑坚固网络防线:全面掌握 firewalld 常用命令

前言

在当今的数字化时代,网络安全已成为每个系统管理员和网络工程师的重中之重。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 的常用命令,是每个系统管理员和网络工程师必备的技能。这不仅能提升系统的安全性,还能为企业的网络管理带来更高的效率和灵活性。希望本文能为你提供全面的指导,帮助你更好地保护你的系统网络安全。

### 回答1: CentOS 系统防火墙有两种:iptables 和 firewalld。 1. iptables:是 Linux 内核的一部分,是一个防火墙管理工具。使用 iptables 命令管理防火墙规则。 2. firewalld:是一个防火墙管理工具,可以动态管理防火墙规则。使用 firewall-cmd 命令管理防火墙规则。 ### 回答2: CentOS 系统有两种防火墙:iptables 和 firewalld。这两种防火墙都可以用于保护系统免受网络攻击和恶意访问。 iptables 是一种传统的 Linux 防火墙工具,可以通过命令行来配置、管理和监控防火墙规则。以下是一些常用的 iptables 命令: 1. iptables -L:列出当前防火墙规则列表。 2. iptables -F:清空所有防火墙规则。 3. iptables -A INPUT -p tcp --dport 80 -j ACCEPT:允许所有进入端口 80 的 TCP 连接。 4. iptables -A INPUT -p tcp --dport 22 -j DROP:禁止所有进入端口 22 的 TCP 连接。 5. iptables-save > /etc/sysconfig/iptables:保存当前防火墙规则至文件。 firewalld 是 CentOS 7 及更新版本中引入的防火墙管理工具,相比于 iptables,它提供了更加灵活和方便的使用方式。以下是一些常用的 firewalld 命令: 1. systemctl start firewalld:启动 firewalld 服务。 2. firewall-cmd --state:检查 firewalld 是否处于运行状态。 3. firewall-cmd --list-all:显示当前防火墙规则和配置的详细信息。 4. firewall-cmd --zone=public --add-port=80/tcp --permanent:永久性开放 80 端口,使其对外可访问。 5. firewall-cmd --reload:重新加载防火墙规则。 总之,对于 CentOS 系统,在使用防火墙时可以根据具体需求选择合适的工具。如果对于命令行操作更为熟悉或需要更精细的控制,可以使用 iptables;而如果需要更简单的操作和集中管理,可以选择 firewalld
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值