在启动时运行 iptables 命令(在锁定的 IoT 设备上)

在启动时运行 iptables 命令(在锁定的 IoT 设备上)

我正在使用运行 Linux 内核 3.12.70 的供应商自定义发行版的蜂窝调制解调器/路由器。

我想添加自定义iptables规则,但它们在重新启动时不断被删除。

我试过了https://help.ubuntu.com/community/IptablesHowTo#Saving_iptables解决方案2,但这不起作用。

顺便说一句,当我在 上运行 cat 时iptables-restoreipstables-save我得到了乱码,所以它们可能是二进制文件或加密保护的。

但是,如果我iptables通过 SSH 运行单个命令,它们会一直保持并工作直到重新启动。

我正在尝试找出一种iptables在重新启动时通过 CLI 自动运行单个规则的方法。

我添加了 a#!/bin/sh -e以及我想要添加的行,将其放入init.d目录中,使其可执行,运行update-rc.d,然后rc5.d通过 将其复制到目录中ln -s

答案1

  1. sudo -s(这是以root身份登录)
  2. mount -o remount,rw /(这将以读写模式挂载整个文件系统)
  3. 在 /etc/init.d/ 中创建一个脚本(在我的例子中,我创建了脚本 install_firewall.sh )
  4. “更新-rc.d开始99 5。” (使用 update-rc.d 命令将脚本添加到所需的运行级别,在我的例子中,“update-rc.d install_firewall.sh start 99 5 。”命令将 install_firewall.sh 置于运行级别 5,优先级为99 意味着它将是重新启动后运行的最后一个脚本)。
  5. 在我的脚本中,我添加了 35 秒的延迟,以确保应用代码中的所有防火墙规则,然后我们开始通过脚本对其进行操作。

'#!/bin/bash'

sleep 35
iptables [...]//Add custom iptables rules here
exit 0

相关内容