В своем непрекращающемся стремлении защитить свои серверы Linux вы, вероятно, часто сталкивались с тем, что взломы происходят через SSH.
Независимо от того, насколько он безопасен, его все равно можно взломать.
Вот почему вам может потребоваться установить тарпит для этой службы.
По сути, тарпит будет работать на стандартном порте SSH, и когда хакер попытается прорваться через этот порт, он застрянет в бесконечном цикле.
Вот как работает endlessh.
Установите его и настройте на порту 22., и скрипткидди попадут в ловушку.
Я покажу вам, как это сделать.
Что нам понадобится
Я продемонстрирую, как это делается на Ubuntu Server 20.04, хотя endlessh можно установить на большинстве серверов Linux.
Вам понадобится рабочий сервер и пользователь с привилегиями sudo.
Как установить endlessh
Хотя вы можете установить endlessh из стандартных репозиториев, нам не нужна эта версия, поскольку она не включает необходимый служебный файл systemd.
Вместо этого клонируйте endlessh из репозитория GitHub с помощью команды:
git clone https://github.com/skeeto/endlessh
После установки перейдите во вновь созданный каталог с помощью команды:
cd endlessh
Скомпилируйте endlessh с помощью команды:
make
Установите endlessh с помощью команды:
sudo make install
Как настроить endlessh
По умолчанию endlessh может работать только на портах выше 1024, но мы хотим использовать этот инструмент с портом по умолчанию.
Для этого необходимо внести изменения в служебный файл systemd.
Выполните команду:
sudo nano /etc/systemd/system/endlessh.service
В этом файле раскомментируйте (удалите символы #) следующую строку:
#AmbientCapabilities=CAP_NET_BIND_SERVICE
Затем нам нужно закомментировать (добавить символ # в начало строки) следующее:
PrivateUsers=true
Сохраните и закройте файл.
Далее запускаем команду:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
Затем откройте файл конфигурации endlessh с помощью команды:
sudo nano /etc/endlessh/config
Нам надо изменить порт с 2222 на 22.
Если вы обнаружите, что в этом файле ничего нет, вставьте следующее:
# The port on which to listen for new SSH connections.
Port 22
# The endless banner is sent one line at a time. This is the delay
# in milliseconds between individual lines.
Delay 10000
# The length of each line is randomized. This controls the maximum
# length of each line. Shorter lines may keep clients on for longer if
# they give up after a certain number of bytes.
MaxLineLength 32
# Maximum number of connections to accept at a time. Connections beyond
# these are not immediately rejected but will wait in the queue.
MaxClients 4096
# Set the detail level for the log.
# 0 = Quiet
# 1 = Standard, useful log messages
# 2 = Very noisy debugging information
LogLevel 0
# Set the family of the listening socket
# 0 = Use IPv4 Mapped IPv6 (Both v4 and v6, default)
# 4 = Use IPv4 only
# 6 = Use IPv6 only
BindFamily 0
Сохраните и закройте файл.
Как настроить SSH
Теперь нам нужно настроить SSH для использования порта, отличного от 22.
Откройте файл конфигурации демона с помощью команды:
sudo nano /etc/ssh/sshd_config
На:
Port 26
Сохраните и закройте файл.
Теперь нам нужно перезагрузить сервер, чтобы бесконечные изменения вступили в силу.
После перезагрузки сервера снова войдите в систему и запустите/включите службу endlessh с помощью команд
sudo systemctl start endlessh
sudo systemctl enable endlessh
Как протестировать endlessh
Откройте терминал на другом компьютере и попробуйте войти на сервер endlessh с помощью команды:
Где USER – это действующий пользователь на удаленном сервере, а SERVER – это IP-адрес сервера.
Вы должны увидеть случайные линии, указывающие, что вы застряли в бесконечном брезенте.
Нажмите комбинацию клавиш Ctrl + c, чтобы выйти из цикла.
Поздравляем, вы установили свой первый тарпит на сервере Linux.
Просто помните, что когда вы входите на этот сервер через SSH, вам нужно будет сделать это с помощью:
Где USER – это действующий пользователь на удаленном сервере, а SERVER – это IP-адрес сервера.
Все вроде как нормально.
Однако – где в конфиг нарисовать путь до лог файла?
По умолчанию Endlessh гадит в syslog.