当前位置: 首页 > news >正文

Linux 防火墙 firewalld 常用命令

1 防火墙 - firewalld

1.1 开启防火墙

# 临时性开启,服务器重启后会恢复为原来的状态
systemctl start firewalld
# 永久性开启(即开机启动),重启服务器后生效
systemctl enable firewalld

1.2 关闭防火墙

# 临时性关闭,服务器重启后会恢复为原来的状态
systemctl stop firewalld
# 永久性关闭,重启服务器后生效
systemctl disable firewalld

1.3 重启防火墙

systemctl restart firewalld

1.4 查看防火墙状态

# 使用 systemctl 命令检查 firewalld 服务状态
systemctl status firewalld
# 使用 firewall-cmd 命令查看 firewalld 的状态
firewall-cmd --state

1.5 重载防火墙配置

# 重载防火墙配置,在不影响网络连接的情况下更新防火墙规则
firewall-cmd --reload

请添加图片描述

请添加图片描述

2 区域 - zone

2.1 查看所有可用的区域

firewall-cmd --get-zones

2.2 查看当前激活的区域

firewall-cmd --get-active-zones

2.3 查看指定区域的详细信息

firewall-cmd --zone=public --list-all# 注:如果指定区域为默认区域,可以省略 --zone 参数
firewall-cmd --list-all

2.4 查看默认区域

firewall-cmd --get-default-zone

2.5 设置默认区域

firewall-cmd --set-default-zone=public

2.6 添加区域

firewall-cmd --permanent --new-zone=myzone

2.7 删除区域

firewall-cmd --permanent --delete-zone=myzone

2.8 分配网络接口到指定区域

firewall-cmd --zone=public --change-interface=eth0

请添加图片描述

3 端口 - port

3.1 查看已开放的端口

firewall-cmd --list-ports# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --list-ports

3.2 添加指定开放端口

firewall-cmd --permanent --add-port=3306/tcp
# 开放指定端口范围
firewall-cmd --permanent --add-port=9000-9008/tcp# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --add-port=3306/tcp
firewall-cmd --zone=public --permanent --add-port=9000-9008/tcp

3.3 移除指定开放端口

firewall-cmd --permanent --remove-port=3306/tcp
# 移除指定端口范围
firewall-cmd --permanent --remove-port=9000-9008/tcp# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --remove-port=3306/tcp
firewall-cmd --zone=public --permanent --remove-port=9000-9008/tcp

3.4 查询指定开放端口

# yes 表示开启,no 表示未开启
firewall-cmd --query-port=3306/tcp# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --query-port=3306/tcp

请添加图片描述

4 服务 - service

4.1 查看已启用的服务

firewall-cmd --list-services# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --list-services

4.2 查看所有可用的服务

firewall-cmd --get-services

4.3 查看指定防火墙规则

firewall-cmd --info-service=ssh

4.4 添加指定服务

firewall-cmd --permanent --add-service=http# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --add-service=http

4.5 移除指定服务

firewall-cmd --permanent --remove-service=http# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --remove-service=http

请添加图片描述

5 富规则 - rich-rule

5.1 查看已设置的富规则

firewall-cmd --list-rich-rules# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --list-rich-rules

5.2 添加规则

# 添加富规则
# family="ipv4":规则的 IP 协议版本为 IPv4
# source address="192.168.198.200":规则适用于源地址为 192.168.198.200 的流量
# port protocol="tcp" port="3306":规则适用于 TCP 协议的 3306 端口
# accept:允许规则匹配的流量通过
# reject:拒绝规则匹配的流量通过# 允许来自 192.168.198.200 地址的 IPv4 TCP 3306 端口的流量通过防火墙,即允许 192.168.198.200 访问 3306 端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" accept"
# 拒绝来自 192.168.198.200 地址的 IPv4 TCP 3306 端口的流量通过防火墙,即拒绝 192.168.198.200 访问 3306 端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" reject"# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --add-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" accept"
firewall-cmd --zone=public --permanent --add-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" reject"

5.3 移除规则

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" accept"# 注:未显式指定所属区域则使用默认区域 public,即上述命令相当于
firewall-cmd --zone=public --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.198.200" port protocol="tcp" port="3306" accept"

请添加图片描述

6 注意事项

  • --permanent参数会将修改的防火墙配置永久性保存到防火墙配置文件中;修改防火墙配置时如果没有使用该参数则会在系统重启时丢失修改的配置。
http://www.lryc.cn/news/356752.html

相关文章:

  • 时间|基于SprinBoot+vue的时间管理系统(源码+数据库+文档)
  • C++青少年简明教程:for循环语句
  • 自动驾驶技术现状与需求分析
  • SQL生成自然数,日历序列 浅析
  • 【数据结构(邓俊辉)学习笔记】二叉树04——Huffman树
  • arcgisPro将一个图层的要素复制到另一个图层
  • 难兄难弟——Java中 goto 与 const关键字
  • 如何优化大文件读取时的性能
  • 【机器学习】Chameleon多模态模型探究
  • cv2.imdecode 和 cv2.imread 的区别
  • Android数据缓存框架 - 内存数据载体从LiveData到StateFlow
  • 多态的好处
  • Java基础语法---Stringjoiner
  • 大模型中的Tokenizer
  • Filebeat进阶指南:核心架构与功能组件的深度剖析
  • 深度神经网络
  • c++【入门】你多大了
  • 地质考察AR远程交互展示系统辅助老师日常授课
  • 容器是什么
  • 一分钟学习数据安全——数字身份的三种模式
  • WPF实现搜索文本高亮
  • Vue小程序项目知识积累(三)
  • React Native 之 像素比例(十七)
  • Leetcode 112:路径总和
  • 电源模块测试系统怎么测试输入电压范围?
  • 实战指南:Vue 2基座 + Vue 3 + Vite + TypeScript微前端架构实现动态菜单与登录共享
  • Java面试进阶指南:高级知识点问答精粹(一)
  • 儿童礼物笔记
  • LeetCode215数组中第K个最大元素
  • LeetCode //C - 143. Reorder List