1 个不稳定版本
0.1.0 | 2023 年 11 月 21 日 |
---|
#17 在 #icmp
61KB
1.5K SLoC
Icmptunnel-rs
一个完整的 icmp 隧道 Rust 实现,包括身份验证和加密。灵感来自 https://github.com/DhavalKapil/icmptunnel
快速入门
git clone https://github.com/fabi321/icmptunnel-rs.git
cd icmptunnel-rs
cargo build --release
运行服务器
sudo ./target/release/icmptunnel-rs server --password <password>
运行客户端
sudo ./target/release/icmptunnel-rs client --password <password> --server-address <server ip>
特性
- 身份验证
- 透明服务器(如果数据包不是隧道数据包,将回复正常的 icmp 回显响应)
- 加密
- 为连接的客户端自动分配 IP(每个服务器最多 253 个客户端)
- 会话处理带超时
- 会话密钥更新
已知限制
- 传输介质的 MTU 是硬编码的(如果服务器和客户端之间的 MTU 低于硬编码的 MTU,则不支持)
- 仅支持 IPv4,包括传输的数据包和封装的 ICMP 数据包
- 仅在 Linux 上测试过
已知安全问题
- 密码以明文形式暴露,因为它们在进程列表中可见
- 可以重用散列密码。然而,以这种方式创建的会话实际上是无用的,因为攻击者需要私有的 dh 密钥才能实际使用它
- 时间侧信道允许服务器发现(至少在理论上)
依赖项
~8–18MB
~233K SLoC