Я установил на Ubuntu 22.04 tarpit-endlessh (apt install infiniteh) и сделал следующие настройки в /etc/endlessh/config:
port 22
Delay 10000
MaxLineLength 32
MaxClients 4096
LogLevel 0
BindFamily 0
ss -tulpen | grep ssh
показывает мне, что infiniteh настроен на порт 2222. Почему порт 2222 отслеживается, хотя у меня в конфигурации infiniteh установлен порт 22?
И есть только пустой файл infiniteh.service в /etc/systemd/system/ Вместо этого непустой файл infiniteh.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. Хотя эта команда все еще не работает:
setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
Почему в большинстве руководств по Endlessh пишут о том, как скомпилировать его из git, а не о том, как легко установить его с помощью apt install infiniteh?
решение1
Спецификация порта 22 считывается из файла конфигурации при запуске программы. После изменения файла конфигурации необходимо перезапустить программу, чтобы она могла считать новый, улучшенный файл конфигурации.