Аудит безопасности Linux с помощью Lynis

Что такое Lynis
Lynis — это инструмент аудита, который собирает информацию о безопасности и конфигурации Unix-подобных систем. Он не изменяет систему по умолчанию; Lynis выполняет проверку и генерирует отчёт с предупреждениями и рекомендациями. Для ясности: предупреждение (Warning) указывает на проблему, требующую внимания; suggestion — рекомендация для улучшения.
Почему его стоит использовать
- Быстрое обнаружение типичных проблем конфигурации.
- Подходит для серверов (SSH, веб), корпоративных систем и для периодических проверок.
- Хорош для аудиторов, системных администраторов и инженеров по безопасности.
Установка
На Ubuntu можно установить через Центр приложений или в терминале:
sudo apt-get update
sudo apt-get install lynis
Для других дистрибутивов посетите страницу проекта Lynis: там есть пакеты для разных систем (Debian, RPM и др.).
Важно: если вы управляете удалённой системой, используйте SSH и запускайте команды с учётом прав суперпользователя.
Быстрое использование
Выполните полную проверку командой:
sudo lynis -c
Команда выполняет серию тестов и выводит прогресс в терминале. По завершении отчёт сохраняется в /var/log/lynis.log.
Просмотр отчёта
Откройте файл в редакторе:
sudo nano /var/log/lynis.log
В nano можно искать по Ctrl + W (например, искать «Warning»).
Чтобы быстро вывести только предупреждения или предложения, используйте grep:
sudo grep Warning /var/log/lynis.log
sudo grep Suggestion /var/log/lynis.log
Image credit: Up, Tight
Что именно проверяет Lynis
Lynis выполняет большое количество проверок. Ключевые области:
- Системные инструменты и сервисы запуска.
- Загрузчики, run-levels, загруженные модули ядра.
- Память и процессы: «zombie» процессы, процессы с ожиданием ввода/вывода.
- Пользователи, группы и аутентификация: sudoers, PAM, политика паролей.
- Файловые системы: точки монтирования, /tmp, корневая FS.
- Хранилище и подключаемые устройства (usb-storage, firewire).
- NFS и сетевые службы: DNS, BIND.
- Порты и пакеты: уязвимые или устаревшие пакеты, наличие репозиториев безопасности.
- Сетевая безопасность: iptables, pf, веб‑серверы (Apache, nginx).
- SSH: настройки и потенциальные уязвимости.
- Базы данных и LDAP, конфигурации SNMP.
- PHP: параметры, рекомендуемые для безопасности.
- Планировщики задач: cron, atd.
- Синхронизация времени: ntpd/chronyd.
- Криптография: срок действия SSL-сертификатов.
- Механизмы безопасности: AppArmor, SELinux, grsecurity.
- Инструменты контроля целостности файлов и антивредоносное ПО.
- История оболочки в домашних директориях и другие мелкие детали.
Как работать с результатами (минимальная методология)
- Сканирование: запустите
sudo lynis -c
и дождитесь окончания. - Сбор: откройте
/var/log/lynis.log
и экспортируйте важные строки (Warning/Suggestion). - Приоритизация: классифицируйте элементы по критичности (критично, средне, низко).
- План исправлений: распишите шаги, ответственных и сроки.
- Исполнение: внесите изменения в тестовой среде, затем на проде.
- Верификация: повторите сканирование и убедитесь, что предупреждения устранены.
- Документирование: запишите изменения и причину, чтобы при следующем аудите было проще.
Чек‑лист по ролям
Системный администратор:
- Запустить полное сканирование.
- Получить список Warning и Suggestion.
- Исправить критичные конфигурации (SSH, sudo, firewall).
- Перезапустить сервисы и проверить логи.
Аудитор безопасности:
- Сопоставить найденные предупреждения с политиками компании.
- Оценить риск и рекомендовать ремедиацию.
- Подготовить отчёт для владельцев систем.
DevOps/инженер приложений:
- Проверить веб‑сервер и конфигурации PHP.
- Убедиться в обновлениях пакетов и практике CI/CD.
- Настроить проверки в pipeline (SCA/тесты конфигураций).
Примеры типичных действий после скана
- Исправить слабые параметры SSH (например, отключить root login, включить ключи SSH).
- Настроить и включить брандмауэр (iptables/nftables) с минимальными правилами.
- Обновить уязвимые пакеты и добавить репозиторий безопасности.
- Включить AppArmor или SELinux, если это критично для среды.
- Настроить мониторинг целостности файлов и план регулярных аудитов.
Важно: не вносите изменения напрямую на продакшн без тестирования. Всегда иметь откатный план.
Критерии приёмки
- На момент приёмки нет открытых записей с пометкой Warning, требующих немедленной реакции.
- Для оставшихся Suggestion предусмотрены задачи с владельцами и сроками.
- Повторный скан показывает уменьшение числа критичных предупреждений.
Решение: когда Lynis недостаточен
- Lynis — инструмент аудита, но не IDS/IPS. Для реального времени нужно дополнить мониторингом (OSSEC, Wazuh, Suricata).
- Он не заменит ручной ревью конфигураций или глубокой тестовой среды для сложных приложений.
Малый метод: быстрый план на 30 минут
- Установка Lynis — 5 минут.
- Запуск полного сканирования — 5–15 минут (в зависимости от системы).
- Сбор Warning/Suggestion через grep — 2 минуты.
- Быстрый приоритет и создание задач на ближайшие 30 минут — 5–10 минут.
Мини‑глоссарий (одна строка каждый)
- Warning — предупреждение о проблеме, требующей внимания.
- Suggestion — рекомендация по улучшению безопасности.
- Remediation — действие по исправлению найденной проблемы.
Визуальная схема принятия решений
flowchart TD
A[Запустить sudo lynis -c] --> B{Есть ли Warning?}
B -- Да --> C[Классифицировать по критичности]
C --> D[Планировать исправление]
D --> E[Тестировать и внедрять]
E --> F[Повторный скан]
B -- Нет --> G[Отметить: система в порядке]
G --> F
Шаблон задач (пример)
- Заголовок: Исправить Warning: слабая конфигурация SSH
- Описание: Отключить root login в /etc/ssh/sshd_config, ограничить AuthenticationMethods
- Владелец: [email protected]
- Оценка: 1 час на тестовую среду, 30 минут на прод
- Критерий приёмки: при повторном lynis Warning по SSH отсутствует
Итог
Lynis — надёжный инструмент для регулярного аудита настроек и контроля безопасности Unix-подобных систем. Он быстро показывает проблемные зоны и даёт рекомендации. Используйте его как часть регулярной практики безопасности: сканирование, приоритизация, исправление, повторная проверка и документирование.