Hardening Ubuntu Server: автоматизация, безопасность, мониторинг

Стандартный Ubuntu Server после установки не защищён от атак и не оптимизирован для боевых нагрузок. Мы выполняем полный hardening сервера: настраиваем безопасность, автоматизируем обновления и повышаем производительность. Наша команда реализует проект под ключ — от аудита до внедрения и последующей поддержки.
Часто задаваемые вопросы

Первые 30 минут после установки Ubuntu Server — критические. Стандартный образ не готов к боевым нагрузкам: открытый SSH, root-доступ по паролю, лимит open files 1024 и никаких автообновлений. За первые сутки сервер сканируют сотни ботов из ботнетов Mirai и Qbot. На практике 80% серверов в инфраструктуре наших клиентов приходят с этими проблемами. Недавно к нам обратился стартап: их сервер взломали на второй день после развёртывания, утекли пользовательские данные. Мы устранили последствия и заново настроили систему так, чтобы это не повторилось. Наш процесс hardening Ubuntu Server гарантирует, что система готова к атакам с первого дня.

Мы настраиваем Ubuntu Server с нуля — от bare-metal до облачных инстансов в AWS, GCP, Yandex Cloud. Помимо безопасности, мы оптимизируем производительность: настраиваем swap, увеличиваем file-max, подбираем планировщик I/O (none для SSD, mq-deadline для HDD), включаем TCP BBR для сетевой пропускной способности. Всё это снижает latency и предотвращает вылеты при пиковой нагрузке. Canonical рекомендует выполнить hardening после первого входа.

Какие проблемы решаем

  • Безопасность по умолчанию: на облачных образах часто включён root-логин. Мы отключаем парольную аутентификацию, настраиваем fail2ban с параметрами maxretry=3, bantime=3600, findtime=600, и UFW с белыми IP-адресами администраторов. Дополнительно: аудит пользователей, удаление неиспользуемых аккаунтов, настройка sudo через группу wheel.
  • Производительность: стандартные лимиты open files (1024) не подходят для нагруженных приложений. Мы увеличиваем их до 65536 и корректируем vm.swappiness (10—20 серверы БД, 60 — для десктопов). Для высоконагруженных веб-серверов настраиваем net.core.somaxconn = 1024.
  • Управляемость: без автоматизации обновлений сервер рискует получить уязвимость. Мы настраиваем unattended-upgrades с уведомлениями, а также подключаем мониторинг Prometheus node_exporter и централизованный сбор логов через Loki.

Почему стандартная установка не подходит для продакшена?

По рекомендации Canonical, после первого входа необходимо выполнить hardening. Мы замеряли: время взлома сервера с открытым портом SSH по паролю — менее 2 часов. Поэтому первые 30 минут после запуска — критические. Если не закрыть эти дыры, вы рискуете не только данными, но и репутацией. На практике мы видим, что пропуск hardening Ubuntu Server приводит к инцидентам: взлом SSH, простои из-за неправильного сетевого конфига (например, отключение IPv6 без настройки DNS-резолвера), сбои из-за переполнения файловых дескрипторов.

Сравнение подходов Ручная настройка Автоматизация Ansible
Время на 1 сервер 4–8 часов 2–3 часа (первый)
Повторяемость Низкая, риск ошибки Высокая, версионирование в Git
Поддержка парка Сложно Один плейбук для всех
Стоимость инцидентов Высокая Снижение на 30%

Автоматизация Ansible ускоряет настройку в 2–3 раза по сравнению с ручной настройкой. Экономия бюджета на инцидентах составляет 30–40% после внедрения автоматизации.

Как выполнить базовый hardening за 5 шагов?

  1. Отключите root-логин по паролю и настройте SSH-ключи.
  2. Установите и настройте UFW с белым списком IP.
  3. Установите fail2ban с параметрами защиты SSH.
  4. Настройте unattended-upgrades с уведомлениями.
  5. Увеличьте лимиты open files до 65536.
Пример конфигурации fail2ban
# /etc/fail2ban/jail.local [sshd] enabled = true maxretry = 3 bantime = 3600 findtime = 600 

Как ускорить развертывание сервера с помощью автоматизации?

Использование Ansible или Terraform сокращает время настройки каждого последующего сервера до 2–3 часов. Мы подготавливаем роли для Debian/Ubuntu (common, security, monitoring, time) и храним их в Git вместе с конфигурацией Terraform для облачных провайдеров. Это гарантирует повторяемость и версионирование. При пересоздании инстанса достаточно запустить один плейбук. Если вам нужна повторяемая настройка для парка серверов — свяжитесь с нами, мы подготовим Ansible-роли.

Как мы настраиваем Ubuntu Server под ключ

Конкретный кейс: настройка сервера для high-load API на Go. После минимальной установки выполняем:

# Проверка текущих пользователей и портов
who
ss -tlnp

# Отключаем root-логин по паролю
sed -i 's/^PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
sed -i 's/^PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl reload ssh

Создаём пользователя app, добавляем SSH-ключ. Далее базовая конфигурация:

# Обновление пакетов
apt update && apt full-upgrade -y

# Временная зона и hostname
timedatectl set-timezone Europe/Moscow
hostnamectl set-hostname prod-api-01

# Лимиты для нагруженных сервисов
cat >> /etc/security/limits.conf << 'EOF'
* soft nofile 65536
* hard nofile 65536
* soft nproc 32768
* hard nproc 32768
EOF

Настраиваем защиту:

# UFW
ufw default deny incoming
ufw default allow outgoing
ufw allow from <office-ip> to any port 22
ufw --force enable

# fail2ban
apt install -y fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

И автообновления:

apt install -y unattended-upgrades dpkg-reconfigure --priority=low unattended-upgrades 

Для синхронизации времени используем systemd-timesyncd или chrony — в зависимости от требований. Для финансовых приложений ставим chrony с ручной настройкой NTP-серверов. Пример конфигурации chrony для продакшена:

server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst allow 10.0.0.0/8 

Что входит в настройку

  • Аудит текущего состояния сервера (облачный образ, bare-metal).
  • Hardening SSH, UFW, fail2ban, limits, NTP.
  • Установка и настройка ПО под задачу (nginx, PostgreSQL, Redis, Docker).
  • Скриптинг и передача плейбука Ansible для воспроизведения.
  • Документация: итоговая конфигурация, инструкция по эксплуатации.
  • Поддержка: 30 дней бесплатных консультаций после сдачи.

В результате вы получаете сервер, готовый к продакшену с первого дня. Стоимость настройки окупается в течение нескольких месяцев за счёт предотвращения простоев и взломов.

Процесс работы и сроки

Этап Длительность
Аудит и планирование 1–2 часа
Установка и hardening 4–8 часов
Настройка прикладного ПО от 4 часов
Тестирование и документация 2–4 часа
Передача знаний 1 час

Ручная настройка одного сервера занимает 1–2 дня. Для парка серверов используем Ansible — сокращаем время до 2–3 часов на каждый последующий. Средняя экономия бюджета клиента за счёт автоматизации — 30% времени на инциденты.

Почему стоит доверить настройку нам?

Мы занимаемся DevOps-инфраструктурой более 5 лет, выполнили настройку для 40+ проектов — от стартапов до enterprise. Гарантируем соответствие лучшим практикам безопасности (CIS benchmark по запросу). Для настройки сервера под ваш проект — свяжитесь с нами. Получите консультацию по hardening Ubuntu Server.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139