openwrt 防火墙

OpenWRT 内置防火墙介绍

openwrt 下的 NAT、DMZ、Firewall rules 都是由配置文件 "/etc/config/firewall" 进行控制管理的。此文件可以使用 UCI 进行控制,也可以使用 vi 编辑器直接修改。
该文件最后会在 /etc/init.d/firewall 启动的时候由 UCI 进行解码并且生成 iptables 规则生效。因此使用者不需要了解 iptables 即可通过配置文件实现防火墙规则。

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

/etc/init.d/firewall reload
/etc/init.d/firewall restart
查看当前 iptables 的已启用策略语法为:
iptables -L

防火墙的基本设置

  • config defaults 防火墙默认参数表
    键                        值                               是否必须设置  说明                                          
    inputACCEPT 设置 INPUT 链(chain) 的过滤策略,可选值: ACCEPT 允许, REJECT 拒绝  
    outputACCEPT 设置 OUTPUT 链(chain) 的过滤策略,可选值: ACCEPT 允许, REJECT 拒绝
    forwardREJECT设置 FORWARD 链(chain) 的过滤策略,可选值: ACCEPT 允许, REJECT 拒绝
    syn_flood1是否启用防洪水攻击。可选值:0关闭,1启用。
    synflood_rate字符串设置 SYN 包传输洪水攻击检测比率值,默认为:25 单位(包/秒)
    synflood_burst      字符串设置 SYN 包传输比率值识别洪水攻击,默认为:50 单位(包/秒)
    disable_ipv61设置关闭掉 IPv6 的防火墙策略, 可选值:0忽略,1关闭。
    这部分参考值使用系统默认值即可,无需修改:
config defaults
        option syn_flood        1
        option input            ACCEPT
        option output           ACCEPT
        option forward          REJECT
# Uncomment this line to disable ipv6 rules
#       option disable_ipv6     1
  • config zone 用于 WAN/LAN 域(zone)的参数表
    键                            值                                是否必须设置   说明                                                                                                                               
    name字符串域,必须是唯一值,可选值:wan,lan  
    network列表值哪些接口被捆绑到这个域中,可选接口的名称,比如:lan,wan,wan6 
    inputACCEPT设置INPUT链(chain)的过滤策略,可选值: ACCEPT 允许, REJECT 拒绝
    outputACCEPT设置OUTPUT链(chain)的过滤策略,可选值: ACCEPT 允许, REJECT 拒绝
    forwardACCEPT设置FORWARD链(chain)的过滤策略,可选值: ACCEPT 允许, REJECT 拒绝
    masq1设置传输伪装,如果是WAN口必须为1
    mtu_fix1设置MTU的MSS钳制,如果是WAN口请为1
    这部分配置也不需要做修改,参考:
    config zone
            option name             lan
            list   network          'lan'
            option input            ACCEPT
            option output           ACCEPT
            option forward          ACCEPT
    
    config zone
            option name             wan
            list   network          'wan'
            list   network          'wan6'
            option input            REJECT
            option output           ACCEPT
            option forward          REJECT
            option masq             1
            option mtu_fix          1


  • config forwarding  路由转发参数表
    键            值           是否必须设置 说明
    srclan设置转发来源                                               
    destwan设置转发目标
    这部分也需要修改,参考:
    config forwarding
            option src              lan
            option dest             wan


防火墙的规则
如果在路由产品中需要开发 “允许 WAN 口访问设备的特定端口”,可以设置本规则(比如开放 WAN 口允许 SSH 登入,或允许 WAN 口访问设备的 FTP),一般情况下无需设置。
防火墙规则在 /etc/config/firewall 中可以有任意数量的规则,这些规则定义了数据传输的动作和行为是被允许还是拒绝。

规则配置文件结构
config rule
option name '规则名称'
.....

config rule 可选参数表
是否必须设置     说明
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 口可以 ssh 到系统,举例:
config rule
option name wan-ssh
option src wan
option dest_port 22
option proto tcp
option target ACCEPT

端口转发和 DMZ(demilitarized zone 隔离区)
端口转发是路由产品中常见的配置,它允许使用者通过WAN口访问特定的端口转发给局域网的一台电脑设备(比如WAN口访问80端口(HTTP)将转发给局域网某台网站服务器)。


端口转发也是在防火墙配置/etc/config/firewall中定义redirect段策略实现的。所有匹配的来源数据将根据目标设置转发到目标主机上。


firewall配置中可以有多个redirect转发策略,默认是没有开放任何转发的,如果需要转发请使用vi或UCI进行配置。

规则配置文件结构

config redirect
option name '名称'
....

config redirect 可选参数表

键    值    是否必须设置    说明   
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'
将电脑 192.168.1.2 设置 DMZ 隔离区,举例:
config redirect
option src wan
option proto all
option dest_ip 192.168.1.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值