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 и, рекомендую его к использованию другим администраторам.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 3 голоса
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять