365资讯下载安装-365bet是什么公司-365bet平台怎么样

Linux 防火墙解锁规则与 `firewall-cmd` 教程

Linux 防火墙解锁规则与 `firewall-cmd` 教程

在 Linux 系统中,防火墙是保护系统安全的重要工具。它通过设定规则来控制网络流量,阻止未经授权的访问,并防御潜在的攻击。firewalld 是一种流行的动态防火墙管理工具,它基于 iptables,提供了更高效、更灵活的防火墙管理方式。本文将详细介绍如何使用 firewall-cmd 命令来解锁规则和配置防火墙。

一、firewalld 概述

firewalld 是一个前端工具,用于管理防火墙配置,它提供了一种简化的方式来管理 iptables 规则。firewalld 的设计基于区域(zone)和服务(service)的概念,使防火墙配置更加灵活和易于管理。

区域(Zone):表示不同网络的安全级别,允许用户为不同的网络接口分配不同的区域。

服务(Service):预定义的网络服务(如 HTTP、SSH)规则,简化了对常见服务的配置。

二、安装 firewalld

在大多数 Linux 发行版中,firewalld 通常是预安装的。如果没有安装,可以使用包管理工具进行安装:

Debian/Ubuntu 系统:

sudo apt update

sudo apt install firewalld

Red Hat/CentOS 系统:

sudo yum install firewalld

安装完成后,可以启动并启用 firewalld 服务:

sudo systemctl start firewalld

sudo systemctl enable firewalld

三、firewall-cmd 基本用法

firewall-cmd 是 firewalld 的命令行界面工具,用于管理防火墙规则。基本命令格式如下:

firewall-cmd [选项] [命令] [参数]

四、查看防火墙状态

检查防火墙状态

查看 firewalld 是否正在运行:

sudo firewall-cmd --state

如果返回 running,说明 firewalld 正在运行。

查看当前区域和规则

显示默认区域和已配置的规则:

sudo firewall-cmd --get-active-zones

sudo firewall-cmd --list-all

--get-active-zones 命令显示当前激活的区域,--list-all 命令显示当前区域的所有规则。

五、配置防火墙规则

添加和删除服务

firewalld 提供了预定义的服务配置文件,允许通过服务名称来简化规则设置。例如,允许 HTTP 服务:

允许 HTTP 服务:

sudo firewall-cmd --zone=public --add-service=http

删除 HTTP 服务:

sudo firewall-cmd --zone=public --remove-service=http

这些命令会立即生效,但不会持久化到系统重启。要使更改持久化,使用 --permanent 选项:

持久化允许 HTTP 服务:

sudo firewall-cmd --zone=public --add-service=http --permanent

持久化删除 HTTP 服务:

sudo firewall-cmd --zone=public --remove-service=http --permanent

添加和删除端口

除了服务,firewalld 还允许直接通过端口号来配置规则:

允许 TCP 端口 8080:

sudo firewall-cmd --zone=public --add-port=8080/tcp

删除 TCP 端口 8080:

sudo firewall-cmd --zone=public --remove-port=8080/tcp

同样地,要使更改持久化,使用 --permanent 选项:

持久化允许 TCP 端口 8080:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

持久化删除 TCP 端口 8080:

sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent

配置区域

firewalld 支持将网络接口分配到不同的区域,每个区域可以有不同的规则。查看所有区域的详细信息:

sudo firewall-cmd --list-all-zones

将接口分配到区域:

sudo firewall-cmd --zone=home --change-interface=eth0

设置区域的默认策略:

sudo firewall-cmd --set-default-zone=home

配置服务和端口的访问控制

firewalld 允许设置服务和端口的访问控制策略,包括源 IP 地址和协议。比如,只允许某个 IP 地址访问端口:

允许来自特定 IP 的访问:

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port=8080 protocol=tcp accept'

删除特定 IP 的访问:

sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" port port=8080 protocol=tcp accept'

--add-rich-rule 和 --remove-rich-rule 选项用于添加和删除复杂的访问控制规则。

六、查看和验证规则

查看当前配置

查看当前区域的所有规则:

sudo firewall-cmd --list-all

查看所有区域的详细信息:

sudo firewall-cmd --list-all-zones

验证规则

验证防火墙规则是否按预期生效:

sudo firewall-cmd --zone=public --list-all

这将显示 public 区域的所有规则,包括服务、端口和其它设置。

七、管理 firewalld 服务

重新加载配置

在修改了防火墙配置后,使用以下命令重新加载配置使更改生效:

sudo firewall-cmd --reload

禁用和启用防火墙

禁用防火墙:

sudo systemctl stop firewalld

启用防火墙:

sudo systemctl start firewalld

禁用防火墙开机启动:

sudo systemctl disable firewalld

启用防火墙开机启动:

sudo systemctl enable firewalld

八、总结

firewalld 是一个功能强大的防火墙管理工具,通过 firewall-cmd 命令,可以灵活地配置防火墙规则,管理网络流量,确保系统安全。掌握 firewall-cmd 的基本用法和高级功能,可以帮助用户更有效地保护系统免受未经授权的访问,并应对各种网络安全挑战。通过合理配置防火墙规则,可以确保系统在提供服务的同时,保持高度的安全性和稳定性。

相关推荐