firewalld:direct规则
一,官方文档:
1, 选项:
https://firewalld.org/documentation/direct/options.html
例子:
https://firewalld.org/documentation/direct/examples.html
手册:
https://firewalld.org/documentation/man-pages/firewalld.direct.html
2, 直接规则的特点:
1)直接只用iptables或firewalld语句规则写入管理区域
2)执行优先级最高。优先级:直接规则→富规则→区域规则
3)不会iptables语句的用户不建议直接使用直连接口
4)适用于服务或应用程序
二,direct规则的语法:
firewall-cmd
--permanent \
--direct \
--add-rule { ipv4 | ipv6 | eb } \
<表(table)> <链(chain)> <优先级(priority)> args
--direct:直接规则
--permanent:将规则写入防火墙配置文件,永久执行【需要使用firewalll-cmd --reload加载配置文件才能生效。如果不使用此选项,所有新添加的规则都是临时使用~】
--add-rule: 添加规则
lpv4: 这个属性非常简单,表示ip的版本
5表:
五个表table:filter、nat、mangle、raw、security
filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表
nat:network address translation 地址转换规则表
mangle:修改数据标记位规则表
raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度
security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现
5链
链 是数据包传播的路径,每一个 链 中可以有 N 个 规则 (N >= 0)。当数据包到达一个 链 时,iptables 就会从链中第一个规则开始检测, 如果数据包满足规则所定义的条件,系统会执行具体的 行为,否则 iptables 继续检查下一个规则。 如果数据包不符合链中任一个规则,iptables 就会根据该链预先定义的默认策略来处理数据包。
三,direct规则的用法
1,列出所有的规则
[root@blog ~]# firewall-cmd --direct --get-all-rules
2,添加一条规则:
[root@blog ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT
success
查看已添加的规则:
[root@blog ~]# firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT
说明:direct规则就是iptables的规则,所以可以通过iptables命令查看:
[root@blog ~]# iptables -L -v -n
Chain INPUT (policy ACCEPT 5595K packets, 1759M bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT tcp -- * * 172.25.254.210 0.0.0.0/0 tcp dpt:22 reject-with icmp-port-unreachable
3,删除一条规则:
[root@blog ~]# firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT
success
查看删除后的规则:
[root@blog ~]# firewall-cmd --direct --get-all-rules
4,添加规则时写入文件:
[root@blog ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT
success
写入的文件在哪里?
[root@blog ~]# more /etc/firewalld/direct.xml
<?xml version="1.0" encoding="utf-8"?>
<direct>
<rule ipv="ipv4" table="filter" chain="INPUT" priority="1">-p tcp --dport 22 -s 172.25.254.210 -j REJECT</rule>
</direct>
查看是否生效:无效果
[root@blog ~]# firewall-cmd --direct --get-all-rules
重新加载:
[root@blog ~]# firewall-cmd --reload
success
查看是否生效:已生效:
[root@blog ~]# firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT
四,direct规则和zone规则的优先级
直接规则→富规则→区域规则
直接规则的执行优先级最高
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2022-08-25 vue.js3:拖动旋转div(vue@3.2.37)
2021-08-25 kde plasma 5.21:配置konsole和右键菜单背景模糊透明(kubuntu 21.04)
2021-08-25 springboot+vue实现前后端分离之后端spring部分(spring boot 2.5.4/vue.js 3.2.4)
2021-08-25 springboot+vue实现前后端分离之前端vue部分(spring boot 2.5.4/vue.js 3.2.4)
2021-08-25 如何给一个vue项目重命名(vue.js 3.2.4)
2021-08-25 用git命令上传一个项目到gitee(git 2.30.2)
2020-08-25 spring boot:swagger3的安全配置(swagger 3.0.0 / spring security / spring boot 2.3.3)