一、基础知识
OpenWrt防火墙是OpenWrt路由器系统中的一个重要功能,通过这个功能可以管理和控制路由器的网络访问规则,有效的保护路由器及其下属设备的网络安全。
OpenWrt防火墙支持以下四种类型的规则:
- Zone规则
- Forwarding规则
- Input规则
- 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