OpenWrt是一个基于GNU/Linux的发行版,其防火墙实现与Linux防火墙类似,都依赖于netfilter内核模块和用户空间的iptables管理工具。OpenWrt还开发了一套与iptables同地位的netfilter管理工具fw3,该工具侧重于从UCI(Unified Configuration Interface)格式的配置文件中获取过滤信息,并将其下发到内核的netfilter中。
一、OpenWrt防火墙管理界面
OpenWrt的防火墙管理界面通常包含以下四个主要选项:
1.基本设置:
启用SYNflood防护:用于防御拒绝服务攻击(DDoS攻击)。
丢弃无效数据包:直接丢弃无效的数据包。
启用FullConeNAT:允许局域网内设备获得NAT1类型(通常不推荐开启)。
出入转发规则:当接口未加入任何防火墙区域时,遵循这些默认规则。
2.区域:
OpenWrt软路由通常有多个网口,每个网口可以连接到不同的设备,并被分配到不同的防火墙区域。例如,LAN口可能处于LAN防火墙区域,而WAN口则处于WAN防火墙区域。
出站与入站:定义了设备访问网关(或相反)时的流量方向。
IP动态伪装:在LAN区域内开启时,访问的设备会认为网关(而非原始设备)在访问它。WAN区域的IP动态伪装通常需要默认开启。
3.端口转发:
允许通过WAN口访问特定的端口,并将这些访问转发到局域网中的特定设备。例如,可以将WAN口的80端口(HTTP)访问转发到局域网中的某台网站服务器。
4.通信规则与自定义规则:
通信规则:定义了不同区域间的数据包传输策略,如拒绝或开放特定主机之间的通信。
自定义规则:允许执行不属于防火墙框架的任意iptables命令。这些规则在防火墙重启后立即执行。
二、配置文件管理
OpenWrt的防火墙规则、NAT配置、DMZ设置等都是由配置文件`/etc/config/firewall`控制的。这个文件可以使用UCI进行控制,也可以使用vi编辑器直接修改。
修改防火墙规则:对配置文件的修改需要重启防火墙才能生效。可以通过执行`/etc/init.d/firewallrestart`或`/etc/init.d/firewall reload`命令来重启防火墙。
查看当前iptables策略:使用`iptables L`命令可以查看当前启用的iptables策略。
三、防火墙规则配置示例
1.配置WAN口SSH访问:
plaintext
config rule
option name wanssh
option src wan
optiondest_port 22
option proto tcp
option target ACCEPT
2.端口转发示例:
plaintext
config redirect
option name 902080
option proto tcp
option src wan
optionsrc_dport 9020
option dest lan
optiondest_ip 192.168.1.100
optiondest_port 80
3.设置DMZ隔离区:
plaintext
config redirect
option src wan
option proto all
optiondest_ip 192.168.1.2
通过深入了解OpenWrt的防火墙设置,用户可以精细地控制网络流量,提高网络安全性和效率。无论是基本设置、区域管理、端口转发还是自定义规则,OpenWrt都提供了灵活且强大的配置选项,以满足不同用户的需求。