#iptables #bindings #netfilter

rust-iptables

Rust 的 iptables 绑定库

2 个版本

0.0.2 2021年10月25日
0.0.1 2021年10月22日

#7#iptables


leicester 中使用

MIT/Apache

15KB
387

rust-iptables

Rust 的 iptables 绑定库。

概述

Rust 对 iptables 的绑定,提供了一些主要组件

  • 高级处理,如保存/恢复
  • 表/链/规则支持
  • IPv4/IPv6 支持

示例

一个基本的链/表示例。

[dependencies]
rust-iptables = { version = "0.0.2" }

然后在你的 main.rs 中

use rust_iptables::iptables;

fn main() {
    let ipt = iptables::new().unwrap();

    assert!(ipt.new_chain("nat", "TESTINGCHAIN").is_ok());
    assert!(ipt.append("nat", "TESTINGCHAIN", "-j ACCEPT").is_ok());
    assert!(ipt.exists("nat", "TESTINGCHAIN", "-j ACCEPT").unwrap());
    assert!(ipt.delete("nat", "TESTINGCHAIN", "-j ACCEPT").is_ok());
    assert!(ipt.save_all("test").is_ok());
    assert!(ipt.restore_all("test").is_ok());
    assert!(ipt.delete_chain("nat", "TESTINGCHAIN").is_ok());

    assert!(ipt.change_policy("filter", "FORWARD", "ACCEPT").is_ok());
}

更多示例可以在这里找到。

支持的 Rust 版本

此库已验证可在 rustc 1.51.0 (nightly) 中运行,其他版本的兼容性需要更多测试。

许可证

本项目采用Apache License 2.0 许可。

依赖关系

~5MB
~90K SLoC