Ubuntu16.04でLynisを使用してセキュリティ監査を実行する方法

提供:Dev Guides
移動先:案内検索

序章

Lynis は、ホストベースのオープンソースのセキュリティ監査アプリケーションであり、Linuxやその他のUNIXライクなオペレーティングシステムのセキュリティプロファイルとポスチャを評価できます。

このチュートリアルでは、Lynisをにインストールし、それを使用してUbuntu16.04サーバーのセキュリティ監査を実行します。 次に、サンプル監査の結果を調べ、ニーズに関係のないテストをスキップするようにLynisを構成します。

Lynisは、システムの強化を自動的に実行しません。 ただし、システムを自分で強化する方法を示す提案が表示されます。 そのため、Linuxシステムのセキュリティに関する基本的な知識があると役に立ちます。 また、Lynisがデフォルトでスキャンする可能性のあるWebサーバー、データベース、その他のサービスなど、監査する予定のマシンで実行されているサービスについても理解しておく必要があります。 これは、安全に無視できる結果を特定するのに役立ちます。

:セキュリティ監査の実行には時間と忍耐が必要です。 Lynisをインストールしてサーバーの監査に使用する前に、時間をかけて記事全体を一度読んでおくことをお勧めします。


前提条件

この記事を完了するには、次のものが必要です。

  • Ubuntu 16.04 チュートリアルで示されているように、sudo権限とファイアウォールを持つ非rootユーザーで構成された1つのUbuntu16.04サーバー。

ステップ1—サーバーへのLynisのインストール

Lynisをインストールするにはいくつかの方法があります。 ソースからコンパイルし、バイナリをダウンロードしてシステムの適切な場所にコピーするか、パッケージマネージャーを使用してインストールすることができます。 パッケージマネージャーを使用することは、Lynisをインストールして最新の状態に保つための最も簡単な方法であるため、これを使用する方法です。

ただし、Ubuntu 16.04では、リポジトリから入手できるバージョンは最新バージョンではありません。 最新の機能にアクセスできるようにするために、プロジェクトの公式リポジトリからLynisをインストールします。

LynisのソフトウェアリポジトリはHTTPSプロトコルを使用しているため、パッケージマネージャーのHTTPSサポートがインストールされていることを確認する必要があります。 次のコマンドを使用して確認します。

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

インストールされている場合、そのコマンドの出力は次のようになります。

OutputStatus: install ok installed

出力にインストールされていないことが示されている場合は、sudo apt-get install apt-transport-httpsを使用してインストールしてください

唯一の依存関係がインストールされたので、Lynisをインストールします。 そのプロセスを開始するには、リポジトリのキーを追加します。

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

キーが正常に追加されたことを示す次の出力が表示されます。

OutputExecuting: /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) <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

次に、Lynisリポジトリをパッケージマネージャーで使用可能なリポジトリのリストに追加します。

sudo add-apt-repository "deb [arch=amd64] https://packages.cisofy.com/community/lynis/deb/ xenial main"

新しく追加されたリポジトリ内のパッケージをシステムで使用できるようにするには、パッケージデータベースを更新します。

sudo apt-get update

最後に、Lynisをインストールします。

sudo apt-get install lynis

インストールが完了すると、lynisコマンドとそのサブコマンドにアクセスできるようになります。 次に、Lynisの使い方を見てみましょう。

ステップ2–監査の実行

インストールが完了すると、Lynisを使用してシステムのセキュリティ監査を実行できるようになります。 Lynisで実行できるアクションのリストを表示することから始めましょう。 次のコマンドを実行します。

lynis show commands

次の出力が表示されます。

Output
Commands:
lynis audit
lynis configure
lynis show
lynis update
lynis upload-only

Lynisの監査は、Lynisが監査を実行する方法を制御する設定を持つ構成ファイルのようなプロファイルを使用して可能になります。 デフォルトプロファイルの設定を表示します。

lynis show settings

次のような出力が表示されます。

Output# Colored screen output
colors=1

# Compressed uploads
compressed-uploads=0

# Use non-zero exit code if one or more warnings were found
error-on-warnings=0

...

# Upload server (ip or hostname)
upload-server=[not configured]

# Data upload after scanning
upload=no

# Verbose output
verbose=0

# Add --brief to hide descriptions, --configured-only to show configured items only, or --nocolors to remove colors

監査を実行する前に、新しいバージョンが利用可能かどうかを確認することをお勧めします。 このようにして、最新の提案や情報を入手できます。 次のコマンドを発行して、更新を確認します。

lynis update info

出力は次のようになります。これは、Lynisのバージョンが最新であることを示しています。

Output == Lynis ==

  Version            : 2.4.8
  Status             : Up-to-date
  Release date       : 2017-03-29
  Update location    : https://cisofy.com/lynis/


2007-2017, CISOfy - https://cisofy.com/lynis/

または、lynis update checkと入力すると、次の1行の出力が生成されます。

Outputstatus=up-to-date

バージョンの更新が必要な場合は、パッケージマネージャーを使用して更新を実行してください。

システムの監査を実行するには、lynis audit systemコマンドを使用します。 Lynisは、特権モードと非特権(ペネトレーション)モードで実行できます。 後者のモードでは、root権限を必要とする一部のテストはスキップされます。 したがって、sudoを使用して特権モードで監査を実行する必要があります。 次のコマンドを実行して、最初の監査を実行します。

sudo lynis audit system

認証後、Lynisはテストを実行し、結果を画面にストリーミングします。 Lynisの監査には、通常1分以内で完了します。

Lynisが監査を実行するとき、それはカテゴリに分けられたいくつかのテストを通過します。 各監査の後、テスト結果、デバッグ情報、およびシステムを強化するための提案が標準出力(画面)に書き込まれます。 より詳細な情報は/var/log/lynis.logに記録され、レポートデータは/var/log/lynis-report.datに保存されます。 レポートデータにはサーバーとアプリケーション自体に関する一般的な情報が含まれているため、注意が必要なファイルはログファイルです。 ログファイルは監査ごとにパージ(上書き)されるため、前回の監査の結果は保存されません。

監査が完了したら、結果、警告、および提案を確認し、関連する提案のいずれかを実装します。

このチュートリアルの作成に使用されたマシンで実行されたLynis監査の結果を見てみましょう。 監査で表示される結果は異なる場合がありますが、それでもフォローできるはずです。

Lynis監査出力の最初の重要な部分は、純粋に情報提供です。 カテゴリ別にグループ化されたすべてのテストの結果が表示されます。 情報は、 NONEWEAKDONEFOUNDNOT_FOUND 、[ X130X] OK 、および警告

Output[+] Boot and services
------------------------------------
 - Service Manager                                           [ systemd ]
 - Checking UEFI boot                                        [ DISABLED ]
 - Checking presence GRUB                                    [ OK ]
 - Checking presence GRUB2                                   [ FOUND ]
   - Checking for password protection                        [ WARNING ]

..

[+] File systems
------------------------------------
 - Checking mount points
    - Checking /home mount point                              [ SUGGESTION ]
    - Checking /tmp mount point                               [ SUGGESTION ]
    - Checking /var mount point                               [ OK ]
 - Query swap partitions (fstab)                             [ NONE ]
 - Testing swap partitions                                   [ OK ]
 - Testing /proc mount (hidepid)                             [ SUGGESTION ]
 - Checking for old files in /tmp                            [ OK ]
 - Checking /tmp sticky bit                                  [ OK ]
 - ACL support root file system                              [ ENABLED ]
 - Mount options of /                                        [ OK ]
 - Checking Locate database                                  [ FOUND ]
 - Disable kernel support of some filesystems
    - Discovered kernel modules: udf

...

[+] Hardening
------------------------------------
 - Installed compiler(s)                                   [ FOUND ]
 - Installed malware scanner                               [ NOT FOUND ]
 - Installed malware scanner                               [ NOT FOUND ]

...

[+] Printers and Spools
------------------------------------
 - Checking cups daemon                                      [ NOT FOUND ]
 - Checking lp daemon                                        [ NOT RUNNING ]

Lynisは箱から出して200以上のテストを実行しますが、サーバーにすべてが必要なわけではありません。 どのテストが必要でどれが不要かをどうやって見分けることができますか? ここで、サーバー上で何を実行すべきか、または実行すべきでないかについての知識が役立ちます。 たとえば、一般的なLynis監査の結果セクションを確認すると、プリンタとスプールカテゴリに2つのテストがあります。

Output[+] Printers and Spools
------------------------------------
 - Checking cups daemon                                      [ NOT FOUND ]
 - Checking lp daemon                                        [ NOT RUNNING ]

実際にUbuntu16.04サーバーでプリントサーバーを実行していますか? クラウドベースのプリントサーバーを実行している場合を除き、Lynisが毎回そのテストを実行する必要はありません。

これはスキップできるテストの完璧な例ですが、他のテストはそれほど明白ではありません。 この部分的な結果のセクションを例にとってみましょう。

Output[+] Insecure services
------------------------------------
  - Checking inetd status                                     [ NOT ACTIVE ]

この出力は、inetdがアクティブではないことを示していますが、Ubuntuがinetdsystemdに置き換えたため、Ubuntu16.04サーバーではこれが予想されます。 それを知っていると、サーバーの監査の一部としてLynisが実行してはならないテストとしてそのテストにタグを付けることができます。

各テスト結果を確認すると、不要なテストのかなり良いリストが表示されます。 そのリストが手元にあれば、Lynisをカスタマイズして、将来の監査でそれらを無視することができます。 ステップ5でそれを行う方法を学びます。

次のセクションでは、Lynis監査出力のさまざまな部分について説明し、Lynisを使用してシステムを適切に監査する方法をよりよく理解できるようにします。 最初に、Lynisによって発行された警告に対処する方法を見てみましょう。

ステップ3–Lynis監査警告の修正

Lynisの監査出力には、常に警告セクションが含まれているとは限りませんが、表示されている場合は、このセクションを読んだ後に発生した問題を修正する方法がわかります。

警告は、結果セクションの後にリストされています。 各警告は、警告テキスト自体から始まり、括弧内の同じ行に警告を生成したテストが含まれます。 次の行には、提案された解決策が含まれています(存在する場合)。 最後の行はセキュリティ制御URLであり、警告に関するガイダンスがあります。 残念ながら、URLには必ずしも説明が記載されていないため、さらに調査が必要になる場合があります。

次の出力は、この記事で使用したサーバーで実行されたLynis監査の警告セクションからのものです。 各警告を確認し、それを解決または修正する方法を見てみましょう。

OutputWarnings (3):
  ----------------------------
! Version of Lynis is very old and should be updated [LYNIS]
    https://cisofy.com/controls/LYNIS/

! 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/

最初の警告は、Lynisを更新する必要があることを示しています。 これは、この監査でLynisのバージョンが使用されたため、結果が完全でない可能性があることも意味します。 手順3に示すように、結果を実行する前に基本的なバージョンチェックを実行した場合、これは回避できたはずです。 これの修正は簡単です:Lynisを更新してください。

2番目の警告は、サーバーを再起動する必要があることを示しています。 これは、カーネルのアップグレードを伴うシステムアップデートが最近実行されたためと考えられます。 ここでの解決策は、システムを再起動することです。

警告やテスト結果について疑問がある場合は、LynisにテストIDを照会することで、テストに関する詳細情報を取得できます。 それを達成するためのコマンドは次の形式を取ります。

sudo lynis show details test-id

したがって、テストID KRNL-5830 を持つ2番目の警告に対して、次のコマンドを実行できます。

sudo lynis show details KRNL-5830

その特定のテストの出力は次のとおりです。 これにより、Lynisが実行するテストごとにウォークスルーするプロセスがわかります。 この出力から、Lynisは、警告を発生させたアイテムに関する特定の情報も提供します。

Output2017-03-21 01:50:03 Performing test ID KRNL-5830 (Checking if system is running on the latest installed kernel)
2017-03-21 01:50:04 Test: Checking presence /var/run/reboot-required.pkgs
2017-03-21 01:50:04 Result: file /var/run/reboot-required.pkgs exists
2017-03-21 01:50:04 Result: reboot is needed, related to 5 packages
2017-03-21 01:50:04 Package: 5
2017-03-21 01:50:04 Result: /boot exists, performing more tests from here
2017-03-21 01:50:04 Result: /boot/vmlinuz not on disk, trying to find /boot/vmlinuz*
2017-03-21 01:50:04 Result: using 4.4.0.64 as my kernel version (stripped)
2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-64-generic
2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-65-generic
2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-66-generic
2017-03-21 01:50:04 Action: checking relevant kernels
2017-03-21 01:50:04 Output: 4.4.0.64 4.4.0.65 4.4.0.66
2017-03-21 01:50:04 Result: Found 4.4.0.64 (= our kernel)
2017-03-21 01:50:04 Result: found a kernel (4.4.0.65) later than running one (4.4.0.64)
2017-03-21 01:50:04 Result: Found 4.4.0.65
2017-03-21 01:50:04 Result: found a kernel (4.4.0.66) later than running one (4.4.0.64)
2017-03-21 01:50:04 Result: Found 4.4.0.66
2017-03-21 01:50:04 Warning: Reboot of system is most likely needed [test:KRNL-5830] [details:] [solution:text:reboot]
2017-03-21 01:50:04 Hardening: assigned partial number of hardening points (0 of 5). Currently having 7 points (out of 14)
2017-03-21 01:50:04 Checking permissions of /usr/share/lynis/include/tests_memory_processes
2017-03-21 01:50:04 File permissions are OK
2017-03-21 01:50:04 ===---------------------------------------------------------------===

3番目の警告PKGS-7392は、脆弱なパッケージに関するものであり、次のコマンドを実行します。

sudo lynis show details PKGS-7392

出力には、更新が必要なパッケージに関する詳細情報が表示されます。

Output2017-03-21 01:39:53 Performing test ID PKGS-7392 (Check for Debian/Ubuntu security updates)
2017-03-21 01:39:53 Action: updating repository with apt-get
2017-03-21 01:40:03 Result: apt-get finished
2017-03-21 01:40:03 Test: Checking if /usr/lib/update-notifier/apt-check exists
2017-03-21 01:40:03 Result: found /usr/lib/update-notifier/apt-check
2017-03-21 01:40:03 Test: checking if any of the updates contain security updates
2017-03-21 01:40:04 Result: found 7 security updates via apt-check
2017-03-21 01:40:04 Hardening: assigned partial number of hardening points (0 of 25). Currently having 96 points (out of 149)
2017-03-21 01:40:05 Result: found vulnerable package(s) via apt-get (-security channel)
2017-03-21 01:40:05 Found vulnerable package: libc-bin
2017-03-21 01:40:05 Found vulnerable package: libc-dev-bin
2017-03-21 01:40:05 Found vulnerable package: libc6
2017-03-21 01:40:05 Found vulnerable package: libc6-dev
2017-03-21 01:40:05 Found vulnerable package: libfreetype6
2017-03-21 01:40:05 Found vulnerable package: locales
2017-03-21 01:40:05 Found vulnerable package: multiarch-support
2017-03-21 01:40:05 Warning: Found one or more vulnerable packages. [test:PKGS-7392] [details:-] [solution:-]
2017-03-21 01:40:05 Suggestion: Update your system with apt-get update, apt-get upgrade, apt-get dist-upgrade and/or unattended-upgrades [test:PKGS-7392] [details:-] [solution:-]
2017-03-21 01:40:05 ===---------------------------------------------------------------===

このための解決策は、パッケージデータベースを更新し、システムを更新することです。

警告の原因となった項目を修正した後、監査を再実行する必要があります。 後続の監査には同じ警告がないはずですが、新しい警告が表示される可能性があります。 その場合は、この手順に示されているプロセスを繰り返して、警告を修正してください。

Lynisによって生成された警告を読み取って修正する方法がわかったので、Lynisが提供する提案を実装する方法を見てみましょう。

ステップ4—Lynis監査提案の実装

警告セクションの後に、サーバーを攻撃やマルウェアに対する脆弱性を軽減するための一連の提案が表示されます。 このステップでは、テスト用のUbuntu16.04サーバーの監査後にLynisによって生成されたいくつかの提案を実装する方法を学習します。 これを行うプロセスは、前のセクションの手順と同じです。

特定の提案は、提案自体で始まり、その後にテストIDが続きます。 次に、テストに応じて、次の行で、影響を受けるサービスの構成ファイルにどのような変更を加えるかを正確に示します。 最後の行は、件名に関する詳細情報を見つけることができるセキュリティ制御URLです。

たとえば、ここにLynis監査からの部分的な提案セクションがあり、SSHサービスに関連する提案を示しています。

OutputSuggestions (36):
  ----------------------------
  * Consider hardening SSH configuration [SSH-7408]
    - Details  : ClientAliveCountMax (3 --> 2)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : PermitRootLogin (YES --> NO)
      https://cisofy.com/controls/SSH-7408/  

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : Port (22 --> )
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : TCPKeepAlive (YES --> NO)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : UsePrivilegeSeparation (YES --> SANDBOX)
      https://cisofy.com/controls/SSH-7408/
...

環境によっては、これらすべての提案を安全に実装できます。 ただし、その決定を行うには、各ディレクティブの意味を知っている必要があります。 これらはSSHサーバーに関連するため、すべての変更はSSHデーモン構成ファイル/etc/ssh/sshd_configで行う必要があります。 LynisによるSSHに関する提案について疑問がある場合は、man sshd_configでディレクティブを検索してください。 その情報はオンラインでも入手できます。

提案の1つは、デフォルトのSSHポートを22から変更することを求めています。 その変更を行い、ファイアウォールを構成している場合は、必ずその新しいポートを介したSSHアクセスのルールを挿入してください。

警告セクションと同様に、sudo lynis show details test-idを使用してLynisにテストIDを照会することにより、提案に関するより詳細な情報を取得できます。

他の提案では、サーバーに追加のソフトウェアをインストールする必要があります。 これを例にとってみましょう。

Output* 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/

硬化テスト(HRDN-7230)を満たすために、rkhunterchkrootkit、またはOSSECをインストールすることをお勧めします。 OSSECは、アラートを生成および送信できるホストベースの侵入検知システムです。 これは、Lynisによって実行されるテストの一部に役立つ非常に優れたセキュリティアプリケーションです。 このツールの詳細については、これらのDigitalOceanチュートリアルを参照してください。 ただし、OSSECを単独でインストールしても、この特定のテストに合格することはありません。 chkrootkitをインストールすると、ようやく合格します。 これは、Lynisが提案する以上の追加の調査が必要になる場合があるもう1つのケースです。

別の例を見てみましょう。 これは、ファイル整合性テストの結果として表示される提案です。

Output* Install a file integrity tool to monitor changes to critical and sensitive files [FINT-4350]
      https://cisofy.com/controls/FINT-4350/

セキュリティ制御URLで示されている提案では、前の提案で言及されているOSSECプログラムについては言及されていませんが、それをインストールするだけで、後続の監査でテストに合格することができました。 これは、OSSECが非常に優れたファイル整合性監視ツールであるためです。

自分に当てはまらない提案は無視してかまいません。 次に例を示します。

Output* 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/

これまで、/home/tmp/var/usrなどのコアLinuxファイルシステムは、サーバー全体への影響を最小限に抑えるために別のパーティションにマウントされていました。ディスク容量が不足しています。 これは、特にクラウドサーバーでは、それほど頻繁に見られることではありません。 これらのファイルシステムは、同じルートパーティションにディレクトリとしてマウントされるようになりました。 しかし、そのようなシステムでLynis監査を実行すると、前の出力に示されているようないくつかの提案が得られます。 提案を実装する立場にない限り、提案を無視してLynisを構成し、提案が生成される原因となったテストが将来の監査で実行されないようにすることをお勧めします。

Lynisを使用してセキュリティ監査を実行するには、警告を修正して提案を実装するだけでは不十分です。 また、不要なテストを特定することも含まれます。 次のステップでは、このようなテストを無視するようにデフォルトのプロファイルをカスタマイズする方法を学習します。

ステップ5–Lynisセキュリティ監査のカスタマイズ

このセクションでは、サーバーに必要なテストのみを実行するようにLynisをカスタマイズする方法を学習します。 監査の実行方法を管理するプロファイルは、/etc/lynisディレクトリの.prf拡張子のファイルで定義されます。 デフォルトのプロファイルには、default.prfという適切な名前が付けられています。 そのデフォルトプロファイルを直接編集することはありません。 代わりに、プロファイル定義と同じディレクトリにあるcustom.prfファイルに必要な変更を追加します。

テキストエディタを使用して、/etc/lynis/custom.prfという名前の新しいファイルを作成します。

sudo nano /etc/lynis/custom.prf

このファイルを使用して、Lynisにいくつかのテストをスキップするように指示しましょう。 スキップしたいテストは次のとおりです。

  • FILE-6310 :パーティションの分離をチェックするために使用されます。
  • HTTP-6622 :NginxWebサーバーのインストールをテストするために使用されます。
  • HTTP-6702 :ApacheWebサーバーのインストールを確認するために使用されます。 このテストと上記のNginxテストはデフォルトで実行されます。 したがって、ApacheではなくNginxがインストールされている場合は、Apacheテストをスキップすることをお勧めします。
  • PRNT-2307およびPRNT-2308:プリントサーバーのチェックに使用されます。
  • TOOL-5002 :PuppetやSaltなどの自動化ツールをチェックするために使用します。 サーバーにそのようなツールが必要ない場合は、このテストをスキップしてもかまいません。
  • SSH-7408:tcpkeepalive :複数のLynisテストを1つのテストIDにグループ化できます。 そのテストID内にスキップしたいテストがある場合、これはそれを指定する方法です。

テストを無視するには、 skip-test ディレクティブに、無視するテストIDを1行に1つずつ渡します。 次のコードをファイルに追加します。

/etc/lynis/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はカスタムプロファイルで構成したテストIDに一致するテストをスキップします。 テストは、監査出力の結果セクションと提案セクションから省略されます。

/etc/lynis/custom.prfファイルでは、プロファイルの設定を変更することもできます。 これを行うには、設定を/etc/lynis/default.prfから/etc/lynis/custom.prfにコピーし、そこで変更します。 これらの設定を変更する必要はめったにないので、スキップできるテストを見つけることに集中してください。

次に、Lynisが硬化インデックスと呼んでいるものを見てみましょう。

ステップ6–硬化指数の解釈

すべてのLynis監査出力の下部、提案セクションのすぐ下に、次のようなセクションがあります。

OutputLynis security scan details:

  Hardening index : 64 [############        ]
  Tests performed : 206
  Plugins enabled : 0

この出力は、実行されたテストの数と、強化インデックスを示します。これは、サーバーの安全性を示すためにLynisが提供する数値です。 この番号はLynisに固有のものです。 強化インデックスは、修正する警告と実装する提案に関連して変化します。 この出力は、システムの強化インデックスが64であることを示しており、新しいUbuntu16.04サーバーでの最初のLynis監査からのものです。

警告を修正し、ほとんどの提案を実装した後、新しい監査で次の出力が得られました。 硬化指数がわずかに高いことがわかります。

OutputLynis security scan details:

 Hardening index : 86 [#################   ]
 Tests performed : 205
 Plugins enabled : 0

強化インデックスは、サーバーの安全性を正確に評価するものではなく、Lynisが実行したテストに基づいて、サーバーが安全に構成(または強化)されているかどうかを示すものにすぎません。 そして、あなたが見てきたように、インデックスが高いほど良いです。 Lynisのセキュリティ監査の目的は、高い強化インデックスを取得することだけでなく、それが生成する警告と提案を修正することです。

結論

このチュートリアルでは、Lynisをインストールし、それを使用してUbuntu 16.04サーバーのセキュリティ監査を実行し、Lynisが生成する警告と提案を修正する方法、およびLynisが実行するテストをカスタマイズする方法について説明しました。

少し余分な時間と労力がかかりますが、マシンをより安全にするために投資する価値があり、Lynisはそのプロセスをはるかに簡単にします。

Lynisの詳細については、公式ドキュメントの Get Started withLynisを参照してください。 Lynisはオープンソースプロジェクトであるため、貢献に興味がある場合は、プロジェクトのGitHubページにアクセスしてください。