Server Hardening — комплекс мер по уменьшению поверхности атаки (attack surface) сервера. Основной принцип: минимальная функциональность. Запущено только то, что нужно. Открыто только то, что необходимо. Права даны только тем, кому нужны.
Checklist hardening Ubuntu Server
# 1. Обновить систему
apt update && apt upgrade -y
apt install unattended-upgrades && dpkg-reconfigure unattended-upgrades
# 2. Настроить SSH
# /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
Port 2222 # нестандартный порт
MaxAuthTries 3
# 3. Настроить фаервол
ufw default deny incoming
ufw allow 2222/tcp # SSH
ufw allow 80,443/tcp
ufw enable
# 4. Fail2ban
apt install fail2ban
systemctl enable fail2ban
# 5. Удалить лишние сервисы
systemctl disable postfix snapd
# 6. Настроить автоматическое обновление
apt install unattended-upgrades
Ключевые меры
- SSH: только ключи, non-root, нестандартный порт, fail2ban.
- Фаервол: минимально необходимые порты.
- Автоматические обновления безопасности.
- Отключить неиспользуемые сервисы.
- AppArmor/SELinux для обязательного контроля доступа.
- Аудит: auditd для логирования системных вызовов.
- Шифрование данных в покое и при передаче.
Автоматизация: Ansible roles
dev-sec.io — коллекция Ansible-ролей для автоматического hardening: os-hardening, ssh-hardening, nginx-hardening. Реализуют CIS Benchmarks.
История
CIS (Center for Internet Security) Benchmarks публикуются с 2000 года. DISA STIG (Security Technical Implementation Guides) — военный стандарт США с 1998 года. NSA Linux Hardening Guide — 2003. Lynis (аудит и hardening) — 2007. Ansible dev-sec roles — 2013.
Связь с хостингом
Hardening — обязательная процедура после установки нового VDS. Свежая Ubuntu имеет приемлемые дефолты, но не оптимальные настройки безопасности. 30 минут hardening резко снижают риск компрометации. Провайдеры предлагают готовые образы (Bitnami hardened Ubuntu) с уже применёнными практиками.
История Hardening
Концепция hardening (укрепление) систем формализована в CIS Benchmarks (Center for Internet Security), первый выпуск 2000 год. DISA STIG (Security Technical Implementation Guides) — стандарты Министерства обороны США для конфигурации систем, используются с 1998 года. NIST SP 800-123 «Guide to General Server Security» (2008) — руководство по базовому укреплению серверов. Ansible-коллекции для автоматического hardening (dev-sec.io) появились в 2015 году.
Ключевые меры hardening сервера
- Отключение root-логина по SSH:
PermitRootLogin noв sshd_config. - Только SSH-ключи, без паролей:
PasswordAuthentication no. - Минимальный набор установленного ПО: удалить неиспользуемые сервисы.
- Настройка iptables/ufw: разрешено только необходимое.
- Автоматические обновления безопасности:
unattended-upgradesна Ubuntu. - Отключение IPv6 если не используется.
- Настройка sysctl для защиты от IP spoofing и SYN-flood.
Автоматизация hardening
Ansible роль dev-sec.os-hardening автоматизирует более 100 проверок CIS Benchmark для Ubuntu/RHEL. OpenSCAP — инструмент для сканирования соответствия STIG/CIS. Lynis score >80 на VPS — хороший результат базового hardening. После hardening обязательно проверьте работоспособность всех сервисов.
Типичные ошибки
- Применение CIS Benchmark Level 2 на продакшн без тестирования — может сломать работающие сервисы.
- Hardening один раз и забыть — конфигурация дрейфует при обновлениях.
- Отключение SELinux/AppArmor «чтобы не мешал» — устранение симптома вместо настройки политик.