Lynis Аудит безопасности Ubuntu Server

Lynis — ещё одна очень хорошая утилита для аудита
безопасности. Анализатор выполняет проверку всех компонентов системы,
выявляет её слабые места и очевидные проблемы, формирует отчёт для
администратора в котором содержатся предупреждения и рекомендации по
увеличению уровня безопасности на сервере. Интересно что в ходе
проверки, Lynis вычисляет некий индекс защищённости, на который можно
ориентироваться при выполнении тех или иных рекомендаций.




Hardening index : 75 [############### ]
Tests performed : 226
Plugins enabled : 0




Кроме этого, в Lynis предусмотрена система плагинов, которыми можно
расширить возможности анализатора при проверке севера. Плагины можно
написать самому, а можно воспользоваться тем, что уже подготовлено
участниками сообщества.




Для установки разработчики подготовили собственные репозитории, в которых доступны пакеты для всех операционных систем. Я работаю с Ubuntu, так что и ставить утилиту буду соответствующим образом.




Установка репозитория Lynis




Репозиторий программного обеспечения Lynis использует протокол HTTPS, поэтому сначала нужно убедиться, что менеджер пакетов поддерживает HTTPS. Используйте для этого следующую команду:




dpkg -s apt-transport-https | grep -i status




Если менеджер поддерживает HTTPS, команда выведет:




Status: install ok installed




В противном случае установите поддержку протокола с помощью команды:




sudo apt install apt-transport-https




Сначала добавьте ключ репозитория:




sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F




Если ключ добавлен успешно, вы увидите:




Executing: /tmp/tmp.AnVzwb6Mq8/gpg.1.sh --keyserver
 keyserver.ubuntu.com
 --recv-keys
 C80E383C3DE9F082E01391A0366C67DE91CA5D5F
 gpg: requesting key 91CA5D5F from hkp server keyserver.ubuntu.com
 gpg: key 91CA5D5F: public key "CISOfy Software (signed software packages) <software@cisofy.com>" imported
 gpg: Total number processed: 1
 gpg:               imported: 1  (RSA: 1)




Добавьте репозиторий Lynis в список доступных репозиториев пакетного менеджера:




sudo echo "deb https://packages.cisofy.com/community/lynis/deb/ stable main" | sudo tee /etc/apt/sources.list.d/cisofy-lynis.list




Обновите индекс пакетов:




sudo apt update




Устанавливаем Lynis на Ubuntu Server 18.04:




Теперь можно приступать к установке Lynis.




sudo apt install lynis




Загрузка Lynis с GitHub




В репозитории разработчика который мы устанавливали выше, находится старая версию программы Lynis. Если вы хотите версию посвежее то необходимо скачать ее с GitHub:




wget https://github.com/CISOfy/lynis/archive/master.zip




Распаковываем архив и переходим в директорию Lynis:




unzip master.zip && cd lynis-master




Запускаем анализ сервера




Перед выполнением аудита всегда полезно проверить, доступна ли новая
версия Lynis: так вы получите доступ к новым функциям и соберёте больше
информации. Выполните следующую команду, чтобы проверить наличие
обновлений:




lynis update info




Если вы получили такой вывод, вы используете последнюю версию Lynis




== Lynis ==
 Version            : 3.0.0
   Status             : Up-to-date
   Release date       : 2019-07-14
   Project page       : https://cisofy.com/lynis/
   Source code        : https://github.com/CISOfy/lynis
   Latest package     : https://packages.cisofy.com/
 2007-2019, CISOfy - https://cisofy.com/lynis/




Также для проверки обновлений можно использовать команду:




lynis update check




Она вернёт одну строку:




status=up-to-date




Для запуска аудита системы используйте следующую команду:




sudo lynis audit system




Для запуска ауита из GitHub воспользуемся следующей командой:




sh ./lynis audit system




Выглядеть всё будет примерно так:







В отчёте довольно таки много информации, на которую сканер обращает внимание администратора — проверяются настройки загрузки, настройки ядра, фаервола, параметры сети, активные порты, установленное ПО, доступные и запущенные сервисы… В зависимости от того какой набор ПО установлен на сервере, Lynis даст необходимые рекомендации по тому, что стоит проверить или изменить в настойках системы.




Пользовательская настройка аудита Lynis




Этот раздел научит вас создавать пользовательские списки тестов аудита Lynis и исключать ненужные тесты.




Профили, которые управляют аудитом, определяются в файлах с
расширением .prf в каталоге /etc/lynis. Профиль по умолчанию называется
default.prf. Не редактируйте этот профиль по умолчанию напрямую. Любые
изменения, которые вы хотите внести в аудит, добавляются в файл
custom.prf в том же каталоге.




Создайте файл /etc/lynis/custom.prf:




sudo nano /etc/lynis/custom.prf




Для GitHub создайте файл в директории lynis-master/




В этом файле можно определить список тестов, которые нужно исключить из аудита Lynis. Например:




  • FILE-6310: проверка разделов.
  • HTTP-6622: тест установки Nginx.
  • HTTP-6702: тест установки Apache. Этот и предыдущий тест выполняются
    по умолчанию. Если вы используете Nginx, отключите тест Apache (и
    наоборот).
  • PRNT-2307 и PRNT-2308: тесты принт-сервера.
  • TOOL-5002: тест инструментов автоматизации (типа Puppet и Salt).
    Если вы не пользуетесь такими инструментами, исключите этот тест.




Чтобы исключить тест, используйте директиву skip-test и укажите ID теста. Добавьте в файл custom.prf такие строки:




# Lines starting with "#" are comments
# Skip a test (one per line)
# This will ignore separation of partitions test
skip-test=FILE-6310
# Is Nginx installed?
skip-test=HTTP-6622
# Is Apache installed?
skip-test=HTTP-6702
# Skip checking print-related services
skip-test=PRNT-2307
skip-test=PRNT-2308
# If a test id includes more than one test use this form to ignore a particular test
skip-test=SSH-7408:tcpkeepalive




Сохраните и закройте файл.




Во время следующего аудита Lynis пропустит тесты, указанные в
пользовательском профиле. Тесты будут исключены из результатов аудита, а
также из раздела предложений.




Актуальную версию плагинов от сообщества, можно скачать с соответствующей страницы на сайте.




При необходимости, можно настроить регулярную проверку сервера по крону, делается это, вот таким скриптом:




sudo nano /etc/cron.daily/lynis




#!/bin/sh

AUDITOR="automated"
DATE=$(date +%Y%m%d)
HOST=$(hostname)
LOG_DIR="/var/log/"
REPORT="$LOG_DIR/report-${HOST}.${DATE}"
DATA="$LOG_DIR/report-data-${HOST}.${DATE}.txt"

/usr/bin/lynis audit system --auditor "${AUDITOR}" --cronjob > ${REPORT}
if [ -f /var/log/lynis-report.dat ]; then
 mv /var/log/lynis-report.dat ${DATA}
fi




Возможно пути до директории с lynis и логами будут отличаться в зависимости от ОС.




Вместо заключения… Lynis — удобный и функциональный
инструмент для аудита безопасности системы. Со своими задачами
справляется отлично. В рабочем процессе использую его вместе с такими
утилитами как rkhunter и chkrootkit и, рекомендую его к использованию
другим администраторам.



2019-09-17T11:00:24
Безопасность