您的位置:

OpenWrt防火墙

一、基础知识

OpenWrt防火墙是OpenWrt路由器系统中的一个重要功能,通过这个功能可以管理和控制路由器的网络访问规则,有效的保护路由器及其下属设备的网络安全。

OpenWrt防火墙支持以下四种类型的规则:

  1. Zone规则
  2. Forwarding规则
  3. Input规则
  4. Output规则

其中Zone规则是OpenWrt防火墙的一个核心概念,表示一组网络接口的集合。

一般情况下,OpenWrt防火墙中的规则会根据先来后到的原则进行匹配,即首先匹配Zone规则,然后根据规则中的定义进行匹配。

二、设置Zone规则

设置Zone规则是OpenWrt防火墙中的第一步,可以将网络接口划分为不同的安全域,提高防火墙的安全性。

# 创建Zone
uci set firewall.@zone[0]=zone
uci set firewall.@zone[0].name=lan
uci set firewall.@zone[0].input=ACCEPT
uci set firewall.@zone[0].output=ACCEPT
uci set firewall.@zone[0].forward=ACCEPT
uci set firewall.@zone[0].network=lan

# 设置防火墙规则
uci set firewall.@rule[0]=rule
uci set firewall.@rule[0].name=Allow-DHCP-Renew
uci set firewall.@rule[0].src=lan
uci set firewall.@rule[0].proto=udp
uci set firewall.@rule[0].dest_port=68
uci set firewall.@rule[0].target=ACCEPT

# 应用设置
uci commit firewall
/etc/init.d/firewall reload

三、防止DDoS攻击

DDoS攻击是网络安全中的一种比较常见的攻击方式,可以通过一定的手段让大量的流量涌向目标设备,导致网络瘫痪。

OpenWrt防火墙可以通过设置DoS规则来限制同一个IP地址的连接数,从而减少DDoS攻击的影响。

# 配置DoS规则
uci set firewall.@defaults[0]=defaults
uci set firewall.@defaults[0].syn_flood=1
uci set firewall.@defaults[0].synflood_rate=500/s
uci set firewall.@defaults[0].synflood_burst=1000
uci set firewall.@zone[1]=zone
uci set firewall.@zone[1].name=wan
uci set firewall.@zone[1].input=REJECT
uci set firewall.@zone[1].output=ACCEPT
uci set firewall.@zone[1].forward=REJECT
uci set firewall.@zone[1].masq=1
uci set firewall.@zone[1].mtu_fix=1
uci set firewall.@zone[1].network=wan

# 应用设置
uci commit firewall
/etc/init.d/firewall reload

四、防止端口扫描

端口扫描是黑客攻击常用的一种手段,可以通过扫描目标设备的端口,获取其开放的服务和应用,从而进行下一步攻击。

OpenWrt防火墙可以通过设置Port Scan规则,限制相同来源IP在一定时间内的端口扫描次数。

# 设置Port Scan规则
uci set firewall.@rule[1]=rule
uci set firewall.@rule[1].name="Port Scan"
uci set firewall.@rule[1].src=*
uci set firewall.@rule[1].proto=tcp
uci set firewall.@rule[1].dest_port=1:65535
uci set firewall.@rule[1].recent_conn=accept
uci set firewall.@rule[1].recent_name="portscan"
uci set firewall.@rule[1].recent_limit=20/s
uci set firewall.@rule[1].recent_burst=50
uci set firewall.@rule[1].target=REJECT
uci set firewall.@rule[1].extra='--reject-with tcp-reset'

# 应用设置
uci commit firewall
/etc/init.d/firewall reload

五、屏蔽特定IP地址

对于存在安全问题的IP地址,需要进行屏蔽,防止其对系统造成攻击。

OpenWrt防火墙可以通过设置IP规则,屏蔽特定的IP地址。

# 设置IP规则
uci set firewall.@rule[2]=rule
uci set firewall.@rule[2].name="Block IP"
uci set firewall.@rule[2].src=*
uci set firewall.@rule[2].family=ipv4
uci set firewall.@rule[2].target=DROP
uci set firewall.@rule[2].src_ip=192.168.1.100

# 应用设置
uci commit firewall
/etc/init.d/firewall reload