当前位置 博文首页 > 想要去旅行:OpenWrt 防火墙组件
OpenWrt 防火墙实现是过滤通过路由器的网络流量的机制,在高层次上,将发生以下三种结果之一:数据包被丢弃(丢弃)而不采取任何进一步行动、拒绝(对源进行适当的响应)或接受(路由到目的地)。
OpenWrt 防火墙围绕 Linux netfilter项目展开。OpenWrt 防火墙有以下主要组件:
所述fw3 是用于提供防火墙主应用程序。它是由 OpenWrt 团队专门为该项目开发的。
每个网络堆栈都在代码的特定位置嵌入了netfilter 函数调用hooks
,当网络数据包通过堆栈时,每个钩子都会被调用,来检查相应的过滤规则
netfilter 钩子代码使用NF_HOOK
宏集。每个钩子都接受以下参数:
netfilter kernel modules 在启动时根据配置加载,大约有 35 个内核模块来支持标准的 netfilter 功能,但根据路由器的要求,还有更多。例如,许多路由器使用ipset功能。这增加了大约 16 个额外的内核模块。
大多数 netfilter 模块都很小,提供单一的特定功能。例如:
ipt_REJECT
performs REJECT (target),xt_multiport
performs match of the IP port (match)xt_TCPMSS
performs Maximum Segment Size adjustment in the TCP header (target in mangle
table)几个 netfilter 模块更大。例如:
nf_conntrack
为伪装 ( NAT ) 和数据包碎片整理执行连接跟踪。/etc/init.d/sysctl
在启动时执行,它这是个shell 脚本负责加载 /etc/sysctl.conf
和 /etc/sysctl.d/*
,这些设置/调整内核参数以提供 OpenWrt 功能。请参阅sysctl.conf。
都是Documentation/networking
内核源码树目录下的参数,这里不再赘述。见ip-sysctl.txt
并nf_conntrack-sysctl.txt
供参考。
注:由于 OpenWrt 功能集是相当静态的,因此内核参数几乎不需要进行调整。
请注意,内核中的 netfilter 桥接支持已禁用!见ip-sysctl.txt
:
bridge-nf-call-iptables - BOOLEAN
1 : pass bridged IPv4 traffic to iptables' chains.
0 : disable this.
Default: 1
cs