在我的 OpenWRT 实例中,我在 Input filter table 中添加了 iptables 规则,但问题是当我打开我的系统时我发现规则被删除了。我该怎么做才能使规则不会自动删除。
小智 7
有几种方法可以在 OpenWRT 中编辑 iptables。
OpenWRT 将/etc/firewall.user在启动时运行 的内容。它是一个 shell 脚本,所以它看起来像这样:
root@OpenWrt:/etc# cat firewall.user
# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 22 -j DNAT --to 10.1.1.1:2222
iptables -A FORWARD -p tcp -d 10.1.1.1 --dport 2222 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
/etc/firewall.user编辑/etc/firewall.user文件后,您可能想要测试它。这是因为如果您在启动时执行脚本,您可能会看到任何错误。要测试脚本:
iptables -F会起作用,但可能会删除您不需要测试的规则。bash /etc/firewall.user。您想查看脚本中是否有任何错误。如果你收到任何消息,你可能有一个错字。iptables -L并确保您要添加的规则已正确添加。iptables-save 和 iptables-restoreOpenWRT(以及其他发行版),有一个iptables-save命令。通过运行iptables-save > myrules,您将拥有一个文件,其中包含恢复 iptables 规则所需的所有内容。
iptables-restore < myrules 将读取 iptables 规则文件并应用它们。
所以你需要创建一个myrules文件,然后iptables-restore < myrules在启动时运行。您可以通过编辑/etc/rc.local文件在启动时执行。
有关详细信息,iptables-save并iptables-restore可以发现在这里。
该/etc/config/firewall文件也可以编辑。防火墙“提供了一个从 iptables 系统中抽象出来的配置接口,以提供适合大多数常规用途的简化配置模型,同时使用户能够在需要时自行提供所需的 iptables 规则。”
更多信息可以在这里找到
如果你运行的是 Debian 或 Ubuntu,你可以试试这个iptables-persistent包。
sudo apt-get install iptables-persistent
Run Code Online (Sandbox Code Playgroud)
以上将安装服务。然后它将您的规则保存到/etc/iptables/rules.v4和/etc/iptables/rules.v6。
你可以得到更多信息的Ubuntu 12.04在这里的,Ubuntu 14.04在这里。
如果您运行的是 CentOS,您可以通过运行以下命令来保存规则:
/sbin/service iptables save
Run Code Online (Sandbox Code Playgroud)
这会将 iptables 的内容保存到/etc/sysconfig/iptables. 之前的内容/etc/sysconfig/iptables将被保存到/etc/sysconfig/iptables.save.
您可以在此处获取更多信息。
| 归档时间: |
|
| 查看次数: |
8789 次 |
| 最近记录: |