Linux

iptables 腳本儲存在 DD-WRT 文件系統的什麼位置?

  • October 27, 2015

我有一個華碩 RT-N16 路由器,我用開源DD-WRT韌體刷新了它。根據我的ssh登錄資訊,我正在執行:

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

我希望能夠自定義 iptables 規則,但在此之前,我希望查看在操作瀏覽器/GUI 界面設置時配置的內置規則的輸出。我知道瀏覽器界面中用於輸入自定義防火牆規則的防火牆腳本選項卡,但我找不到查看輸出的地方。

在成熟的 Linux 系統上,iptables 規則將儲存在類似/etc/sysconfig/iptables. 在 DD-WRT 文件系統上哪裡可以找到這些? 我可以

iptables -L -vn --line-numbers

查看它們的輸出,但我正在尋找的更多是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

往裡看

/tmp/.ipt
/tmp/.rc_firewall

給出了我一直在尋找的東西:iptables 規則,因為它們通常在文件中,如/etc/sysconfig/iptables.

我早些時候發現了這個

dd if=/dev/mem | strings | grep -i iptables

…幸運的是,它適用於精簡的 DD-WRT 文件系統。它並沒有準確地給出我正在尋找的東西,但它輸出了相當多的資訊,我無法以任何其他方式(或至少不能通過單個命令)查明。

仍然必須通過與輸出的比較來確定哪些事情實際上是有效的

iptables -L -vn --line-numbers
iptables -L -vn -t nat --line-numbers
iptables -L -vn -t mangle --line-numbers

我還發現該grep命令確實有效*$$ my apologies for initially stating that it didn’t– I would’ve sworn it didn’t work the last times I had tried. Mea maxima culpa. $$* 使用grep,我發現

/lib/services.so

裡面也有豐富的iptables配置。

引用自:https://unix.stackexchange.com/questions/75780