openwrt - firewall¶
防火墙、DMZ(独立隔离区)、NAT 转发在 OpenWrt 系统中都是由 /etc/config/firewall 配置文件管理的。
https://openwrt.org/docs/guide-user/firewall/start
https://openwrt.org/zh-cn/doc/uci/firewall
https://openwrt.org/docs/guide-user/firewall/fw3_configurations/fw3_config_examples
https://openwrt.org/docs/guide-user/firewall/fw3_configurations/fw3_dmz
重置防火墙¶
重启防火墙¶
查看防火墙完整策略¶
防火墙 defaults 配置¶
config defaults
option syn_flood 1 # 启用防洪水攻击
option input ACCEPT # INPUT 链过滤策略
option output ACCEPT # OUTPUT 链过滤策略
option forward REJECT # FORWARD 链过滤策略
防火墙 zone 域配置¶
系统将 LAN 和 WAN 分为两个不同的 zone,它们之间是隔离的。
config zone
option name lan # zone 节点名
list network 'lan' # 指定绑定到该 zone 上的设备
option input ACCEPT
option output ACCEPT
option forward ACCEPT
config zone
option name wan
list network 'wan'
list network 'wan6'
list network 'wwan'
option input ACCEPT
option output ACCEPT
option forward REJECT
option masq 1 # 传输伪装开关,WAN 必须设为 1
option mtu_fix 1 # 数据输出时开启 MSS 钳制,WAN 必须设为 1
防火墙 forwarding 转发配置¶
forwarding 配置可以实现两个不同 zone 域之间的数据发送
防火墙 rule 规则¶
默认情况下,所有进入 WAN 口的请求都会被拒绝,如果希望有例外,那么要通过 rule 来实现许可。
# Allow IPv4 ping
config rule
option name Allow-Ping
option src wan # 数据源的 zone 域
option proto icmp # 数据源的协议类型
option icmp_type echo-request
option family ipv4 # IP 协议类型
option target ACCEPT # 规则动作
# 禁止 LAN 口的某个 IP 访问 WAN 口
config rule
option src lan # 数据源的 zone 域
option src_ip 192.168.45.2 # 数据源的 IP 地址
option dest wan # 目的地的 zone 域
option proto tcp
option target REJECT
# 禁止某个 MAC 地址访问 WAN
config rule
option dest wan
option src_mac 00:11:22:33:44:66 # 数据源的 MAC 地址
option target REJECT
# 阻塞某个 zone 上的 ICMP 流量
config rule
option src lan
option proto ICMP
option target DROP
防火墙 redirect 端口转发¶
端口转发允许访问者通过 WAN 口访问 LAN 口中的一个特定端口,并将结果转发回给访问者。
# 将 LAN 口的 80 端口开放到 WAN 口上
config redirect
option src wan # 被转发来源 zone 域
option src_dport 80 # 被转发的端口
option dest lan # 转发到哪个 zone 域
option dest_ip 192.168.16.235 # 转发到哪个 IP 地址
option dest_port 80 # 转发到哪个端口
option proto tcp # 协议类型
# 将所有来自 WAN 口的 TCP 协议访问 22001 的请求都转发给 LAN 中的一台 80 端口的计算机
config redirect
option src wan
option src_dport 22001
option dest lan
option dest_port 22
option proto tcp
# 将 IP 地址 192.168.1.2 设置到 DMZ 隔离区
config redirect
option src wan
option proto all
option dest_ip 192.168.1.2