2 releases
0.0.2 | Oct 25, 2021 |
---|---|
0.0.1 | Oct 22, 2021 |
#7 in #iptables
Used in leicester
15KB
387 lines
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.
Dependencies
~5MB
~90K SLoC