9 个稳定版本
| 1.1.0 | 2024 年 4 月 16 日 |
|---|---|
| 1.0.7 | 2024 年 3 月 3 日 |
| 1.0.6 | 2024 年 2 月 19 日 |
| 1.0.5 | 2023 年 11 月 5 日 |
| 0.3.0 | 2022 年 7 月 7 日 |
#213 在 异步
37 每月下载量
17KB
299 行
DecoySSH
它是一个使用 Rust 和 async-std 编写的紧凑且便携的 SSH 陷阱服务器。
动机
是的,有数百万个 SSH 陷阱服务器,除了原始的那个。其中一些也用 Rust 编写,但我所看到的没有一个使用 async-std。对我来说,其中一些有点过于复杂,而且一些缺乏可配置性。所以这是我的看法。
尽管如此,它应该100%可使用。如果它符合您的陷阱需求,不妨试试。
这个宠物项目并不是为了与任何人竞争,而是为了学习新事物和进行实验。不仅仅是 Rust 和 async-std,还有背后的东西:GitHub 工作流程、交叉编译、容器化等。换句话说,这是一个相当完整的交付周期。(但还没有测试,也许有一天。)
用法
DecoySSH 可作为独立二进制文件、Cargo 包和容器镜像提供。
二进制文件可以在仓库的 发布页面 上找到。如果您找不到所需的平台,您可以自己编译适当的二进制文件。或者,您可以随意创建 PR 或 问题。
Cargo 包可以像往常一样安装
cargo install decoyssh
容器镜像可在 docker.io/aeron/decoyssh 和 ghcr.io/Aeron/decoyssh 上找到。您可以使用它们进行互换。
docker pull docker.io/aeron/decoyssh
# …or…
docker pull ghcr.io/aeron/decoyssh
应用程序选项
使用 -h 或 --help 选项运行应用程序将显示以下内容
Usage: decoyssh [OPTIONS]
Options:
-a, --address [<ADDRS>...] IP address(es) to bind on [default: 0.0.0.0:22]
-d, --delay <DELAY> Message delay (in milliseconds) [default: 10000]
-l, --length <LENGTH> Maximum line length [default: 32]
-c, --capacity <CAP> Maximum number of connections [default: 4096]
-h, --help Print help
-V, --version Print version
所有选项都作为环境变量提供,名称与值名相同,但带有前缀 DECOYSSH_。例如,DECOYSSH_ADDRS,DECOYSSH_DELAY 等。
[!注意] 提供了与旧版 IPv4 和 IPv6 地址的向后兼容选项和环境变量。它们具有与之前相同的别名:
-4和-6,--ipv4-address和--ipv6-address,分别对应DECOYSSH_IPV4_ADDR和DECOYSSH_IPV6_ADDR。
容器运行
运行容器相当直接
docker -d --restart unless-stopped --name decoyssh \
--user=65534 \
-p 22/2222:tcp \
-e DECOYSSH_PORT=2222 \
docker.io/aeron/decoyssh
默认情况下,容器化应用程序仅使用 IPv4 地址和 2222 端口,而不是 22。
如果您计划仅使用 IPv4 绑定,可以使用特定于容器的 DECOYSSH_PORT 变量来更改监听/公开的端口号。否则,请明确使用标准 环境变量。
别忘了无特权用户的小技巧。容器本身不会强制任何特定的 UID。
依赖项
~8–18MB
~260K SLoC