Skip to content

tkob-vh/gfw-rs

Repository files navigation

gfw-rs

Rewrite OpenGFW in Rust.

Caution

This project is still in very early stages of development. Use at your own risk.

Features

  • 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.

WIP

See this issue

Requriements

  • 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.

How to run

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.