本帖最后由 有事您说话 于 2016-5-17 19:00 编辑
怎样更好的去使用OpenWRT防火墙? 首先我们要明白,Openwrt 是一个 GNU/Linux 的发行版,和其他大多数的发行版一样,Openwrt的防火墙同样也是基于 iptables 。 其次,Openwrt支持两种途径配置 iptables ,一种就是 Openwrt 自己的 UCI 方式,另一种就是传统的 Linux 方式。 这里我们要探讨的是如何通过 UCI 方式来配置 iptables , 至于传统的 Linux 方式, 请参考官网文章, netfilter. OpenWRT内置防火墙介绍 OpenWRT下防火墙的默认行为已经可以满足路由器的需要,一般情况下无需修改,但一些特殊需求我们还需要动到防火墙配置的。 OpenWRT下的防火墙管理是由配置文件“/etc/config/firewall”进行控制管理的。此文件可以使用UCI进行控制,也可以用vi编辑器直接修改。但如果两种方式都使用时需要注意UCI命令修改会产生缓存,每次修改好要尽快确认保存避免出现冲突。而该文件最终会在/etc/init.d/firewall启动的时候由UCI进行解码并且生成iptables规则生效。因此使用者不需要了解iptables即可通过配置文件实现防火墙控制。 防火墙的修改生效,需要重启防火墙执行以下指令:/etc/init.d/firewallrestart Firewall的文件结构 Firewall中分成default、zone、forwarding、rule、Redirect这五个部分,参见下图: default:这是 firewall 文件的第一个小节。 zone:可以有数个 zone ,zone 又可以包含数个 networkinterfaces,例如LAN,WAN。 forwarding:位于的 zone 下面,主要作用是允许数据封包转发。 rule 以及 redirect:可以看作是 zone 子集,用来扩展进一步的封包限制。 防火墙的基本设置 本节主要介绍了防火墙的基本策略和基本参数。 configdefaults 防火墙默认参数表,这部分参考值既是系统默认的即可,无需修改,参考下图: configzone 用于WAN/LAN域(zone)的参数表,这部分配置也不需要做修改,参考下图: configforwarding 路由转发参数表,这部分配置也不需要做修改,参考下图: configrule 路由器特殊规则使用 如果在你的路由产品中需要开放“允许WAN口访问设备的特定端口”,可以设置本规则(比如开放WAN口允许SSH登入,或允许WAN口访问设备的FTP),一般情况下无需设置。 防火墙规则在/etc/config/firewall中可以有任意数量的规则,这些规则定义了数据传输的动作和行为是被允许还是拒绝。 rule规则设置可以灵活,比如允许来自WAN口的ping,只要输入以下内容: config rule
option name Allow-Ping
option src wan
option proto icmp
option icmp_type echo-request
option family ipv4
option target ACCEPT 比如,我们希望WAN口可以ssh到系统,那么这样就可以: config rule
option name wan-ssh
option src wan
option dest_port 22
option proto tcp
option target ACCEPT 在firewall配置中有大量rule可以参考各位去学习配置方法。默认情况下的规则设置已经足够作为路由器使用。另外需要强调一点,自己再练习过程过后,为了不影响日后正常使用最好还是将之前设置恢复。 更详细的参数说明以及各种配置可以参照官网:http://wiki.openwrt.org/doc/uci/firewall
|