OpenWrt防火墙分析及Nftables配置方法详解
创作时间:
作者:
@小白创作中心
OpenWrt防火墙分析及Nftables配置方法详解
引用
CSDN
1.
https://m.blog.csdn.net/weixin_39580537/article/details/141056845
OpenWrt是一个基于Linux的嵌入式操作系统,主要用于路由器等网络设备。Nftables是Linux内核中用于包过滤、网络地址转换(NAT)和包标记的框架,是iptables的继任者。本文将详细介绍OpenWrt防火墙的配置方法以及Nftables的具体使用。
一、OpenWrt原生页面
OpenWrt的防火墙配置可以通过Web界面进行,但更推荐使用命令行方式进行配置,以便于自动化和版本控制。
二、配置文件
OpenWrt的防火墙配置文件位于/etc/config/firewall,主要包含以下几个部分:
defaults
这部分定义了全局的防火墙设置,例如SYN洪水攻击保护、默认的输入、输出和转发策略等。
config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'REJECT'
zone
安全域(zone)是防火墙配置中的一个重要概念,用于划分不同的网络区域。每个安全域可以包含一个或多个接口,并定义了流量的处理规则。
forwarding
转发配置节用于控制不同安全域之间的数据流量。例如,可以设置最大分片大小(MSS)或启用连接跟踪。
rule
规则部分用于定义具体的接受、丢弃或拒绝规则。规则可以基于源地址、目的地址、端口等条件进行匹配。
include
include部分用于包含自定义的防火墙规则。这允许用户添加更复杂的iptables规则或流量整形所需的tc命令。
三、配置生效流程
总流程
OpenWrt在初始化时会加载/etc/config目录下的所有配置文件,并对这些文件进行MD5校验。配置文件的更改会触发/sbin/reload_config脚本,该脚本会通过ubus总线通知procd进程重新加载防火墙配置。
procd初始化注册config.change事件流程
procd进程在初始化时会注册一个service事件处理函数,用于处理配置更改事件。当检测到配置文件发生变化时,会调用/etc/init.d/firewall reload命令重新加载防火墙配置。
四、Nftables
ruleset层级操作常用命令
- 显示所有family的所有rule规则:
nft list ruleset - 显示某个集合的所有规则:
nft list ruleset <family> - 清除所有集合的所有规则:
nft flush ruleset - 备份规则到文件:
nft list ruleset >> backup.nft - 从文件恢复规则:
nft -f backup.nft
表table
- 添加表格:
nft add table [family] <table_name> - 显示表格:
nft list tables - 删除表格:
nft delete table [family] <table_name>
Family集合
ip:监听IPv4流量ip6:监听IPv6流量inet:同时监听IPv4和IPv6流量arp:监听ARP-level地址解析流量bridge:监听桥接流量netdev:监听特定网卡流量
链chain
常用命令
- 建立基本链:
nft add chain [<family>] <table_name> <chain_name> { type <type> hook priority <value> \; [policy <policy> \;] [comment “text comment” \;]} - 清空链:
nft flush chain [family] <table_name> <chain_name> - 删除链:
nft delete chain [family] <table_name> <chain_name>
参数解析
type:指定链的类型,如filter、route、nathook:定义链挂载的基本链,如ingress、prerouting、input等policy:定义默认策略,如accept、droppriority:定义链的执行优先级comment:添加注释
规则rule
常用命令
- 添加规则:
nft add rule <family> <table_name> <chain_name> <...> - 显示规则:
nft -n -a list table <family> <table_name> - 插入规则:
nft insert rule <family> <table_name> <chain_name> position <handle_num> <...> - 替换规则:
nft replace rule <family> <table_name> <chain_name> handle <handle_num> <...> - 删除规则:
nft delete rule <family> <table_name> <chain_name> handle <handle_num>
参数解析
counter:流量统计masquerade:源地址自动设置为出口地址meta:通过meta选择器进行流量匹配或设置ip {saddr | daddr}:匹配IPv4的源地址或目标地址icmp type:匹配ICMP流量ip protocol:匹配IP协议meta l4proto:匹配L4协议tcp dport:匹配特定端口的流量accept、drop、reject、jump:流量处理动作snat、dnat:网络地址转换redirect:流量重定向
热门推荐
2025年初首套房贷利率将下调至3.3%,100万房贷可少还多少利息?
【健康科普】非甾体抗炎药,你用对了吗?
球赛技术分析:影响比赛结果的五大因素
扣缴义务人与综合所得年度自行申报:选择之辨
儿童火车票取票流程法律解读与实操指南
史上最全盘点:2025国内外主流低代码开发平台,总有一款值得一试
2024四川高校经费出炉:川大超120亿,成都理工第5,内江师院第17
自制汉堡肉饼,轻松实现“汉堡自由”
2024北京工业大学录取分数线及位次一览:四川考生2025填报参考
心理咨询和心理治疗有什么区别
36V和48V电动车电池的区别与选择指南
如何为深圳新生儿购买医保?购买过程中的要点和注意事项是什么?
吃木薯粉条会中毒吗
龙井茶与白茶:对比分析及全面解析它们的区别与特点
西兰花的营养成分有哪些
专家推荐:6种食疗方法有效降低胆红素值
刑事起诉如何不留案底:法律规定与实务操作解析
被法院起诉结案了多久才能清除案底
麻疹疫苗接种的重要性与社区合作应对策略
JAK抑制剂在难治性类风湿性关节炎中的疗效与耐受性研究
居家无跳跃燃脂训练,室内无器械有氧运动有哪些
培养孩子专注力:用围棋训练提升逻辑思维的5个阶段
093A型攻击核潜艇:静音隐形与鹰击18导弹的完美结合
各类交通工具能耗对比表
千万要小心汽车盲区,看这篇文章教你如何避免!
为班级取个优雅的名字
家庭小仓库管理方法有哪些
二氧化碳的主要性质
直接胆红素7.2μmol/L真的很严重吗?
李兆基传奇一生