Openwrt开发指南 第29章 OpenWrt 防火墙介绍

描述

开发环境:

主机:Ubuntu12.04

开发板:RT5350

Openwrt:Openwrt15.05

1 OpenWrt 内置防火墙介绍

Openwrt 是一个 GNU/Linux 的发行版, 和其他大多数的发行版一样,Openwrt 的防火墙同样也是基于 iptables。 在 OpenWRT 下防火墙的默认行为已经可以满足路由器的需要,一般情况下也无需修改。

OpenWrt 关于 NAT、 DMZ、防火墙规则等等都是由配置文件 /etc/config/firewall 文件进行控制的,有关于什么是 NAT 或者 DMZ 等内容,下文会讲到。对于防火墙的修改工作,我们采用 vi 进行直接的文件编辑完成。

防火墙文件总会在/etc/init.d/firewall 启动的时候由 UCI 进行解码并且生成 iptables规则生效。因此使用者不需要了解 iptables 即可通过配置文件实现防火墙控制。防火墙的修改生效,需要重启防火墙执行以下指令:

#/etc/init.d/firewall reload

或执行:

#/etc/init.d/firewall restart

查看当前 iptables 的已启用策略语法为:

#iptables -L

2 防火墙文件内容分析

我们打开防火墙文件查看一下:

#vi /etc/config/firewall

  • 我们可以看到第一部分的内容(默认参数表):

防火墙

这里是防火墙默认的参数表,其内容和相应的动作可以有如下选择:

防火墙

防火墙文件这方面的内容为:

syn_flood 1 表示: 是否启用防洪水攻击。可选值: 0 关闭,1 启用。

input ACCEPT 表示: 设置 INPUT 链(chain)的过滤策略,可选值: ACCEPT 允许, REJECT拒绝。

output ACCEPT 表示: 设置 OUTPUT 链(chain)的过滤策略,可选值: ACCEPT 允许,REJECT 拒绝。

forward REJECT 是 设置 FORWARD 链(chain)的过滤策略,可选值: ACCEPT 允许,REJECT 拒绝。

disable_ipv6 1 表示: 设置关闭掉 IPv6 的防火墙策略,可选值: 0 忽略,1 关闭

这部分参考值既是系统默认的即可,无需修改:

  • 防火墙的第二个内容(域):

防火墙

config 后面是表示配置项的名称,这里”zone”为域的意思。

name 表示域的名字,必须是唯一值,可选值: wan, lan

network 表示网络列表,用来指示哪些接口被捆绑到这个域中,可选接口的名称,比如: lan,

wan, wan6

input ACCEP 允许 INPUT 链(chain)的过滤策略

output ACCEPT 允许 OUTPUT 链(chain)的过滤策略

forward ACCEPT 允许 FORWARD 链(chain)的过滤策略

masq 1 表示: 设置传输伪装,如果是 WAN 口必须为 1

mtu_fix 1 表示: 设置 MTU 的 MSS 钳制,如果是 WAN 口请为 1

简单来说:

mtu 是网络传输最大报文包。

mss 是网络传输数据最大值。

mss 加包头数据就等于 mtu.

这部分的设置作用如下:

A zone section groups one more interfaces and serves as a source or destination for forwardings, rules and redirects. Masquerading (NAT) of outgoing traffic is controlled on a per-zone basis.

  • 防火墙的第三部分内容(转发) :

防火墙

src lan 是 设置转发来源

dest wan 是 设置转发目标

这部分作用描述如下:

The forwarding sections control the traffic flow between zones and may enable MSS clamping for specific directions. Only one direction is covered by a forwarding rule. To allow bidirectional traffic flows between two zones, two forwardings are required, with src and dest reversed in each.

  • 防火墙的第四部分内容(规则):

防火墙

这里只是罗列出了几个防火墙的规则,其实防火墙规则在/etc/config/firewall 中可以有任意数量的规则,这些规则定义了数据传输的动作和行为是被允许还是拒绝。

对于防火墙规则的作用描述如下:

Sections of the type rule can be used to define basic accept or reject rules to allow or restrict access to specific ports or hosts. Like redirects the rules are tied to the given source zone and match incoming traffic occuring there.

我们再解释一下防火墙规则的相应选项的意思:

name 表示:设置当前这个 rule 的名称

target 表示:设置防火墙动作,可选值: ACCEPT 许可, REJECT 拒绝, DROP 抛弃

src 表示: 数据源的 zone 域是哪个。可选值: wan / lan

src_ip 表示:数据源的 IP 地址是哪个。

src_mac 表示:数据源的 MAC 地址是哪个。

src_port 表示:数据源的端口,可以是一个端口,或一个端口范围,但是必须同时指定了协议类型

proto 表示: 数据源的协议类型, 可选值: tcp, udp, tcpudp, udplit, icmp, esp, ah, sctp,

或 all 表示全部

dest 表示:数据目标的 zone 域是哪个。可选值: wan / lan

dest_ip 表示:数据目标的 IP 地址。

dest_port 表示:数据目标的端口,可以是一个端口,或一个端口范围,但是必须同时指定了协议类型

family 表示:数据的协议族,可选值: ipv4, ipv6, any

rule 规则设置可以灵活,比如允许来自 WAN 口的 ping,例:

config rule

option name Allow-Ping

option src wan

option proto icmp

option icmp_type echo-request

option family ipv4

option target ACCEPT

  • 防火墙的第五部分内容

防火墙

OpenWrt 防火墙允许使用者通过 WAN 口访问特定的端口重定向给局域网的一台电脑设备(比如 WAN 口访问 80 端口(HTTP)将重定向给局域网某台网站服务器)。 端口重定向是在防火墙配置/etc/config/firewall 中定义 redirect 段策略实现的。所有匹配的来源数据将根据目标设置转发到目标主机上。 firewall 配置中可以有多个 redirect 策略,默认是没有开放任何重定向的,如果你需要重定向请使用 vi 或 UCI 进行配置。

name 表示:设置当前这个 redirect 的名称

src 表示:转发源的 zone 域,一般转发都是转发从 wan 过来的访问

src_ip 表示:转发源的 IP 地址指定

src_mac 表示:转发源的 MAC 地址指定

src_port 表示:转发源的端口指定

proto 表示: 转发源的协议类型, 可选值: tcp, udp, tcpudp, udplit, icmp, esp, ah, sctp, 或

all 表示全部

dest 表示:转发目标的 zone 域

dest_ip 表示:转发目标的 IP 地址指定

dest_mac 表示:转发目标的 MAC 地址指定

dest_port 表示:转发目标的端口指定

端口重定向的可配置性很灵活。比如我们将 9020 这个端口转发给内网一台服务器的 80 端口,如下:

config redirect
option name '9020-80'
option proto 'tcp'
option src 'wan'
option src_dport '9020'
option dest 'lan'
option dest_ip '192.168.1.100'
option dest_port '80'

3 DMZ 介绍

DMZ 是英文“ demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”。它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区,这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些必须公开的服务器设施,如企业 Web 服务器、FTP 服务器和论坛等。另一方面,通过这样一个 DMZ 区域,更加有效地保护了内部网络,因为这种网络部署,比起一般的防火墙方案,对攻击者来说又多了一道关卡。端口映射与 DMZ 的区别在于:端口映射只是映射指定的端口,DMZ 相当于映射所有的端口,并且直接把主机暴露在网关中,比端口映射方便但是不安全。

下面是关于 dmz 的一个示意图:

防火墙

好的,结合之前简单的规则部分,这里我们给出一个将电脑 192.168.1.2 设置 DMZ 隔离区的例子:

Simple DMZ rule

The following rule redirects all WAN ports for all protocols to the internal host

192.168.1.2.

config redirect

option src wan

option proto all

option dest_ip 192.168.1.2

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分