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
:流量重定向
热门推荐
特朗普关税大棒下,台积电与富士康股价暴跌
新型电池助力无人机续航翻倍,低空经济迎来新动力
冬季飞行必备:大疆无人机电池保养秘籍
微信拉黑和删除到底哪个更伤人?
提升宝宝学习力的五感小知识
在家早教系列五:4-5月宝宝生长发育特点及游戏方式
【漫话中医】若要小儿安,三分饥与寒
智能手环健康监测功能详解(健康管理)
自然采光,回用雨水,新能源车……大兴国际机场的绿色探索
长期喝清肝茶是否合适?了解其副作用与注意事项以确保安全有效
高大羊教你吃鸡:毒圈预判技巧
《APEX英雄》毒圈机制全解析:从基础规则到实战技巧
《篮球旋风》助燃青少年篮球梦
X集团三项制度改革:创新路径与实践成效
“双百企业”引领国企三项制度改革新趋势
黄圃腊味:舌尖上的历史传承
冬至前必学:四川、湖南、广东腊肉特色做法大比拼!
夜间驾驶必修课:远近光灯使用全攻略
冬季夜间驾驶,掌握这些远光灯技巧!
本田艾力绅车钥匙功能介绍与电池更换指南
本田艾力绅钥匙电池更换指南:型号、步骤与注意事项
极简风穿搭高级又显气质,想要穿好看真的不难,做好这三点很关键
有品位女性的穿搭哲学:经典舒适,优雅高级
如何选择适合的车载导航系统?
“丝路电商过大年”:春节消费新趋势与投资机遇
独立站导航结构中的用户体验优化策略,让访客畅游无阻
佛山味道与汕头美食:广东品牌化的双城记
顺德与潮州:世界美食之都的岭南味道
广州必打卡:从早茶到夜宵的地道美味
《封神演义》里的哪吒为何更受欢迎?