OpenWrt 防火墙应用--iptables工具

本文介绍了OpenWrt防火墙的iptables工具,详细讲解了iptables的表和链,如filter、nat、mangle,以及规则设定、处理动作和自定义链。还探讨了iptables的扩展模块、黑白名单机制,并提供了实用案例,包括端口转发和禁止特定IP访问服务。
摘要由CSDN通过智能技术生成

OpenWrt 防火墙应用–iptables工具

OpenWrt 防火墙

openwrt 下的 NAT、DMZ、firewall、rules 都是由配置文件 “/etc/config/firewall” 进行控制管理的。此文件可以使用 UCI 进行控制,也可以使用 vi 编辑器直接修改。
该文件最后会在 /etc/init.d/firewall 启动的时候由 UCI 进行解码并且生成 iptables 规则生效。

1 iptables

1.1 表和链

”链“ 表示的是数据流经过的一个一个的关卡,一共有五个链:PREROUTING, INPUT, FORWORD, OUTPUT, POSTROUTING

  • 到本机某进程的报文:PREROUTING -> INPUT
  • 从本机某进程出去的报文:OUTPUT -> POSTROUTING
  • 由本机转发的报文:PREROUTING -> FORWARD -> POSTROUTING

“表” 表示的是每个关卡上设置的规则的分类,一共有四类

  • filter 表:负责过滤功能,防火墙;内核模块:iptable_filter

过滤表

filter是iptables的默认表,主要用于报文过滤,在这里根据报文的内容对报文进行丢 弃或者接收。

它包含有 3 个内置规则链:

①INPUT输入链:处理目标地址为本机 IP 地址的报文。
②OUTPUT输出链:处理本机 IP 地址产生的报文。
③FORWARD转发链:处理经过本机路由的报文。

这样每一个IP报文只经过这3个内置链中的一个,便于进行数据报文匹配和处理。 这里是真正实现防火墙处理的地方。

注意:

①经过本机转发的报文经过 FORWARD 链,不经过 IPPUT 链和 OUTPUT 链。
②本机产生的报文经过 OUTPUT 链,其他的链不经过。
③去往主机的报文经过该主机的 INPUT 链,其他的链不经过。

  • nat 表:网络地址转换功能;内核模块:iptable_nat

网络地址转换表

nat用来完成源/目的地址和端口的转换,当一个报文在创建一个新的连接时进入该表。
它也有3个内置规则链:

①PREROUTING:用于修改到来的报文,只用来做网络地址转换。
②OUTPUT:用于修改本机产生的并且在路由处理之前的报文。
③POSTROUTING:用于修改准备出去的报文的地方。

通过目的地址转换,你可以将服务器放在防火墙后面,并使用私有 IP 地址。一些协 议通过 nat 转换有困难(例如 FTP 或 SIP),连接跟踪将打开这些协议的数据/媒体流路径。nat 表不能用于报文过滤和报文修改,因为每一个连接流仅有一次机会进入该表中的规则链。

网络地址转换在路由功能前后都可能发生,源地址转换是在数据包通过路由之后在 POSTROUTING 规则链进行地址转换。目的地址转换是在路由之前,在 PREROUTING 规 则链进行地址转换。

  • mangle 表:对报文进行拆分和修改;内核模块:iptable_mangle

修改表

这个表主要用来进行报文修改。

有5个内置规则链:

①REROUTING:针对到来的报文,在路由之前修改的地方。
②INPUT:针对目的地址为网关本身的报文。
③FORWARD:针对通过网关路由转发的报文。
④POSTROUTING:将要发送出去的报文的地方。
⑤OUTPUT:本机产生报文在路由之前修改的地方。

通常使用该表进行报文修改,以便进行 QoS 和策略路由。通常每一个报文都进入该表,但不使用它来做报文过滤。

  • raw 表:关闭 nat 表上启用的连接追踪机制:iptable_raw

原始表

这个表很少被用到,主要用于配置连接跟踪相关内容,在ip_conntrack 之前调用。

它提供了两个内置规则链:

①PREPROUTING:到达本机的报文。
②OUTPUT:本机进程产生的报文。

这里是能够在连接跟踪生效前处理报文的地方,你可以标记符合某种条件的报文不被 连接跟踪处理。一般很少使用。

表和链的关系

并不是所有的链上都同时存在上面四个表,同时每个表也不会存在所有的链上:

  • PREROUTING:raw,mangle,nat
  • INPUT: mangle, filter
  • FORWARD: mangle, filter
  • OUTPUT: filter, nat, mangle, raw
  • POSTROUTING: mangle, nat

同一个链中,表的优先级 raw -> mangle -> nat -> filter

指定规则表

-t 参数用来,内建的规则表有三个,分别是:nat、mangle 和filter,当未指定规则表时,则一律视为是filter

三规则表的功能如下:

nat:此规则表拥有PREROUTING 和 POSTROUTING 两个规则链,主要功能为进行一对一、一对多、多对多等网址转换工作(SNAT、DNAT),这个规则表除了作网址转换外,请不要做其它用途。

mangle:此规则表拥有 PREROUTING、FORWARD 和 POST

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值