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