Rewrite OpenGFW in Rust.
Caution
This project is still in very early stages of development. Use at your own risk.
- High concurrency and fast I/O processing speed: The core engine utilizes Rust's Tokio asynchronous runtime, ensuring excellent concurrency performance and rapid I/O processing capabilities.
- Multi-protocol support: Supports the parsing of multiple network protocols, providing rich packet information to meet diverse network analysis needs.
- Flexible rule definition: Rules are defined using the Rhai scripting language, allowing users to customize matching rules in various ways and apply corresponding actions to matched network packets.
- Streamlined frontend interface: Includes a user-friendly frontend interface that supports custom configuration and log visualization, enhancing the overall user experience.
See this issue
- Make sure you have cargo installed on your system.
- The kernel modules about the connection tracking system should be loaded.
- Need root permission to modify the nftables/iptables and
conntrack
system.
For now, you can execute
cargo run --bin cmd -- --config-file config.yaml --ruleset-file rules.yaml --log-level debug
to run this program.
For the frontend, we are currently refactoring it so it is not stable now.