【问题标题】:Managing IPTables with API pref. php [closed]使用 API 首选项管理 IPTables。 php [关闭]
【发布时间】:2020-11-27 03:17:55
【问题描述】:

有没有 API 可以让我用 PHP 管理 IPTables,它是一个项目用浏览器登录构建路由器,有点像 Fonera?

【问题讨论】:

    标签: php api router iptables


    【解决方案1】:

    这可能会解决您的问题。棘手的部分是 sudo 用于 apache 进程和跟踪,其余的是标准 php 和 iptables:

    http://www.andybev.com/index.php/Using_iptables_and_PHP_to_create_a_captive_portal

    【讨论】:

      【解决方案2】:

      我认为最简单的方法是使用 exec() 来触发 IPtables 命令。也许使用您的 PHP 创建一个脚本,然后在最后执行它。我不认为有一个“API”来控制 IPtables 只是很多 Linux 发行版中的可执行文件。

      【讨论】:

      • 通过 web 界面以 root 身份运行 PHP.. ugh.
      • 我并不是说他应该以 root 身份运行它。避免这种情况的一个想法可能是制定规则。验证它们。将它们放在文件系统上的某个位置,让 cron 或其他东西处理根目录。仍然很可疑,但比以 root 身份运行 PHP 更好。
      • 我也在考虑这个问题,但是每次发生变化/有人登录时,您都必须刷新并重新输入很多内容。'基本上重建整个规则集(如果我没记错的话) @ThiefMaster 我知道,安全方面的“呃”是轻描淡写,但有选择吗?不知道是否可以只为 iptables 创建用户。
      • 你也可以看看 webmin 以及他们是如何做到的。据我所知,他们有 IPtables 管理支持。
      • 我查了一下,它是模块“防火墙”,他们使用 cgi 和 perl 来构建表并将它们写入 /etc/iptables.up.rules 这样可以选择但不是当您尝试构建一个可以根据用户登录自动管理规则的系统时非常理想
      【解决方案3】:

      您可以安装rfw,它是 iptables 的 REST API,并作为具有 root 权限的服务器运行。客户端可以使用任何没有特殊权限的 HTTP API,因此您可以使用 PHP 中的 curl 向 rfw 发送命令。

      示例命令:

      PUT /drop/input/eth0/11.22.33.44
      

      对应于:

      iptables -I INPUT -i eth0 -s 11.22.33.44 -j DROP
      

      免责声明:我开始了那个项目。

      【讨论】:

      • 非常酷的项目!我喜欢你的 license.txt ;)
      • 随意复制。许可证本身也是 MIT 许可的。我希望能活得够久,看到不需要所有这些荒谬的许可的那一天。
      猜你喜欢
      • 2022-12-17
      • 2018-05-28
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多