我在 Ubuntu 22.04 上安装了 tarpit-endlessh(apt install endlessh),并在 /etc/endlessh/config 中进行了以下设置:
port 22
Delay 10000
MaxLineLength 32
MaxClients 4096
LogLevel 0
BindFamily 0
ss -tulpen | grep ssh
显示 endlessh 已将其设置为端口 2222。为什么即使我在 endlessh 配置中设置了端口 22,端口 2222 仍被监视?
并且 /etc/systemd/system/ 中只有一个空的 endlessh.service 文件,而非空的 endlessh.service 文件位于 /lib/systemd/system/ 中
在 /etc/systemd/system/endlessh.service 中我做了以下更改:
如果你希望 Endlessh 绑定在 <1024 的端口上
- 跑步:
setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
- 取消注释以下行
AmbientCapabilities=CAP_NET_BIND_SERVICE
- 注释下一行
#PrivateUsers=true
但这不起作用:
setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
我明白了:
无法设置文件“/usr/local/bin/endlessh”的功能(没有此文件或目录)文件的功能参数值不允许。或者该文件不是常规(非符号链接)文件
編輯:之後
systemctl 守护进程重新加载
现在它监听的是 22 端口。虽然这个命令仍然不起作用:
设置cap'cap_net_bind_service = + ep'/usr/local/bin/endlessh
为什么大多数关于 Endlessh 的教程都写着从 git 编译它,而不是使用 apt install endlessh 轻松安装它?
答案1
程序启动时会从配置文件中读取端口 22 的规范。一旦更改了配置文件,就必须重新启动程序才能让其读取新的、改进的配置文件。