iptables 脚本存储在 DD-WRT 文件系统上的什么位置?

Pat*_*ler 8 linux iptables router dd-wrt

我有一个华硕 RT-N16 路由器,我已经用开源DD-WRT固件刷过了它。根据我的ssh登录信息,我正在运行:

DD-WRT v24-sp2 mega (c) 2010 NewMedia-NET GmbH
Release: 08/07/10 (SVN revision: 14896)
Run Code Online (Sandbox Code Playgroud)

我希望能够自定义 iptables 规则,但在此之前,我希望查看在操作浏览器/GUI 界面设置时配置的内置规则的输出。我知道浏览器界面中用于输入自定义防火墙规则的防火墙脚本选项卡,但我找不到可以看到输出的地方。

在成熟的 Linux 系统上,iptables 规则将存储在类似/etc/sysconfig/iptables. 我可以在 DD-WRT 文件系统上的哪里找到这些? 我可以

iptables -L -vn --line-numbers
Run Code Online (Sandbox Code Playgroud)

查看它们的输出,但我正在寻找的更多的是iptables-save命令可能输出的内容......以便我可以将适当的规则合并到我的自定义脚本中。

我知道这个版本没有iptables-save命令。我不一定要命令本身,只需要它生成的输出。如果有类似的东西/etc/sysconfig/iptables,我不会在乎拥有iptables-save. 我已经看到可能有不同版本的 DD-WRT 提供类似的东西iptables-save,但我还没有准备好或愿意再次刷新路由器。也许作为最后的手段。

编辑:通常的启动脚本Linux的位置之类的,(例如/etc/init.d/etc/rc...)似乎并不具有(在我已经安装了DD-WRT的构建至少)任何有用的东西。例如,看看/etc/init.d

[/etc/init.d]# ll
-rwxr-xr-x    1 root     root           84 Aug  7  2010 rcS
-rwxr-xr-x    1 root     root           10 Aug  7  2010 S01dummy
[/etc/init.d]# cat rcS
#!/bin/sh
for i in /etc/init.d/S*; do
  $i start 2>&1
done | logger -s -p 6 -t '' &
[/etc/init.d]# cat S01dummy
#!/bin/sh
Run Code Online (Sandbox Code Playgroud)

Pat*_*ler 6

往里看

/tmp/.ipt
/tmp/.rc_firewall
Run Code Online (Sandbox Code Playgroud)

给出了我正在寻找的内容:iptables 规则,因为它们通常位于/etc/sysconfig/iptables.

我早些时候发现了这个

dd if=/dev/mem | strings | grep -i iptables
Run Code Online (Sandbox Code Playgroud)

...幸运的是,它适用于精简的 DD-WRT 文件系统。它没有准确给出我正在寻找的信息,但它输出了很多我无法通过任何其他方式(或至少不能通过单个命令确定)的信息。

仍然需要通过与输出的比较来确定哪些事情实际上是有效的

iptables -L -vn --line-numbers
iptables -L -vn -t nat --line-numbers
iptables -L -vn -t mangle --line-numbers
Run Code Online (Sandbox Code Playgroud)

我还发现该grep命令确实有效[我很抱歉最初声明它没有用 - 我会发誓它在我最后一次尝试时不起作用。Mea maxima culpa。] 使用grep,我发现

/lib/services.so
Run Code Online (Sandbox Code Playgroud)

里面也有丰富的iptables配置。


Gil*_*il' 5

有许多 *WRT 发行版变体,不同的设备以不同的方式设置,所以我不确定这是否适用于您的配置,但可能适用。

基本的 *WRT 配置有一个只读的根文件系统,所以它不能在文件系统中保存自定义。相反,启动会从NVRAM加载各种(依赖于变体的)设置,它被组织为一个简单的键值对列表。防火墙规则存储在与变体相关的NVRAM 条目中。查找名称包含firewall或值包含iptables或类似内容的一个。

ssh ROUTER_HOSTNAME nvram export --dump >nvram.txt随时运行以探索路由器的 NVRAM 内容。