ЛогоИнструмент Дня

Базовая защита сервера: UFW, смена порта SSH и запрет root-входа

23 октября 2026 · Безопасность

Автор: Александр Дрон · Опубликовано: 23 октября 2026 · Обновлено: 23 октября 2026

Схема базовой защиты сервера: фильтр UFW, нестандартный порт SSH и запрет входа под root
Базовая защита сервера: UFW, смена порта SSH и запрет root-входа
Иллюстрация создана для «Инструмента дня». Автор — Александр Дрон.

Новый сервер после установки открыт для всего мира: SSH слушает порт 22, вход под root разрешён, пароль часто приходит в письме от хостера. Сканеры находят такую машину за несколько часов. Три настройки — файрвол UFW, нестандартный порт SSH и sudo-пользователь вместо root — закрывают самый частый сценарий взлома и занимают меньше часа.

Коротко

Порядок важен: сначала создайте рабочего пользователя и проверьте вход по ключу, потом меняйте порт, потом включайте файрвол. Каждый шаг проверяется из нового окна терминала — иначе можно запереть себя снаружи.

  • Подойдёт: владельцам VPS на Ubuntu и Debian, которые впервые настраивают сервер.
  • Инструменты: ufw, openssh-server, sudo — всё уже есть в системе.

Порядок, который не запирает снаружи

Все три настройки легко превратить в способ потерять собственный сервер. Причина одна: SSH — единственная дверь, а её меняют изнутри. Поэтому правило простое: сначала готовим новый вход, проверяем его в отдельном окне терминала и только потом закрываем старый. Никогда не выходим из единственной рабочей сессии, не убедившись, что новый вход работает.

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

Шаг 1. Рабочий пользователь вместо root

Вход под root опасен не сам по себе, а тем, что у него нет ограничений: любая ошибка в команде сразу бьёт по системе, а подбор пароля даёт атакующему всё. Рабочий пользователь с sudo решает обе проблемы: повседневная работа идёт с обычными правами, а повышение — по одной команде и с паролем.

  1. Создайте пользователя и дайте ему sudo: adduser alex, затем usermod -aG sudo alex.
  2. Скопируйте ключ: rsync --archive --chown=alex:alex ~/.ssh /home/alex — так ключ, которым вы уже входите под root, появится у нового пользователя.
  3. Проверьте вход в новом окне: ssh alex@IP. Не закрывая старое окно, убедитесь, что видите приглашение и что sudo -v спрашивает пароль.
  4. Только теперь запретите вход root: в /etc/ssh/sshd_config поставьте PermitRootLogin no и перезапустите службу.

Заодно отключите вход по паролю — PasswordAuthentication no. Это самая важная строка из всех: пока пароль разрешён, любой бот может подбирать его круглосуточно. С ключом подбирать нечего, а брутфорс в логах исчезает почти полностью. Перед изменением проверьте, что ключ действительно работает, иначе останется только консоль хостера.

Шаг 2. Нестандартный порт SSH

Порт 22 сканируют все кому не лень: в первые сутки на новом сервере в логах появляются тысячи попыток входа. Перенос на другой порт не делает сервер неприступным, но убирает фоновый шум и снижает нагрузку на журналы и fail2ban.

  1. Выберите порт из диапазона 1024–65535, например 2222, и проверьте, что он свободен.
  2. В /etc/ssh/sshd_config добавьте строку Port 2222. Не удаляйте строку с портом 22 сразу — на время проверки лучше оставить оба.
  3. Перезапустите SSH и проверьте вход: ssh -p 2222 alex@IP.
  4. Убедившись, что новый порт работает, удалите строку с 22 из конфига и перезапустите службу ещё раз.

Если на сервере включён файрвол — а его мы включим на следующем шаге — новый порт нужно открыть до перезапуска SSH. Иначе получится неприятная комбинация: служба слушает 2222, а файрвол пускает только 22.

Шаг 3. Файрвол UFW: закрыто по умолчанию

UFW — простая обёртка над iptables, которая читается как обычный английский. Логика такая: запретить всё входящее, разрешить только нужное, исходящее не трогать. Для сервера с сайтом это обычно SSH, HTTP и HTTPS.

  1. Разрешите SSH на новом порту: sudo ufw allow 2222/tcp. Это делается до включения файрвола — иначе доступ закроется вместе с ним.
  2. Разрешите веб: sudo ufw allow 80,443/tcp — если на сервере есть сайт.
  3. Включите: sudo ufw enable. Утилита предупредит о разрыве текущего соединения — это нормально, новая сессия уже разрешена.
  4. Проверьте правила: sudo ufw status verbose. В списке должны быть только те порты, которые действительно нужны.

Не открывайте «на всякий случай» базу данных, панель управления и порт 8080. Если сервис должен быть доступен только вам, лучше не открывать порт наружу, а ходить внутрь через SSH-туннель: ssh -L 8080:localhost:8080 -p 2222 alex@IP. Тогда сервис вообще не виден из интернета.

Что даёт каждая настройка

НастройкаЧто закрываетРиск при ошибке
Ключи вместо пароляПодбор пароля, слабые и повторно использованные паролиПотеря ключа — вход только через консоль хостера
Запрет rootПолный доступ по одному паролю, ошибки с правамиОстаться без sudo-пользователя
Нестандартный портФоновый брутфорс и шум сканеровЗабыть открыть порт в файрволе
UFWЛишние открытые сервисы: базы, панели, отладкаЗакрыть SSH вместе с включением

Четыре ошибки, после которых сервер недоступен

  1. Включить UFW, не разрешив порт SSH. Самая частая. Правило добавляют до ufw enable, а не после.
  2. Поменять порт и закрыть старую сессию. Пока новая сессия не проверена, старую не трогают — она единственный путь назад.
  3. Отключить пароли до проверки ключа. Сначала ssh alex@IP в новом окне, потом правка конфига.
  4. Забыть про дополнительные сервисы. Если на сервере живёт панель на своём порту, после включения UFW она перестанет открываться — это не поломка, а незакрытое правило.

Чек-лист первого часа

Вывод: базовая защита сервера — это не набор сложных инструментов, а порядок действий. Ключи вместо пароля, рабочий пользователь вместо root, файрвол с закрытой логикой по умолчанию и порт, который не сканируют первым делом. Час работы — и сервер перестаёт быть лёгкой добычей, а в логах остаются только те, кто знает адрес.

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

Смена порта SSH — это реальная защита или только скрытность?
Против целевой атаки порт не спасёт: того, кто целится именно в ваш сервер, скан портов не остановит. Но автоматические боты перебирают пароли в основном на стандартном порте 22, поэтому после переноса логи становятся чистыми, а нагрузка на fail2ban падает в разы. Настоящую защиту дают ключи, запрет паролей и запрет root — смена порта убирает шум.
Что делать, если после настройки я не могу войти на сервер?
У большинства хостеров есть веб-консоль (VNC), которая работает мимо SSH, — через неё можно открыть конфиг и откатить последнюю правку. Именно поэтому настройки меняют по одной: после каждого шага проверяют вход из нового терминала и только потом переходят к следующему. Если у провайдера консоли нет — сначала проверьте это до изменений.
Нужно ли ставить fail2ban после этих трёх настроек?
Желательно, но уже не критично: когда вход по паролю и под root запрещён, перебор становится бессмысленным — боту нечего подбирать. Fail2ban остаётся полезным для чистоты логов и защиты веб-панелей и почты, где парольная аутентификация всё ещё включена. Ставится одной командой и работает из коробки.
Проверка: 22 октября 2026 года. Команды и параметры сверены с OpenSSH 9.x и UFW 0.36 в Ubuntu 24.04. Синтаксис конфигурации SSH стабилен годами; расположение настроек у хостеров отличается — консоль провайдера стоит проверить до начала работ.
Новый полезный инструмент — каждый день Подборки, разборы и инструменты без воды — в Telegram-канале. Подписаться на «Инструмент дня»