用 Rust 实现的端口敲门工具: Knock

查看 19|回复 0
作者:timothyye   
周末想用最近学的 Rust 来练手一下,于是参考一个很古老的 C 语言实现的端口敲门程序 knock,用 Rust 实现了一个版本。

Port Knocking 是一种网络安全技术,通过对服务器上的一系列预定义端口进行特定顺序的“敲门”(即发送数据包)来触发服务器上的一种反应,通常是打开一个原本关闭的端口,从而允许发起敲门序列的客户端建立连接。这种方法的优点在于,对外界而言,受保护的服务端口在没有接收到正确的敲门序列之前都是不可见的,从而增加了系统的安全性。
这个工具分为客户端和服务器端两部分:
服务器端 (knockd): 在服务器上运行,负责监听预设的一系列端口上的敲门尝试。当它检测到来自同一 IP 的特定序列时,会执行配置文件中定义的命令,如修改防火墙规则来允许来自该 IP 的连接。
客户端 (knock-cli): 用于发起敲门序列。用户可以通过客户端配置文件指定目标服务器地址和敲门的端口序列。执行敲门动作后,如果服务器端正确识别了敲门序列,客户端的 IP 地址将被允许访问原本隐藏或受限的服务。
项目地址: https://github.com/TimothyYe/knock
欢迎 Star 和贡献 Pull Request.
您需要登录后才可以回帖 登录 | 立即注册

返回顶部