如何配置Linux 2.6系统下的openwrt防火墙使其允许转发广播ping数据包?
时间: 2024-09-17 12:01:41 浏览: 59
在Linux 2.6系统下的OpenWRT环境中,通常使用的防火墙工具是iptables,如果你想允许转发广播ping(ICMP目的地址为FF01::1或FF02::1)数据包,你需要修改iptables规则。这里是一个基本步骤:
1. **打开终端**:首先通过SSH登录到OpenWRT设备。
2. **查看当前规则**:运行命令 `sudo iptables -L` 来查看当前的iptables规则。
3. **编辑过滤表**:进入nat表以修改网络地址转换规则,以及在mangle表中处理ICMP包。使用 `sudo iptables -t mangle -A PREROUTING` 添加新的条目,并添加 `-p icmp --icmp-type echo-request` 来指定只处理ping请求。
4. **创建转发规则**:添加 `-j NFQUEUE` 或 `-j MARK` 目标,将ping包发送到队列或者标记,以便后续处理。例如:
```
sudo iptables -t mangle -A PREROUTING -p icmp --icmp-type echo-request -o <interface> -j NFQUEUE --queue-num 0
```
将 `<interface>` 替换为你的无线或有线接口名。
5. **设置队列处理器**:对于NFQUEUE,需要创建一个队列处理器脚本来处理ping包。这通常涉及到使用`ip_queue`工具来读取并响应ping包。你可以创建一个新的shell脚本,如 `/etc/ip_queue/ping_handler.sh`,然后配置它来处理广播ping。
6. **启用队列**:运行 `sudo /sbin/service ip_queue restart` 启动或重启队列服务。
7. **测试配置**:最后,发送一个ping包到你的路由器,看看是否能收到响应,确认规则是否生效。
8. **保存更改**:别忘了使用 `sudo iptables-save > /etc/iptables/rules.v4` 保存你的更改,这样下次启动时规则会自动加载。
阅读全文