Перейти к основному содержанию
Свежий сервер с доступом по паролю начинают перебирать боты в первые же минуты. Пройди этот чек-лист — он закрывает основные дыры. Команды для Ubuntu/Debian, под root.
1

Вход по SSH-ключу

Настрой вход по ключу и отключи вход по паролю — это убирает сам смысл перебора. Подробно: SSH-ключи.
2

Файрвол

Закрой все входящие порты, кроме нужных. Подробно: Файрвол (ufw).
3

Обновления

Ставь свежие версии пакетов — в них чинят известные уязвимости:
apt update && apt upgrade
Чтобы обновления безопасности ставились сами:
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
4

fail2ban

fail2ban смотрит в логи и временно банит IP, который перебирает пароль по SSH: несколько неудачных попыток — и адрес блокируется на время.Установи:
apt install fail2ban
Настройки правь в jail.local — этот файл не перезаписывается при обновлениях. Создай его:
nano /etc/fail2ban/jail.local
Впиши:
[sshd]
enabled = true
maxretry = 5
findtime = 600
bantime = 3600
Здесь: maxretry — сколько неудачных попыток допустимо, findtime — за какое окно в секундах они считаются (600 = 10 минут), bantime — на сколько секунд банить (3600 = 1 час).Запусти и проверь:
systemctl enable --now fail2ban
fail2ban-client status sshd
Вторая команда покажет, сколько адресов сейчас в бане.
5

Не работай под root постоянно

Под root любая ошибка или взлом — сразу полный контроль над сервером. Заведи обычного пользователя с правом повышать привилегии через sudo:
adduser ИМЯ
usermod -aG sudo ИМЯ
Дальше заходи под ним, а команды, которым нужны права, запускай через sudo.
Прежде чем выходить из root-сессии, проверь в отдельном окне, что под новым пользователем удаётся зайти и выполнить sudo. Иначе рискуешь остаться без административного доступа.
6

Сменить стандартный порт SSH (опционально)

Перенос SSH с порта 22 на другой убирает основную массу слепого перебора. Это не защита сама по себе, но шума в логах станет меньше. В /etc/ssh/sshd_config укажи, например, Port 2222, перезапусти systemctl restart ssh.
Если уже включён ufw, сначала открой новый порт (ufw allow 2222/tcp), и только потом меняй и перезапускай SSH — иначе закроешь себе доступ. Если у тебя установлен fail2ban, после смены порта обнови его конфиг — иначе он перестанет защищать SSH, не подавая виду.
Обнови /etc/fail2ban/jail.local — в секции [sshd] добавь или замени строку:
[sshd]
enabled = true
port = 2222
Затем перезапусти:
systemctl restart fail2ban
Перед экспериментами с доступом и портами сделай бэкап — если что-то пойдёт не так, будет откуда восстановиться. Как: Бэкапы.

Куда дальше

Бэкапы

Настрой резервные копии — на случай если что-то пойдёт не так.

Файрвол

Детальная настройка ufw и управление правилами.