Настройка защиты Linux-сервера: 5 обязательных шагов (с командами)

Настройка защиты Linux-сервера: 5 обязательных шагов (с командами)

Если ты арендовал VPS и просто зашел на него под root - ты уже в зоне риска. Боты начинают брутфорсить стандартный 22-й порт спустя пару минут после появления IP в сети.

Давай закроем дыры. Все команды актуальны для Ubuntu/Debian, но подойдут и для других дистрибутивов с минимальными правками.


1. Переход на SSH-ключи (Bye-bye, Passwords)

Пароли - это слабое звено. Ключ практически невозможно подобрать.

На своем локальном ПК (Linux/Mac или PowerShell в Windows) генерируем ключ:

ssh-keygen -t ed25519 -C "[email protected]"

Копируем ключ на сервер:

ssh-copy-id -p 22 root@IP_ТВОЕГО_СЕРВЕРА

Теперь заходим на сервер и отключаем вход по паролю:

nano /etc/ssh/sshd_config

Найди и измени параметры на следующие:

  • PasswordAuthentication no
  • PubkeyAuthentication yes
  • PermitRootLogin prohibit-password

Перезагружаем SSH:

systemctl restart ssh

2. Меняем стандартный порт SSH

Это «защита от дурака», которая отсекает 90% автоматических сканеров.

В том же файле /etc/ssh/sshd_config найди строку #Port 22. Удали решетку и впиши свой порт:

Port 49122

Важно: перед перезагрузкой SSH убедись, что файервол пропустит тебя по новому порту! (см. пункт 4).


3. Установка и настройка Fail2Ban

Эта штука мониторит логи и банит IP-адреса, которые слишком часто ошибаются.

Установка:

apt update && apt install fail2ban -y

Создаем конфиг для защиты SSH:

nano /etc/fail2ban/jail.local

Вставь туда этот кусок:

[sshd]
enabled = true
port = 49122
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h

Запускаем:

systemctl enable fail2ban --now

4. Настройка файервола (UFW)

Разрешаем только то, что реально нужно.

# Разрешаем наш кастомный SSH порт
ufw allow 49122/tcp

# Разрешаем веб-трафик (HTTP и HTTPS)
ufw allow 80/tcp
ufw allow 443/tcp

# Включаем защиту
ufw enable

Проверить статус можно командой ufw status.


5. Автоматические обновления безопасности

В 2026 году уязвимости находят каждый день. Пусть сервер обновляет ядро и важные патчи сам.

Установка:

apt install unattended-upgrades -y

Активация:

dpkg-reconfigure -plow unattended-upgrades

Выбирай «Yes» в появившемся окне. Теперь критические патчи будут прилетать без твоего участия.


Итог

Теперь твой сервер - это не «проходной двор», а защищенная крепость. Ты отключил пароли, сменил порт, настроил бан за подбор и включил файервол.

Совет от админа: Всегда держи одну открытую сессию в терминале, когда меняешь настройки SSH. Если что-то пойдет не так - ты сможешь поправить конфиг до того, как тебя окончательно «выкинет» из системы.