Ansible Collection Hardening — это набор ролей Ansible, предоставляющий проверенные на практике (battle-tested) рекомендации по усилению безопасности популярных компонентов инфраструктуры: Linux, SSH, nginx и MySQL.
Коллекция разрабатывается сообществом dev-sec и ориентирована на автоматизацию security best practices без необходимости вручную настраивать десятки конфигурационных файлов.
GitHub-репозиторий проекта:
https://github.com/dev-sec/ansible-collection-hardening
Что такое Ansible Collection Hardening
Ansible Collection Hardening — это модульная коллекция ролей, каждая из которых отвечает за защиту отдельного слоя системы:
- операционная система Linux
- служба удалённого доступа SSH
- веб-сервер nginx
- сервер баз данных MySQL
Все роли написаны с учётом:
- рекомендаций CIS Benchmarks
- best practices DevSecOps
- минимального влияния на работоспособность системы
Коллекция не «ломает» систему, а аккуратно повышает уровень безопасности, оставляя возможность гибкой настройки через переменные.
Основные роли коллекции
1. OS Hardening
Роль для базового усиления безопасности Linux-системы:
- настройка sysctl-параметров ядра
- ограничение прав доступа к системным файлам
- отключение небезопасных модулей и сервисов
- усиление параметров PAM
- настройка auditd
Поддерживаются популярные дистрибутивы: Ubuntu, Debian, RHEL, CentOS и производные.
2. SSH Hardening
Роль для защиты SSH-доступа:
- отключение входа под root
- запрет устаревших алгоритмов шифрования
- ограничение попыток входа
- настройка таймаутов
- работа с AllowUsers / AllowGroups
Особенность роли — безопасность без потери управляемости серверов.
3. nginx Hardening
Роль усиливает конфигурацию nginx:
- настройка безопасных TLS-параметров
- отключение небезопасных HTTP-методов
- защита от утечек информации (server_tokens)
- безопасные заголовки (HSTS, X-Frame-Options и др.)
Подходит как для публичных веб-сервисов, так и для внутренних API.
4. MySQL Hardening
Роль направлена на защиту сервера баз данных MySQL / MariaDB:
- безопасные настройки аутентификации
- ограничение сетевого доступа
- жёсткие параметры логирования
- отключение небезопасных функций
Особенно полезно для продакшн-сред и хостинга БД.
Шпаргалка по основным командам
| Задача | Команда |
|---|---|
| Установка коллекции |
ansible-galaxy collection install devsec.hardening
|
| Просмотр установленных коллекций |
ansible-galaxy collection list
|
| Пример подключения роли в playbook |
- hosts: servers roles: - devsec.hardening.ssh_hardening
|
| Запуск playbook |
ansible-playbook site.yml
|
| Переопределение параметров |
ssh_permit_root_login: "no" ssh_password_authentication: "no"
|
Преимущества использования
- экономия времени на ручной настройке безопасности
- единый стандарт hardening для всей инфраструктуры
- простая интеграция в CI/CD и IaC-процессы
- гибкость через переменные Ansible
- активная поддержка сообщества
FAQ
- Можно ли использовать только одну роль, а не всю коллекцию?
Да, роли полностью независимы. Можно подключать только SSH, nginx или любую другую часть. - Подходит ли коллекция для продакшена?
Да. Коллекция ориентирована именно на production-окружения и используется в реальных инфраструктурах. - Не сломает ли hardening существующие сервисы?
По умолчанию используются безопасные, но консервативные настройки. Однако перед применением в продакшене рекомендуется протестировать роли в staging-среде. - Можно ли переопределять настройки?
Да, все параметры доступны через variables и легко кастомизируются под нужды проекта.
Вывод
Ansible Collection Hardening — это удобный и надёжный способ повысить уровень безопасности Linux-инфраструктуры без глубокого погружения в ручную настройку hardening-параметров.
Коллекция особенно полезна для:
- DevOps и SRE-команд
- хостинг-провайдеров
- проектов с требованиями к безопасности
- автоматизированных CI/CD-пайплайнов
Если вы используете Ansible и хотите внедрить безопасность как код — ansible-collection-hardening является отличной отправной точкой.