feat(ostp-client-linux): add CLI VPN client for Linux
New CLI client for Linux with TUN interface support: - Interactive setup wizard with profile management - Connect/disconnect commands with root privilege check - Status monitoring (interface stats, traffic counters) - Test connection (handshake verification) - Profile management (add/remove/set-default) - Anti-VM detection (production mode only) - Stealth mode (TLS mimicry, geo-SNI selection) Features: - Static musl binary (2.0 MB) - universal Linux - Config storage: ~/.config/ostp/profiles.json - TUN interface: ostp0 (10.X.Y.Z) - Security: libc::geteuid() root check, ostp-guard integration - Error handling: graceful disconnect on Ctrl+C Commands: - ostp-client-linux setup # Interactive wizard - ostp-client-linux connect --profile default - ostp-client-linux connect --server 1.2.3.4:443 --psk HEX - ostp-client-linux status # Show connection info - ostp-client-linux disconnect # Kill running client - ostp-client-linux profiles list # List saved profiles - ostp-client-linux test --server X --psk Y Distribution updates: - Added ostp-client-linux (2.0 MB) to linux-x64 package - Updated SHA256SUMS with all 3 binaries - Updated README.md with client installation guide - Rebuilt ostp-server-linux-x64.tar.gz (6.86 MB total) Note: TUN interface and traffic relay are TODO (placeholders)
This commit is contained in:
29
ostp-client-linux/Cargo.toml
Normal file
29
ostp-client-linux/Cargo.toml
Normal file
@@ -0,0 +1,29 @@
|
||||
[package]
|
||||
name = "ostp-client-linux"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
description = "OSTP Stealth VPN Client for Linux"
|
||||
|
||||
[[bin]]
|
||||
name = "ostp-client-linux"
|
||||
path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
ostp = { path = "../ostp" }
|
||||
ostp-guard = { path = "../ostp-guard" }
|
||||
osn = { path = "../osn" }
|
||||
tokio.workspace = true
|
||||
anyhow.workspace = true
|
||||
tracing.workspace = true
|
||||
tracing-subscriber.workspace = true
|
||||
clap.workspace = true
|
||||
hex.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
dialoguer.workspace = true
|
||||
console.workspace = true
|
||||
libc = "0.2"
|
||||
nix = { version = "0.29", features = ["net", "ioctl"] }
|
||||
|
||||
[target.'cfg(target_os = "linux")'.dependencies]
|
||||
# Linux-specific TUN interface
|
||||
Reference in New Issue
Block a user