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