gpt4 book ai didi

linux - 如何以编程方式访问 iptables?

转载 作者:IT王子 更新时间:2023-10-29 01:02:14 25 4
gpt4 key购买 nike

有没有一种方法可以在不使用 shell 脚本的情况下以编程方式查询 iptables?我没有使用 shell 脚本来运行 iptables 命令和 grep 输出的自由。是否有使用 GNU C 对 iptables 的 native (API)级别访问?至少我想查询 iptables 的默认策略。

我希望使用/proc 文件系统,但我不认为它是 implemented yet.

最佳答案

您可以与名为 libiptciptables 库交互。

这就是我创建 iptables 的 Perl 接口(interface)的方式:CPAN IPTables::libiptc

但是libiptc 库只为您提供了基本 结构的API。访问和解析单个规则有点复杂,因为它依赖于dyn-loading单个target/match模块的共享库.

我在 CPAN module 中的方法是我已与 iptables.c 中的 do_command() 链接,以进行规则 更改。

您需要了解的另一件事是:

单个 iptables 调用,执行这些操作:

  1. 将整个规则集从内核复制到用户空间
  2. libiptc解析
  3. 执行一项或多项更改(通常只需通过 iptables cmd 进行一项更改)
  4. 通过 libiptc 将其转换为内核 blob 格式
  5. 将整个(新)规则集从用户空间复制到内核。

因此,如果您每次只进行一次更改,那么这是一个繁重的过程。但是您也可以利用它来发挥自己的优势,同时执行许多更改,并将这些更改显示为由/为内核进行的单个原子更改。

关于linux - 如何以编程方式访问 iptables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8603134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com