firewalld 防火墙操作指南:从安装到高级配置
firewalld 防火墙操作指南:从安装到高级配置
firewalld 是一个功能强大的防火墙,广泛应用于 Linux 系统,它提供了一个灵活的框架来控制网络访问并保护您的系统免受安全威胁。本文将深入介绍 firewalld 防火墙的使用方法,从安装到高级配置,帮助您掌握它的核心功能。
1. 基本操作
firewalld 防火墙的基本操作包括安装、启动、停止、重启以及查看状态等。
- 安装/卸载 firewalld 防火墙
# 安装 firewalld
sudo yum install firewalld
# 卸载 firewalld
sudo yum remove firewalld
- 启动/停止/重启 firewalld 服务
# 启动 firewalld
sudo systemctl start firewalld
# 停止 firewalld
sudo systemctl stop firewalld
# 重启 firewalld
sudo systemctl restart firewalld
- 查看 firewalld 状态
# 查看 firewalld 状态
sudo systemctl status firewalld
2. 防火墙规则配置
firewalld 使用规则来控制网络流量。您可以使用以下命令添加、删除、开放或关闭端口,以及允许或禁止访问等操作。
- 添加/移除规则
# 添加规则
sudo firewall-cmd --permanent --add-rich-rule='rule family='ipv4' source address='192.168.1.100' port protocol='tcp' port='80' accept'
# 移除规则
sudo firewall-cmd --permanent --remove-rich-rule='rule family='ipv4' source address='192.168.1.100' port protocol='tcp' port='80' accept'
- 开放/关闭端口
# 开放端口
sudo firewall-cmd --permanent --add-port=80/tcp
# 关闭端口
sudo firewall-cmd --permanent --remove-port=80/tcp
- 允许/禁止访问
# 允许访问
sudo firewall-cmd --permanent --add-rich-rule='rule family='ipv4' source address='192.168.1.0/24' accept'
# 禁止访问
sudo firewall-cmd --permanent --add-rich-rule='rule family='ipv4' source address='192.168.1.100' reject'
3. Zone 区域管理
firewalld 使用 Zone 来定义不同的网络环境,并根据 Zone 的规则来控制流量。您可以创建、删除、修改 Zone,以及添加/删除服务、接口、源/目标 IP 等。
- 创建/删除/修改 Zone
# 创建 Zone
sudo firewall-cmd --new-zone=myzone
# 删除 Zone
sudo firewall-cmd --remove-zone=myzone
# 修改 Zone 规则
sudo firewall-cmd --permanent --zone=myzone --add-rich-rule='rule family='ipv4' source address='192.168.1.100' accept'
- 添加/删除服务、接口、源/目标 IP
# 添加服务
sudo firewall-cmd --permanent --zone=myzone --add-service=http
# 删除服务
sudo firewall-cmd --permanent --zone=myzone --remove-service=http
# 添加接口
sudo firewall-cmd --permanent --zone=myzone --add-interface=eth0
# 删除接口
sudo firewall-cmd --permanent --zone=myzone --remove-interface=eth0
# 添加源 IP
sudo firewall-cmd --permanent --zone=myzone --add-source=192.168.1.0/24
# 删除源 IP
sudo firewall-cmd --permanent --zone=myzone --remove-source=192.168.1.0/24
# 添加目标 IP
sudo firewall-cmd --permanent --zone=myzone --add-destination=192.168.1.100
# 删除目标 IP
sudo firewall-cmd --permanent --zone=myzone --remove-destination=192.168.1.100
4. 监控防火墙状态
您可以使用以下命令查看当前生效的规则、活动连接等信息。
- 查看当前生效的规则
sudo firewall-cmd --list-all
- 查看活动连接
sudo firewall-cmd --list-connections
5. 配置防火墙策略
firewalld 支持设置默认策略和拒绝策略等高级功能。
- 设置默认策略
sudo firewall-cmd --permanent --set-default-zone=myzone
- 设置拒绝策略
sudo firewall-cmd --permanent --add-rich-rule='rule family='ipv4' accept'
6. 修改防火墙配置文件
您可以修改防火墙配置文件来调整防火墙屏蔽等级、日志记录等设置。
- 修改防火墙屏蔽等级
sudo firewall-cmd --get-target
sudo firewall-cmd --permanent --set-target=DROP
- 修改日志记录
sudo firewall-cmd --get-logging-level
sudo firewall-cmd --permanent --set-logging-level=debug
7. 保存/还原防火墙配置信息
您可以使用以下命令备份防火墙规则及配置文件,以便在需要时还原配置。
- 保存防火墙配置
sudo firewall-cmd --save
- 还原防火墙配置
sudo firewall-cmd --restore
8. 远程管理防火墙
您可以通过 SSH 或 GUI 工具来远程管理防火墙。
- 通过 SSH 远程管理
ssh 用户名@主机名
- 通过 GUI 工具远程管理
您可以使用图形界面工具,例如 GNOME Firewall 或 Firewalld Manager 来远程管理防火墙。
9. 高级配置
firewalld 支持使用 rich rules 进行高级配置,例如指定源/目标端口范围、TCP 连接状态、ICMP 类型等。
# 指定源/目标端口范围
sudo firewall-cmd --permanent --add-rich-rule='rule family='ipv4' source port port='80-8080' accept'
# 指定 TCP 连接状态
sudo firewall-cmd --permanent --add-rich-rule='rule family='ipv4' source address='192.168.1.100' port protocol='tcp' state='ESTABLISHED,RELATED' accept'
# 指定 ICMP 类型
sudo firewall-cmd --permanent --add-rich-rule='rule family='ipv4' source address='192.168.1.100' port protocol='icmp' type='echo-request' accept'
10. MAC 地址和 IP 地址过滤规则
firewalld 支持配置 MAC 地址和 IP 地址过滤规则,限制特定地址访问网络。
- 配置 MAC 地址过滤规则
sudo firewall-cmd --permanent --add-rich-rule='rule family='ipv4' source mac='00:11:22:33:44:55' accept'
- 配置 IP 地址过滤规则
sudo firewall-cmd --permanent --add-rich-rule='rule family='ipv4' source address='192.168.1.100' accept'
11. 自定义服务和应用程序
您可以定义自定义服务或应用程序,并为其创建防火墙规则。
# 定义自定义服务
sudo firewall-cmd --permanent --new-service=myservice --add-port=8080/tcp
# 为自定义服务创建规则
sudo firewall-cmd --permanent --zone=public --add-service=myservice
12. 与 SELinux 集成
firewalld 可以与 SELinux 集成,使防火墙规则更加严格。
sudo setenforce 1
13. 端口转发
firewalld 支持配置端口转发,将请求转发到另一个 IP 地址和端口号上。
sudo firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toaddr=192.168.1.100:toport=80
firewalld 防火墙的主要作用
firewalld 防火墙的主要作用是保护主机免受网络攻击和恶意软件的侵害。它可以识别不同类型的网络流量,并根据管理员定义的规则来允许或拒绝该流量。通过限制网络流量,firewalld 可以保护主机上的敏感数据和文件,确保系统安全。
- 屏蔽来自外网的非授权访问,保障主机的安全性。
- 管理端口,防止未经授权的服务访问主机。
- 管理入站和出站流量,防止恶意流量攻击主机。
- 设置访问控制策略,保护主机免受网络攻击。
- 允许基于网络中心策略的配置,使网络访问更加安全可信。
- 配置特定应用程序的网络访问权限,允许特定应用程序进行网络通信,同时禁止其他应用程序的网络通信。
总结
firewalld 防火墙是一个重要的安全工具,它可以帮助管理员保持主机的安全性,并保护敏感数据免受网络攻击和威胁。通过学习和使用 firewalld 防火墙,您可以有效地提升系统的安全性,保障您的数据和系统安全。
MySQL 基础命令
MySQL 是一个流行的关系型数据库管理系统,提供了一套强大的命令集来管理数据库和数据表。以下是 MySQL 基础命令的介绍,帮助您入门 MySQL。
1. 连接 MySQL
mysql -u 用户名 -p
输入用户名和密码后,即可连接到 MySQL 服务器。
2. 显示版本号
SELECT VERSION();
该命令会显示 MySQL 的版本号。
3. 显示所有数据库
SHOW DATABASES;
该命令会显示当前 MySQL 服务器上的所有数据库。
4. 选择数据库
USE 数据库名;
该命令选择要操作的数据库。
5. 创建数据库
CREATE DATABASE 数据库名;
该命令创建一个新的数据库。
6. 删除数据库
DROP DATABASE 数据库名;
该命令删除指定的数据库。
7. 显示所有表
SHOW TABLES;
该命令显示当前数据库中的所有数据表。
8. 显示表信息
SHOW TABLE STATUS [FROM 数据库名];
该命令显示指定数据库中所有数据表的详细信息。
9. 创建数据表
CREATE TABLE 表名 (字段名1 数据类型1 [长度] [属性], 字段名2 数据类型2 [长度] [属性], ……);
该命令创建一个新的数据表,并定义数据表的结构,包括字段名、数据类型、长度和属性等。
10. 删除数据表
DROP TABLE 表名;
该命令删除指定的表。
11. 修改表结构
ALTER TABLE 表名 ADD/CHANGE/DROP COLUMN 列名 数据类型;
该命令修改数据表的结构,包括添加、修改或删除字段。
12. 插入数据
INSERT INTO 表名 (列名1, 列名2, ……) VALUES (值1, 值2, ……);
该命令向数据表中插入新数据。
13. 查询数据
SELECT 列名1, 列名2, …… FROM 表名 WHERE 条件;
该命令查询数据表中的数据,并根据条件筛选结果。
14. 更新数据
UPDATE 表名 SET 列名1=新值1, 列名2=新值2 WHERE 条件;
该命令更新数据表中已有数据的。
15. 删除数据
DELETE FROM 表名 WHERE 条件;
该命令从数据表中删除符合条件的数据。
16. 退出 MySQL
exit;
quit;
该命令退出 MySQL。
MySQL 重要命令
以下是一些 MySQL 重要命令,它们可以用来管理和操作数据库、数据表和数据记录,以及授权和撤销用户的访问权限。
SHOW DATABASES;显示所有数据库USE 数据库名;选择要使用的数据库SHOW TABLES;显示指定数据库中所有数据表的信息DESCRIBE 表名;显示数据表的结构SELECT * FROM 表名;查询数据表中的所有记录SELECT 列名1, 列名2, …… FROM 表名 WHERE 条件;查询符合条件的记录INSERT INTO 表名 (列名1, 列名2, ……) VALUES (值1, 值2, ……);插入数据UPDATE 表名 SET 列名1=新值1, 列名2=新值2 WHERE 条件;更新数据DELETE FROM 表名 WHERE 条件;删除数据CREATE DATABASE 数据库名;创建数据库DROP DATABASE 数据库名;删除数据库CREATE TABLE 表名 (字段名1 数据类型1 [长度] [属性], 字段名2 数据类型2 [长度] [属性], ……);创建数据表DROP TABLE 表名;删除数据表ALTER TABLE 表名 ADD/CHANGE/DROP COLUMN 列名 数据类型;修改数据表结构GRANT 权限 ON 数据库名.表名 TO 用户名@主机名 IDENTIFIED BY '密码';授权用户访问指定数据库和数据表REVOKE 权限 ON 数据库名.表名 FROM 用户名@主机名;撤销用户对指定数据库和数据表的访问权限
通过学习和使用这些命令,您可以有效地管理和操作 MySQL 数据库,并实现数据存储和管理的各种需求。
原文地址: https://www.cveoy.top/t/topic/kGBI 著作权归作者所有。请勿转载和采集!