rust-iptables 0.0.2

A iptables bindings for Rust.
Documentation

rust-iptables

A iptables bindings for Rust.

Overview

Rust bindings for iptables, it provides a few major components:

  • high-level handles, such as save/restore
  • table/chain/rule support
  • IPv4/IPv6 support

Example

A basic chain/table example.

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

Then, on your 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());
}

More examples can be found here.

Supported Rust Versions

This library is verified to work in rustc 1.51.0 (nightly), and the support of other versions needs more testing.

License

This project is licensed under the Apache License 2.0.