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

前書き

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

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

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

前提条件

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

ステップ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を特権モードと非特権(ペンテスト)モードで実行できます。 後者のモードでは、ルート権限を必要とする一部のテストはスキップされます。 そのため、 `+ sudo +`を使用して特権モードで監査を実行する必要があります。 このコマンドを実行して、最初の監査を実行します。

sudo lynis audit system

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

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

監査が完了したら、結果、警告、提案を確認し、関連する提案を実装します。

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

Lynis監査出力の最初の重要な部分は、純粋に情報提供です。 カテゴリ別にグループ化されたすべてのテストの結果が表示されます。 情報は、* NONE WEAK DONE FOUND NOT_FOUND OK WARNING *などのキーワードの形式を取ります。

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監査の結果セクションを確認すると、* Printers and Spools *カテゴリの下に2つのテストがあります。

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

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

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

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

この出力は、「+ inetd 」がアクティブではないことを示していますが、Ubuntu 16.04サーバーでは「 inetd 」が「 systemd +」に置き換えられているため、これは予想されます。 それを知っていれば、そのテストを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番目の警告は、サーバーの再起動が必要であることを示しています。 これはおそらく、カーネルのアップグレードを伴うシステムの更新が最近実行されたためと思われます。 ここでの解決策は、システムを再起動することです。

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

sudo lynis show details

したがって、テスト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監査提案の実装

警告セクションの後に、実装された場合、サーバーが攻撃やマルウェアに対して脆弱にならないようにするための一連の提案が表示されます。 このステップでは、テストUbuntu 16.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 +`でディレクティブを検索してください。 その情報はhttp://manpages.ubuntu.com/manpages/xenial/en/man5/sshd_config.5.html [オンラインで入手可能]にもあります。

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

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

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

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)を満たすために、「+ rkhunter 」、「 chkrootkit 」、またはOSSECをインストールすることです。 OSSECは、アラートを生成および送信できるホストベースの侵入検知システムです。 Lynisが実行したいくつかのテストに役立つ非常に優れたセキュリティアプリケーションです。 このツールの詳細については、https://www.digitalocean.com/community/tutorials?q = ossec [このDigitalOceanチュートリアル]をご覧ください。 ただし、OSSECのみをインストールしても、この特定のテストはパスしません。 ` chkrootkit +`をインストールすると、ついにパスします。 これは、Lynisが提案する以上の追加調査が必要になる場合がある別のケースです。

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

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 *:Nginx Webサーバーのインストールのテストに使用されます。

  • * HTTP-6702 *:Apache Webサーバーのインストールを確認するために使用されます。 このテストと上記のNginxテストはデフォルトで実行されます。 したがって、ApacheではなくNginxがインストールされている場合は、Apacheテストをスキップすることをお勧めします。

  • * PRNT-2307 および PRNT-2308 *:プリントサーバーの確認に使用されます。

  • * TOOL-5002 *:PuppetやSaltなどの自動化ツールを確認するために使用します。 サーバーにこのようなツールが必要ない場合は、このテストをスキップしてもかまいません。

  • * SSH-7408:tcpkeepalive *:複数のLynisテストを単一のテスト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が_hardening index_と呼ぶものを見てみましょう。

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

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

OutputLynis security scan details:

 Hardening index :
 Tests performed : 206
 Plugins enabled : 0

この出力は、実行されたテストの数と、サーバーがどれだけ安全であるかを示すためにLynisが提供する数値である_hardening index_を示します。 この番号はLynisに固有です。 強化インデックスは、修正する警告と実装する提案に関連して変化します。 この出力は、システムのセキュリティインデックスが64であることを示しています。これは、新しいUbuntu 16.04サーバーでの最初のLynis監査からのものです。

警告を修正し、ほとんどの提案を実施した後、新しい監査では次の出力が得られました。 強化インデックスがわずかに高いことがわかります。

OutputLynis security scan details:

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

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

結論

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

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

Lynisの詳細については、公式ドキュメントのhttps://cisofy.com/documentation/lynis/get-started[Getly Started with Lynis]をご覧ください。 Lynisはオープンソースプロジェクトです。貢献することに興味がある場合は、プロジェクトのhttps://github.com/CISOfy/lynis[GitHubページ]にアクセスしてください。