Lynis — это инструмент для проверки системы на уязвимости. Грубо говоря, он содержит список всех известных уязвимостей Linux и проверяет, какие из них применимы к системе. На сентябрь 2017, в списке более 200 уязвимостей, с подробным описанием каждой из них и способами их исправления.

Установка Lynis

Версия Lynis в репозитории Ubuntu безнадежно устарела. Поэтому сначала нужно добавить в вашу ОС репозиторий Lynis. Инструкции смотрите на официальном сайте разработчика.

Аудит системы

Теперь — самое интересное.

  • Проверяем, нет ли новых обновлений для Lynis
    lynis update info
  • Запускаем аудит: 
    sudo lynis audit system
    • Можно без sudo, но тогда Lynis не сможет выполнить некоторые тесты и пропустит их.
  • Ждем пару минут и смотрим выдачу по аудиту.

Как читать аудит Lynis

Аудит Lynis — это огромный список проваленных и пройденных тестов, с небольшим выводом в конце. Именно этот вывод, который начинается со строк:  -[ Lynis 2.5.5 Results ]-, нам и нужен.

Там вас ждет список проблем. Первая строка каждого пункта — описание проблемы, вторая — описание решения, третья — ссылка на более подробные описания проблем и инструкции по их решению.

Список разделен на две части:

  • Warnings — это критические уязвимости, которые нужно исправить любой ценой. Например, старая версия брендмауэра, в которой есть ошибка.
  • Suggestions — это потенциальные уязвимости, которые хорошо бы закрыть, но если они там не просто так — можно оставить. Например, SSH на стандартном порту 22.

Пример вывода Lynis

 Warnings (3): 
  ---------------------------- 
  ! Reboot of system is most likely needed [KRNL-5830]  
    - Solution : reboot 
      https://cisofy.com/controls/KRNL-5830/ 
  ! Found one or more vulnerable packages. [PKGS-7392]  
      https://cisofy.com/controls/PKGS-7392/ 
  ! Couldn't find 2 responsive nameservers [NETW-2705]  
      https://cisofy.com/controls/NETW-2705/ 
  Suggestions (29): 
  ---------------------------- 
  * Set a password on GRUB bootloader to prevent altering boot configuration (e.g. boot in single user mode without password) [BOOT-5122]  
      https://cisofy.com/controls/BOOT-5122/ 
  * Install a PAM module for password strength testing like pam_cracklib or pam_passwdqc [AUTH-9262]  
      https://cisofy.com/controls/AUTH-9262/ 
  * Configure minimum password age in /etc/login.defs [AUTH-9286]  
      https://cisofy.com/controls/AUTH-9286/ 
  * Configure maximum password age in /etc/login.defs [AUTH-9286]  
      https://cisofy.com/controls/AUTH-9286/ 
  * Default umask in /etc/login.defs could be more strict like 027 [AUTH-9328]  
      https://cisofy.com/controls/AUTH-9328/ 
  * Default umask in /etc/init.d/rc could be more strict like 027 [AUTH-9328]  
      https://cisofy.com/controls/AUTH-9328/ 
  * To decrease the impact of a full /home file system, place /home on a separated partition [FILE-6310]  
      https://cisofy.com/controls/FILE-6310/ 
  * To decrease the impact of a full /tmp file system, place /tmp on a separated partition [FILE-6310]  
      https://cisofy.com/controls/FILE-6310/ 
  * To decrease the impact of a full /var file system, place /var on a separated partition [FILE-6310]  
      https://cisofy.com/controls/FILE-6310/ 
  * Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [STRG-1840]  
      https://cisofy.com/controls/STRG-1840/ 
  * Check DNS configuration for the dns domain name [NAME-4028]  
      https://cisofy.com/controls/NAME-4028/ 
  * Purge old/removed packages (63 found) with aptitude purge or dpkg --purge command. This will cleanup old configuration files, cron jobs and startup scripts. [PKGS-7346]  
      https://cisofy.com/controls/PKGS-7346/ 
  * Install debsums utility for the verification of packages with known good database. [PKGS-7370]  
      https://cisofy.com/controls/PKGS-7370/ 
  * Update your system with apt-get update, apt-get upgrade, apt-get dist-upgrade and/or unattended-upgrades [PKGS-7392]  
      https://cisofy.com/controls/PKGS-7392/ 
  * Install package apt-show-versions for patch management purposes [PKGS-7394]  
      https://cisofy.com/controls/PKGS-7394/ 
  * Check your resolv.conf file and fill in a backup nameserver if possible [NETW-2705]  
      https://cisofy.com/controls/NETW-2705/ 
  * Consider running ARP monitoring software (arpwatch,arpon) [NETW-3032]  
      https://cisofy.com/controls/NETW-3032/ 
  * Configure a firewall/packet filter to filter incoming and outgoing traffic [FIRE-4590]  
      https://cisofy.com/controls/FIRE-4590/ 
  * Check what deleted files are still in use and why. [LOGG-2190]  
      https://cisofy.com/controls/LOGG-2190/ 
  * Add a legal banner to /etc/issue, to warn unauthorized users [BANN-7126]  
      https://cisofy.com/controls/BANN-7126/ 
  * Add legal banner to /etc/issue.net, to warn unauthorized users [BANN-7130]  
      https://cisofy.com/controls/BANN-7130/ 
  * Enable process accounting [ACCT-9622]  
      https://cisofy.com/controls/ACCT-9622/ 
  * Enable sysstat to collect accounting (no results) [ACCT-9626]  
      https://cisofy.com/controls/ACCT-9626/ 
  * Enable auditd to collect audit information [ACCT-9628]  
      https://cisofy.com/controls/ACCT-9628/ 
  * Install a file integrity tool to monitor changes to critical and sensitive files [FINT-4350]  
      https://cisofy.com/controls/FINT-4350/ 
  * Determine if automation tools are present for system management [TOOL-5002]  
      https://cisofy.com/controls/TOOL-5002/ 
  * One or more sysctl values differ from the scan profile and could be tweaked [KRNL-6000]  
      https://cisofy.com/controls/KRNL-6000/ 
  * Harden compilers like restricting access to root user only [HRDN-7222]  
      https://cisofy.com/controls/HRDN-7222/ 
  * Harden the system by installing at least one malware scanner, to perform periodic file system scans [HRDN-7230]  
    - Solution : Install a tool like rkhunter, chkrootkit, OSSEC 
      https://cisofy.com/controls/HRDN-7230/