Аудит удалённой системы с помощью Lynis

Что такое Lynis в две строки
Lynis — это бесплатный и open-source инструмент для аудита безопасности систем, распространяемый по лицензии GPL. Он проверяет конфигурацию Linux/Unix‑систем и даёт рекомендации по улучшению безопасности.
Основные варианты использования этой инструкции
- Провести единичный удалённый аудит без установки пакетов на целевой хост.
- Выполнять аудиты по расписанию, отправляя отчёты на центральную машину.
- Быстро протестировать удалённую систему при аудите инвентаря.
Кому пригодится этот материал
- Системным администраторам, которые хотят проводить аудит множества машин из одной точки.
- Аудиторам, у которых есть доступ по SSH, но нет привилегий для установки ПО на удалённом хосте.
- DevOps‑инженерам для быстрого сканирования CI/QA сред.
Ключевые термины
- SSH — защищённый удалённый доступ по сети.
- SCP — утилита для копирования файлов по SSH.
- tar.gz — сжатый архив, используемый для упаковки каталога Lynis.
Предварительные требования
- На локальной машине (в примере — Kali Linux) установлены Git и Lynis (или хотя бы доступ к исходникам Lynis через Git).
- Между локальной и удалённой машинами настроено SSH‑подключение по паролю или ключам.
- Доступ в сеть между машинами (в примере IP‑адреса: 192.168.199.161 и 192.168.199.150).
Важно: используйте обычные ASCII‑кавычки в командах: ‘YOUR_USERNAME’. Замените их на реальные учётные данные и IP‑адрес.
Экспериментальная среда (пример)
- Локальная машина: Kali Linux (IP 192.168.199.161/24)
- Удалённая машина: Ubuntu 20.04 (IP 192.168.199.150/24)
На локальной машине Lynis получен через Git и запускается от каталога, куда клонирован репозиторий — отсюда в примерах префикс ./lynis. Если Lynis установлен через пакетный менеджер (apt), достаточно вызвать lynis напрямую.
Пошаговая инструкция: аудит удалённой системы
Ниже показан полный рабочий процесс — от клонирования исходников до получения отчёта и очистки следов на целевом хосте.
1. Клонировать репозиторий Lynis на локальную машину
git clone https://github.com/CISOfy/lynis
2. Подготовить каталог для архива
cd lynis
mkdir -p files
lsСоздайте каталог files, куда поместим итоговый архив.
3. Упаковать исходники в tar.gz архив (из родительского каталога)
Важно: запускать следующую команду «снаружи» каталога lynis, чтобы не добавлять лишний путь в архив.
cd ..
tar czf ./lynis/files/lynis-remote.tar.gz --exclude=files/lynis-remote.tar.gz ./lynisПроверьте, что архив появился:
cd lynis
ls files/
4. Скопировать архив на удалённую систему
Используем scp. Замените YOUR_USERNAME и 192.168.199.150 на реальные данные удалённого хоста.
scp -q ./files/lynis-remote.tar.gz 'YOUR_USERNAME'@192.168.199.150:~/tmp-lynis-remote.tgzПодтвердите fingerprint хоста и введите пароль, если требуется. После копирования на удалённом хосте появится файл tmp-lynis-remote.tgz в домашнем каталоге.

5. Распаковать и запустить аудит удалённо по SSH
Команда ниже создаст временный каталог на удалённом хосте, распакует туда архив, удалит архив и запустит ./lynis audit system оттуда.
ssh 'YOUR_USERNAME'@192.168.199.150 "mkdir -p ~/tmp-lynis && cd ~/tmp-lynis && tar xzf ../tmp-lynis-remote.tgz && rm ../tmp-lynis-remote.tgz && cd lynis && ./lynis audit system"
Запуск может занять от десятков секунд до нескольких минут, в зависимости от размера и конфигурации системы.
Пример фрагмента вывода (сокращённый):
[+] Kernel
------------------------------------
- Checking default run level [ RUNLEVEL 5 ]
- Checking CPU support (NX/PAE)
CPU support: PAE and/or NoeXecute supported [ FOUND ]
- Checking kernel version and release [ DONE ]
- Checking kernel type [ DONE ]
- Checking loaded kernel modules [ DONE ]
Found 147 active modules
- Checking Linux kernel configuration file [ FOUND ]
- Checking default I/O kernel scheduler [ NOT FOUND ]
- Checking for available kernel update [ OK ]
- Checking core dumps configuration
- configuration in systemd conf files [ DEFAULT ]
- configuration in etc/profile [ DEFAULT ]
- 'hard' configuration in security/limits.conf [ DEFAULT ]
- 'soft' configuration in security/limits.conf [ DEFAULT ]
- Checking setuid core dumps configuration [ PROTECTED ]
- Check if reboot is needed [ NO ]
[+] Memory and Processes
...6. Удалить временные файлы на удалённом хосте
После завершения сканирования удалите временный каталог:
ssh 'YOUR_USERNAME'@192.168.199.150 "rm -rf ~/tmp-lynis"7. Получить журналы и отчёты на локальную машину
На удалённой машине Lynis по умолчанию создаёт lynis.log и lynis-report.dat в домашнем каталоге (если запускали без sudo, файлы создаются в домашнем каталоге пользователя). Скопируйте их:
scp -q 'YOUR_USERNAME'@192.168.199.150:~/lynis.log ./files/192.168.199.150-lynis.log
scp -q 'YOUR_USERNAME'@192.168.199.150:~/lynis-report.dat ./files/192.168.199.150-lynis-report.dat
8. Очистка логов на удалённом хосте (при запуске от непривилегированного пользователя)
ssh 'YOUR_USERNAME'@192.168.199.150 "rm ~/lynis.log ~/lynis-report.dat"
После этого следов аудита (кроме пакета lynis, если он был установлен) не останется в домашнем каталоге пользователя.
Критерии приёмки
- Отчёт
lynis-report.datи логlynis.logуспешно скопированы на локальную машину. - На удалённом хосте не осталось временных каталогов и файлов (
~/tmp-lynis,tmp-lynis-remote.tgz,lynis.log,lynis-report.dat). - Процесс аудита завершился без фатальных ошибок в выводе.
Когда этот подход не подходит (ограничения)
- Нет SSH‑доступа к удалённой машине.
- Политика безопасности запрещает копирование и запуск произвольного кода, даже временно.
- Целевая система — Windows или специальная ОС, для которых Lynis не предназначен.
Альтернативные подходы
- Установить Lynis на удалённой машине через пакетный менеджер и запускать локально через SSH без архивации.
- Использовать rsync вместо scp для передачи при медленных/нестабильных соединениях:
rsync -avz ./lynis 'YOUR_USERNAME'@192.168.199.150:~/tmp-lynis- Использовать Ansible для массового запуска Lynis на множестве хостов и централизации результатов.
Мини‑методология для регулярных удалённых проверок
- Подготовка: проверить ключи SSH и разрешения, настроить директорию для отчётов.
- Деплой: заархивировать текущую версию Lynis и отправить на все цели.
- Выполнение: запуск
./lynis audit systemчерез SSH параллельно (GNU Parallel / pssh / Ansible). - Сбор: скопировать
lynis.logиlynis-report.datв центральный репозиторий. - Анализ: агрегировать предупреждения и рекомендации, приоритизировать по риску.
- Очистка: удалить временные файлы на целевых хостах.
Чек‑лист ролей
- Для администратора сервера:
- Проверить доступ по SSH и права пользователя.
- Убедиться в наличии свободного места, куда будет распакован архив.
- Для аудитора:
- Подготовить шаблон действий на основе результатов Lynis (что фиксировать, какие файлы сохранять).
- Анализировать
lynis-report.datи формировать plan‑of‑action.
- Для владельца приложения/сервиса:
- Проверить рекомендации, касающиеся конфигурации сервисов.
- Планировать исправления по приоритету.
Decision flowchart (общая логика принятия решения)
flowchart TD
A[Есть SSH‑доступ?] -->|Да| B[Отправить архив и запустить Lynis]
A -->|Нет| C[Нужен другой метод: агент/установка/доступ по VPN]
B --> D{Аудит завершился успешно?}
D -->|Да| E[Скопировать отчёты и очистить]
D -->|Нет| F[Проверить ошибки, повторить с sudo или локально]Советы по безопасности и приватности
- Используйте SSH‑ключи с passphrase и агент ssh‑agent для автоматизации.
- Запускайте аудит с минимально необходимыми привилегиями; если нужно больше прав (например, проверка конфигураций, доступных только root), используйте
sudoна целевом хосте, но документируйте причину. - Не храните журналы и отчёты с чувствительной информацией в общедоступных местах без шифрования.
Обработка ошибок и отладка
- Если
scpзавершается с ошибкой Fingerprint/Host key mismatch — убедитесь в правильности DNS/IP и удалите запись из~/.ssh/known_hosts, если это безопасно. - Если
./lynisне запускается на удалённом хосте, проверьте исполнение (chmod +x lynis) и зависимости (perl и прочие компоненты).
Когда результаты могут вводить в заблуждение
- Некоторые предупреждения Lynis — это рекомендации, зависящие от контекста (например, отключение сервиса может нарушить работу приложения). Всегда оценивайте влияние перед изменениями.
Короткий план действий после получения отчёта
- Соберите все предупреждения и рекомендации от Lynis.
- Разбейте их по уровням риска: критично / средне / низко.
- Для критичных рекомендаций подготовьте план исправлений и сроки.
- Повторите аудит после исправлений.
Резюме
Мы разобрали полный цикл удалённого аудита системы с помощью Lynis: подготовка архива, копирование на целевой хост, удалённый запуск аудита, выгрузка отчётов и очистка временных данных. Этот подход полезен для единичных и массовых проверок, когда необходимо минимально вмешиваться в удалённую систему.
В следующих материалах можно углубиться в разбор конкретных предупреждений Lynis, в автоматизацию (Ansible/cron) и в интеграцию результатов в систему трекинга задач.
Важно: всегда согласовывайте действия по аудиту с владельцем инфраструктуры и документируйте шаги для воспроизводимости и соответствия требованиям безопасности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента