openwrt防火墙firewall

知识链接:linux平台下防火墙iptables原理

一、 OpenWrt 内置防火墙介绍

  Openwrt 是一个 GNU/Linux 的发行版, 和其他大多数的发行版一样,Openwrt 的防火墙同样也是基于 iptables。 在 OpenWRT 下防火墙的默认行为已经可以满足路由器的需要,一般情况下也无需修改。OpenWrt 关于 NAT、 DMZ、防火墙规则等等都是由配置文件 /etc/config/firewall 文件进行控制的,有关于什么是 NAT 或者 DMZ 等内容,下文会讲到。对于防火墙的修改工作,我们采用 vi 进行直接的文件编辑完成。防火墙文件总会在/etc/init.d/firewall 启动的时候由 UCI 进行解码并且生成 iptables规则生效。因此使用者不需要了解 iptables 即可通过配置文件实现防火墙控制。

二、防火墙指令

防火墙的修改生效,需要重启防火墙执行以下指令:

1、重载防火墙配置

 /etc/init.d/firewall reload

2、重启防火墙

 /etc/init.d/firewall restart

三、防火墙配置文件解释

 /etc/config/firewall

配置文件内容解释:

1、防火墙的第一个内容

  • syn_flood :是否启用防洪水攻击。可选值: 0 关闭,1 启用。
  • input :设置 INPUT 链(chain)的过滤策略,可选值: ACCEPT 允许, REJECT拒绝。
  • output:设置 OUTPUT 链(chain)的过滤策略,可选值: ACCEPT 允许,REJECT 拒绝。
  • forward : 设置 FORWARD 链(chain)的过滤策略,可选值: ACCEPT 允许,REJECT 拒绝。
  • disable_ipv6: 设置关闭掉 IPv6 的防火墙策略,可选值: 0 忽略,1 关闭

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

2、防火墙的第二个内容(域)

  • config 后面是表示配置项的名称,这里”zone”为域的意思。
  • name 表示域的名字,必须是唯一值,可选值: wan, lan
  • network 表示网络列表,用来指示哪些接口被捆绑到这个域中,可选接口的名称,比如: lan,
  • wan, wan6
  • input :ACCEP 允许 INPUT 链(chain)的过滤策略
  • output: ACCEPT 允许 OUTPUT 链(chain)的过滤策略
  • forward: ACCEPT 允许 FORWARD 链(chain)的过滤策略
  • masq:设置传输伪装,如果是 WAN 口必须为 1
  • mtu_fix :设置 MTU 的 MSS 钳制,如果是 WAN 口请为 1

简单来说:

  • mtu:是网络传输最大报文包。
  • mss: 是网络传输数据最大值。
  • mss :加包头数据就等于 mtu.

3、防火墙的第三部分内容(转发) 

  • src : 是 设置转发来源
  • dest:是 设置转发目标

4、防火墙的第四部分内容(规则)

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

  • 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 / landest_ip 表示:数据目标的 IP 地址。
  • dest_port :数据目标的端口,可以是一个端口,或一个端口范围,但是必须同时指定了协议类型
  • family :数据的协议族,可选值: ipv4, ipv6, any

5、防火墙的第五部分内容

  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'

四、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

  



posted @ 2021-12-22 16:59  轻轻的吻  阅读(8388)  评论(0编辑  收藏  举报