Telegram
+998 (71) 205-80-00

Базовая защита сервера: SSH, firewall, fail2ban

Опубликовано: 25.07.26
Поделиться

Свежий VPS без настройки — это открытая дверь: боты круглосуточно перебирают пароли по SSH и ищут дыры. Хорошая новость — базовая защита занимает 15–20 минут и закрывает подавляющее большинство автоматических атак. Ниже — пошаговый минимум с командами для двух семейств ОС: Ubuntu / Debian (пакетный менеджер apt, firewall ufw) и AlmaLinux / Rocky / CentOS (пакетный менеджер dnf, firewall firewalld).

С чего начать

  • Обновите систему сразу после создания сервера.
  • Создайте отдельного пользователя с правами администратора — не работайте под root.
  • Настройте вход по SSH-ключу и отключите вход по паролю.
  • Включите firewall и оставьте только нужные порты.
  • Поставьте fail2ban и автоматические обновления безопасности.

Порядок важен. Сначала настройте и проверьте вход по ключу для нового пользователя, и только потом отключайте пароль и root — иначе можно случайно закрыть себе доступ. Держите вторую SSH-сессию открытой, пока не убедитесь, что новый вход работает.

1. Обновления системы

Ubuntu / Debian

sudo apt update && sudo apt upgrade -y

AlmaLinux / Rocky / CentOS

sudo dnf upgrade -y

Затем включите автоматические обновления безопасности, чтобы критичные патчи ставились сами.

Ubuntu / Debian

sudo apt install -y unattended-upgrades sudo dpkg-reconfigure -plow unattended-upgrades   # выберите «Yes»

AlmaLinux / Rocky / CentOS

sudo dnf install -y dnf-automatic # в /etc/dnf/automatic.conf укажите: apply_updates = yes sudo systemctl enable --now dnf-automatic.timer

2. Отдельный пользователь вместо root

Работа под root опасна: любая ошибка или взлом сразу дают полный контроль. Заведите обычного пользователя и дайте ему права администратора. Обратите внимание: в Ubuntu/Debian это группа sudo, в AlmaLinux/Rocky/CentOS — группа wheel.

Ubuntu / Debian

sudo adduser myuser sudo usermod -aG sudo myuser

AlmaLinux / Rocky / CentOS

sudo useradd myuser sudo passwd myuser sudo usermod -aG wheel myuser

Проверьте, что новый пользователь может выполнять команды через sudo, прежде чем ограничивать root.

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

Ключ надёжнее пароля и не поддаётся перебору. Команды ниже одинаковы для всех ОС. Если ключа ещё нет, создайте его на своём компьютере:

ssh-keygen -t ed25519 -C "moy-noutbuk"

Скопируйте публичный ключ на сервер (для нужного пользователя):

ssh-copy-id myuser@IP_сервера # затем проверьте вход по ключу: ssh myuser@IP_сервера

Приватный ключ не передавайте никому. На сервер загружается только публичный ключ (.pub). Приватный остаётся на вашем устройстве.

4. Усиление настроек SSH

После того как вход по ключу работает, отключите вход под root и по паролю. Файл конфигурации /etc/ssh/sshd_config одинаков для всех ОС. Задайте (или раскомментируйте) параметры:

PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes

Примените изменения. Важно: служба SSH в Ubuntu/Debian называется ssh, в AlmaLinux/Rocky/CentOS — sshd.

Ubuntu / Debian

sudo systemctl restart ssh

AlmaLinux / Rocky / CentOS

sudo systemctl restart sshd

Не закрывайте текущую сессию сразу. Откройте новое SSH-подключение и убедитесь, что вход по ключу работает. Если что-то не так — вернёте настройки в открытой сессии.

Смена стандартного порта 22 на нестандартный — необязательна, но снижает шум в логах от ботов. Если меняете порт, откройте его в firewall (а на RHEL с включённым SELinux — ещё и разрешите порт: sudo semanage port -a -t ssh_port_t -p tcp <порт>).

5. Firewall

Правило простое: закрыть всё, открыть только нужное (обычно SSH и веб-порты). В Ubuntu/Debian это ufw, в AlmaLinux/Rocky/CentOS — firewalld.

Ubuntu / Debian (ufw)

sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow OpenSSH        # или ваш SSH-порт sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable sudo ufw status

AlmaLinux / Rocky / CentOS (firewalld)

sudo systemctl enable --now firewalld sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload sudo firewall-cmd --list-all

Сначала разрешите SSH, потом включайте firewall. Если закрыть входящие без правила для SSH, можно потерять доступ к серверу.

6. Защита от перебора (fail2ban)

fail2ban читает логи и банит IP, которые перебирают пароли. В Ubuntu/Debian он ставится напрямую; в AlmaLinux/Rocky/CentOS нужен репозиторий EPEL.

Ubuntu / Debian

sudo apt install -y fail2ban sudo systemctl enable --now fail2ban

AlmaLinux / Rocky / CentOS

sudo dnf install -y epel-release sudo dnf install -y fail2ban sudo systemctl enable --now fail2ban

Проверка статуса и забаненных адресов по SSH (одинаково):

sudo fail2ban-client status sshd

Настройка — в /etc/fail2ban/jail.local. Там задают время бана и число попыток. На RHEL для защиты SSH создайте секцию [sshd] с enabled = true и backend = systemd (или logpath = /var/log/secure); в Ubuntu/Debian SSH-джейл включён по умолчанию.

7. Убрать лишнее

  • Меньше сервисов — меньше рисков. Отключите то, что не используете: sudo systemctl disable --now <сервис>.
  • Проверьте открытые порты: sudo ss -tulpn — наружу должно смотреть только необходимое (команда работает во всех ОС).
  • Не ставьте ПО «на пробу» на боевой сервер и удаляйте неиспользуемые пакеты.

SELinux на AlmaLinux/Rocky/CentOS — не отключайте. Он добавляет слой защиты. Оставьте режим enforcing (проверка — getenforce). В Ubuntu/Debian аналогичную роль играет AppArmor, включённый по умолчанию.

8. Бэкапы — часть безопасности

Даже идеально защищённый сервер стоит иметь возможность восстановить. Резервные копии — это защита от шифровальщиков, ошибок и сбоев.

  • Снапшоты сервера в панели serverplus — быстрый откат.
  • Выгрузка данных в объектное S3-хранилище serverplus — копия отдельно от сервера.
  • Правило 3-2-1: три копии, на двух носителях, одна — вне сервера.

Проверяйте восстановление. Бэкап, из которого ни разу не восстанавливались, — это ещё не бэкап. Периодически пробуйте развернуть копию.

Короткий чек-лист

  • Система обновлена, включены автообновления безопасности.
  • Есть отдельный пользователь-администратор (sudo или wheel), root по SSH отключён.
  • Вход по SSH-ключу, пароль по SSH отключён.
  • Firewall включён (ufw или firewalld), открыты только нужные порты.
  • fail2ban работает.
  • SELinux/AppArmor в рабочем режиме; настроены снапшоты и бэкапы в S3.

Частые вопросы

Обязательно ли отключать вход по паролю?

Настоятельно рекомендуется. Пароль можно подобрать, ключ — практически нет. Если пароль нужен как запасной вариант, сделайте его длинным и уникальным и обязательно поставьте fail2ban.

Команды не совпадают с моей ОС.

В статье два набора: apt/ufw — для Ubuntu/Debian, dnf/firewalld — для AlmaLinux/Rocky/CentOS. Узнать свою систему: cat /etc/os-release.

Стоит ли менять стандартный SSH-порт?

Это не «защита» сама по себе, но снижает поток автоматических атак и мусор в логах. На RHEL с SELinux не забудьте разрешить новый порт (см. раздел про SSH). Полезно в связке с ключами и fail2ban, а не вместо них.

Я случайно закрыл себе доступ по SSH. Что делать?

Воспользуйтесь веб-консолью (VNC) в панели serverplus — она даёт доступ к серверу в обход SSH. Через неё можно вернуть настройки sshd_config или правила firewall.

Как понять, что сервер пытались взломать?

Смотрите логи входа и статус fail2ban. Журнал входа: /var/log/auth.log в Ubuntu/Debian и /var/log/secure в AlmaLinux/Rocky/CentOS (либо sudo journalctl -u ssh / sshd). Много неудачных попыток — норма для интернета; при ключах и firewall они безрезультатны.

Рекомендуем
Подберём лучшее решение под ваш проект
Заполните данные и с вами свяжется менеджер для подтверждения
Номер тех. поддержки
+998 (71) 205-80-00
Email для связи
info@serverplus.uz
Часы работы
Как вам удобнее получить консультацию?
Что вас интересует? (необязательно)
Бесплатная консультация
Ответит инженер, а не оператор
Без спама и навязчивых продаж
Хотите сначала попробовать самостоятельно?Каждому новому пользователю начисляется 100 000 сум бонусов для тестирования VPS, Dedicated Server, S3-хранилища и Kubernetes.
Зарегистрироваться и получить бонус
Мы не передаем ваши данные третьим лицам
Подпишитесь на нашу рассылку

Будьте одними из первых, кто узнает новости из сферы хостингов