0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

嵌入式大杂烩 来源:嵌入式大杂烩 作者:嵌入式大杂烩 2023-07-15 16:24 次阅读

开发环境:

主机: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

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

1.png

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

2.png

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

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 关闭

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

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

3.png

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.

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

4.png

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.

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

5.png

这里只是罗列出了几个防火墙的规则,其实防火墙规则在/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

  • 防火墙的第五部分内容

6.png

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 的一个示意图:

7.png

好的,结合之前简单的规则部分,这里我们给出一个将电脑 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

审核编辑:汤梓红

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

    关注

    0

    文章

    416

    浏览量

    35587
  • 主机
    +关注

    关注

    0

    文章

    986

    浏览量

    35053
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97157
  • 开发环境
    +关注

    关注

    1

    文章

    220

    浏览量

    16580
  • OpenWrt
    +关注

    关注

    10

    文章

    127

    浏览量

    39261
收藏 人收藏

    评论

    相关推荐

    Openwrt开发指南 25 配置OpenWrt支持网络摄像头

    Openwrt开发指南 25 配置OpenWrt支持网络摄像头
    的头像 发表于 07-13 08:56 2301次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>25<b class='flag-5'>章</b> 配置<b class='flag-5'>OpenWrt</b>支持网络摄像头

    Openwrt开发指南 1 OpenWrt入门

    如果要学习openwrt的话,买些列表中二手的路由器来实践下更容易学习,大部分要升级一下rom芯片和内存芯片,典型配置都是4M、64M。
    的头像 发表于 06-27 09:09 4217次阅读

    Openwrt开发指南 2 OpenWrt开发环境搭建

    开发PC机上的软件时,可以直接在PC机上编辑、编译、调试软件,最终发布的软件也是在PC机上运行。对于物联网OpenWrt开发,最初的嵌入式设备是一个空白的系统,需要通过主机为它构建基本的软件系统,并
    的头像 发表于 06-27 09:09 6908次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>2<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b><b class='flag-5'>开发</b>环境搭建

    Openwrt开发指南 3 OpenWrt下载及配置

    编译OpenWrt首先需要下载源码,OpenWrt的源码是通过git下载,OpenWrt目前已经很好的支持了MT7620、MT7821等芯片,因此OpenWrt系统完全可以用于MT76
    的头像 发表于 06-27 09:10 5545次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>3<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>下载及配置

    Openwrt开发指南 12 添加OpenWrt软件包

    OpenWrt是一个比较完善的嵌入式Linux开发平台,在无线路由器应用上已有4000多个软件包。我们可以在其基础上增加软件包,以扩大其应用范围。在OpenWrt中增加软件包极其方便,按照
    的头像 发表于 06-29 09:09 8647次阅读

    Openwrt开发指南 13 OpenWrt启动流程

    任何系统的启动都是开发人员首要关注的问题,因为只有了解了系统的启动流程和启动机制,才能真正掌握一个系统,如果对启动的启动不熟悉的话,是不可能真正用好一个系统,openwrt系统也不例外,他的启动和一般的嵌入式系统启动还有所区别,现在咱们就分析一下
    的头像 发表于 06-29 09:09 3412次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>13<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>启动流程

    Openwrt开发指南 22 Openwrt串口的使用2

    在上一中,我们成功的让驱动程序支持了串口 2,并且做了简单的测试。接下来,我们就为串口 2 添加一个应用程序,从而实现 Wi-Fi 串口。实现过程非常简单,首先进入 OpenWrt 系统源码,然后运行 make menuconfig 命令进行配置。
    的头像 发表于 07-05 09:09 3961次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>22<b class='flag-5'>章</b> <b class='flag-5'>Openwrt</b>串口的使用2

    Openwrt开发指南 24 配置开发板支持U盘

    Openwrt开发指南 24 配置开发板支持U盘
    的头像 发表于 07-13 08:55 2949次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>24<b class='flag-5'>章</b> 配置<b class='flag-5'>开发</b>板支持U盘

    发现 STM32 防火墙的安全配置

    里提供了几个不同的防火墙配置。那么问题来了,什么是STM32防火墙的应该使用的安全配置呢?本文以STM32参考手册为基础,以最大化安全为目标,来探索发现STM32防火墙的推荐配置。STM32
    发表于 07-27 11:04

    防火墙技术

    防火墙技术.ppt 防火墙及相关概念包过滤型防火墙代理服务型防火墙 防火墙的配置分布式防火墙
    发表于 06-16 23:41 0次下载

    防火墙原理

    课程说明   2 课程介绍 . . 3 课程目标 . . 3 相关资料 . . 3 第一节 防火墙工作原理  2 1.1 什么是防火墙  . . 2 1.2
    发表于 06-24 18:13 71次下载

    NetScreen防火墙策略与冗余配置指南

    NetScreen防火墙策略与冗余配置指南成都通信建设工程局 游凯 邮政编码 611130[摘要] 本文通过对NetScreen访问策略其防火墙配置介绍,简要
    发表于 05-16 01:38 35次下载

    究竟什么是防火墙

    究竟什么是防火墙?     Q:防火墙初级入门:究竟什么是防火墙?     A:防火墙定义
    发表于 02-24 11:51 773次阅读

    openwrt开发教程1~6

    openwrt开发教程1~6
    发表于 03-17 14:23 53次下载

    openwrt路由器防火墙配置方法

    OpenWRT下的防火墙管理是由配置文件“/etc/config/firewall”进行控制管理的。此文件可以使用UCI进行控制,也可以用vi编辑器直接修改。但如果两种方式都使用时需要注意UCI命令
    发表于 12-27 10:04 5.3w次阅读
    <b class='flag-5'>openwrt</b>路由器<b class='flag-5'>防火墙</b>配置方法