Содержание
Вы только что установили Ubuntu 24.04 на свой сервер — поздравляем! Но это лишь начало. Безопасность сервера — не опция, а обязательное условие его стабильной и надёжной работы. Увы, большинство администраторов пренебрегают базовыми мерами сразу после установки, оставляя систему уязвимой для автоматизированных атак, сканеров и брутфорсов. В этой статье мы подробно разберём, как правильно обезопасить сервер на Ubuntu 24.04 с самого нуля: обновление системы, создание пользователей, настройка SSH-ключей и брандмауэра UFW. Это первая часть нашего масштабного чек-листа, призванного превратить ваш сервер из «малыша в пелёнках» в «крепкого воина в доспехах».
Шаг 1: Обновите систему — первая линия обороны
Даже если вы скачали свежий ISO-образ Ubuntu 24.04 буквально вчера, в официальных репозиториях уже могли появиться важные обновления безопасности. Не стоит считать, что новая установка сразу же полностью защищена — в мире Linux обновления приходят ежедневно. Поэтому первое, что вы должны сделать после установки, — это обновить все установленные пакеты.
Для этого выполните в терминале:
sudo apt update sudo apt upgrade -y
Разберём каждую команду:
apt update— синхронизирует локальный индекс пакетов с репозиториями. Эта команда не обновляет саму систему, а лишь «узнаёт», какие пакеты можно обновить.apt upgrade— применяет обновления для всех уже установленных пакетов. Ключ-yавтоматически подтверждает все запросы, что удобно при автоматической настройке.
В некоторых случаях (например, при обновлении ядра или при значительных изменениях зависимостей) может потребоваться более глубокое обновление:
sudo apt full-upgrade
Эта команда может удалять устаревшие пакеты, если они мешают установке новых версий. Чтобы не навредить системе, перед выполнением можно сымитировать процесс:
sudo apt full-upgrade -s
Ключ -s (от англ. simulate) покажет, какие именно пакеты будут удалены или обновлены, не внося реальных изменений.

Автоматические обновления безопасности
Так как ручное обновление — дело неблагодарное и легко забывается, Ubuntu предлагает встроенный механизм автоматических обновлений через пакет unattended-upgrades:
sudo apt install unattended-upgrades sudo dpkg-reconfigure --priority=low unattended-upgrades
После запуска конфигурационного диалога выберите Yes. Это включит автоматическую установку обновлений безопасности. Настройки хранятся в двух файлах:
/etc/apt/apt.conf.d/20auto-upgrades— отвечает за частоту проверки и установки обновлений./etc/apt/apt.conf.d/50unattended-upgrades— определяет, какие именно репозитории обновлять (по умолчанию — только Ubuntu-Security).
Проверить статус службы можно командой:
systemctl status unattended-upgrades
А историю применённых обновлений — так:
cat /var/log/unattended-upgrades/unattended-upgrades.log
Этот шаг критически важен для защиты от известных уязвимостей, которые хакеры используют в течение первых часов после публикации CVE.
Шаг 2: Создайте отдельного пользователя — не работайте от root!
Работа напрямую от имени суперпользователя root — один из самых распространённых и опасных промахов начинающих администраторов. Атакующие автоматически сканируют целые диапазоны IP-адресов, пытаясь подобрать пароль именно к root. Поэтому следующий шаг — создание отдельного пользователя с правами sudo и полный запрет входа под root по SSH.
Создайте нового пользователя:
sudo adduser alice
Система запросит пароль и дополнительную информацию (имя, телефон и т.д.) — эту информацию можно пропустить, нажав Enter. Главное — задать надёжный пароль (даже если вы позже отключите аутентификацию по паролю).
Добавьте пользователя в группу sudo, чтобы он мог выполнять административные команды:
sudo usermod -aG sudo alice
Флаги:
-a— добавить, не удаляя из других групп;-G— указать группу.
Теперь проверьте подключение к серверу под новым пользователем:
ssh alice@ваш_сервер_ip
Если всё работает — идём дальше. Отредактируйте конфигурацию SSH-сервера:
sudo nano /etc/ssh/sshd_config
Найдите строку:
#PermitRootLogin yes
И замените её на:
PermitRootLogin no
Важно! Не закрывайте текущую сессию, пока не убедитесь, что новый пользователь может подключаться. В противном случае вы рискуете потерять доступ к серверу.
Также проверьте, нет ли переопределения этого параметра в дополнительных конфигах:
ls /etc/ssh/sshd_config.d/
Если там есть файлы — откройте их и убедитесь, что PermitRootLogin нигде не установлен в yes.
После изменений перезапустите SSH-демон:
sudo systemctl restart ssh
Шаг 3: Перейдите на SSH-ключи — забудьте о паролях навсегда
Аутентификация по паролю — устаревший и ненадёжный метод. Даже сильный пароль может быть украден или подобран перебором. SSH-ключи — современный стандарт защиты удалённого доступа. Они основаны на криптографии с открытым ключом и делают брутфорс-атаки абсолютно бессмысленными.
Генерация ключей на клиенте
На вашей локальной машине (не на сервере!) выполните:
ssh-keygen -t ed25519 -C "alice@workstation"
Пояснения:
-t ed25519— современный алгоритм, более безопасный и быстрый, чем RSA;-C— комментарий для идентификации ключа (например, email или имя устройства).
Будут созданы два файла:
~/.ssh/id_ed25519— закрытый (приватный) ключ. Его никогда нельзя передавать;~/.ssh/id_ed25519.pub— открытый (публичный) ключ. Его нужно разместить на сервере.
Копирование ключа на сервер
Самый простой способ — использовать встроенную утилиту:
ssh-copy-id alice@ваш_сервер_ip
Она автоматически создаст нужную директорию ~/.ssh, добавит ключ в authorized_keys и правильно установит права доступа.
Если вы предпочитаете ручной способ:
ssh alice@ваш_сервер_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Затем скопируйте содержимое id_ed25519.pub и вставьте в файл:
nano ~/.ssh/authorized_keys
После сохранения попробуйте подключиться к серверу:
ssh alice@ваш_сервер_ip
Если запроса пароля нет — всё работает!
Отключение аутентификации по паролю
Теперь отключим вход по паролю. Откройте конфиг SSH:
sudo nano /etc/ssh/sshd_config
Убедитесь, что следующие параметры установлены так:
PasswordAuthentication no PubkeyAuthentication yes ChallengeResponseAuthentication no
Перезапустите SSH:
sudo systemctl restart ssh
Теперь сервер принимает подключения только с устройств, на которых есть соответствующий приватный ключ.
Шаг 4: Включите и настройте UFW — ваш сетевой щит
Даже самый защищённый сервер беспомощен без брандмауэра. В Ubuntu по умолчанию установлен UFW (Uncomplicated Firewall) — простой, но мощный инструмент для контроля сетевого трафика. Если его нет, установите:
sudo apt install ufw
Настройка правил
Первым делом разрешите SSH-трафик. Если вы используете стандартный порт 22:
sudo ufw allow OpenSSH
Если вы изменили порт SSH (например, на 2222), разрешите его вручную:
sudo ufw allow 2222/tcp
Теперь включите UFW:
sudo ufw enable
Система спросит подтверждение — согласитесь. По умолчанию UFW блокирует все входящие соединения и разрешает все исходящие.
Дополнительные правила
Если вы планируете запускать веб-сервер, разрешите HTTP и HTTPS:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
Или воспользуйтесь предустановленными профилями:
sudo ufw app list
Возможные варианты: OpenSSH, Nginx Full, Apache Full, Postfix и др.
Чтобы удалить правило:
sudo ufw delete allow 80/tcp
Мониторинг и логирование
Проверить текущие правила:
sudo ufw status verbose
Включить логирование:
sudo ufw logging on
Уровни логирования: low, medium, high, full. Например:
sudo ufw logging high
Логи хранятся в /var/log/ufw.log и полезны при диагностике неожиданного блокирования трафика.
Для временного отключения (например, при отладке):
sudo ufw disable
Но не забудьте включить его снова!

Заключение: ваш сервер теперь в безопасности — но не до конца
Вы выполнили базовые, но критически важные шаги по защите сервера на Ubuntu 24.04:
- Обновили систему до актуального состояния;
- Создали отдельного пользователя и заблокировали root-доступ;
- Перешли на SSH-ключи и отключили пароли;
- Настроили брандмауэр UFW.
Этого уже достаточно, чтобы отсечь 99% автоматизированных атак и сканеров. Однако безопасность — процесс, а не событие. В следующих частях нашего чек-листа мы рассмотрим:
- Настройку fail2ban для блокировки брутфорса;
- Глубокую настройку сетевой безопасности через nftables;
- Отключение ненужных служб;
- Контроль прав доступа к конфиденциальным файлам;
- Внедрение двухфакторной аутентификации (2FA);
- Аудит, логирование и мониторинг;
- Стратегии резервного копирования.
Следите за обновлениями! А пока — проверьте, всё ли вы настроили правильно. Один упущенный шаг может стоить вам данных, времени и репутации.
Ваш сервер — ваша крепость. Защищайте её.
