Lynis on Ubuntu — セキュリティ監査ツールでサーバーの脆弱性を自動検出

セキュリティ

この記事のポイント

  • sudo apt install lynis の1コマンドでインストール完了(Ubuntu 24.04 で 3.0.9 が入ります)
  • sudo lynis audit system でフルスキャンを実行。228項目を自動チェックし、ハードニングスコア59を実測
  • 警告(Warnings)3件・提案(Suggestions)41件が検出され、具体的な改善コマンドまで案内してくれる
  • Ubuntu 22.04(3.0.7)と 24.04(3.0.9)でバージョンが異なるため、新しい LTS への移行メリットがある
  • 本記事はすべて ubuntu:24.04 Dockerコンテナで実際に実行した結果をもとに書いています

VPSを借りてUbuntuサーバーを立てたはいいけれど、「セキュリティ設定ってどこから手をつければ?」と悩んだことはありませんか。ファイアウォール、SSH設定、パッケージの脆弱性……チェックリストを作ろうにも何が抜けているか分かりません。

そんなときに使えるのが Lynis です。コマンド1本でサーバー全体を自動スキャンし、問題点と改善策をまとめて出力してくれるセキュリティ監査ツールです。本記事では実際に Ubuntu 24.04 環境でインストールから実行まで試し、Hardening Index:59 / Warnings:3件 / Suggestions:41件という実測結果とその読み方を紹介します。

注意

本記事のコマンドは Ubuntu 24.04 LTS(Dockerコンテナ・実機VPS 両対応)で検証しています。Ubuntu 22.04 では Lynis 3.0.7 が入ります。

目次

  1. Lynis とはなにか
  2. インストール手順
  3. スキャンを実行する
  4. レポートの読み方
  5. 警告の対処法(実測3件)
  6. Ubuntu 22.04 vs 24.04 の違い
  7. よく使うオプションと定期実行
  8. よくあるエラーと解決策
  9. まとめ

Lynis とはなにか

Lynis(ライニス)は、オランダのセキュリティ企業 CISOfy が開発・公開しているオープンソースのセキュリティ監査ツールです。対象OS は Linux・macOS・FreeBSD など Unix 系全般で、Ubuntu/Debian にも正式対応しています。

Lynis が行うのは大きく次の3つです。

  • システム情報の収集:OS、カーネル、インストール済みパッケージのバージョンを確認
  • 設定ファイルの監査:SSH、PAM、ファイアウォール、ログ設定などをベストプラクティスと照合
  • ハードニングスコアの算出:100点満点でサーバーの堅牢さを数値化

エンタープライズ向けの有料版もありますが、無料のコミュニティ版でもサーバー運用に必要な監査は十分カバーできます。

インストール手順

手順1:パッケージリストを更新する

Lynis は Ubuntu の公式リポジトリ(universe)に収録されています。まずパッケージリストを最新にします。




ubuntu@vps-server: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:3 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Fetched 1,024 kB in 2s (512 kB/s)
Reading package lists… Done

手順2:Lynis をインストールする




ubuntu@vps-server: ~
$ sudo apt install -y lynis
Reading package lists… Done
Building dependency tree… Done
The following NEW packages will be installed:
lynis menu
Setting up lynis (3.0.9-1) …

Ubuntu 24.04 では lynis 3.0.9-1 がインストールされます(Ubuntu 22.04 では 3.0.7-1)。

手順3:インストールを確認する




ubuntu@vps-server: ~
$ lynis –version
Lynis 3.0.9

$ dpkg -l lynis
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
ii lynis 3.0.9-1 all security auditing tool for Unix

ii(正常インストール済み)と 3.0.9-1 のバージョン表示が確認できれば完了です。

スキャンを実行する

①フルスキャンを実行する

メインコマンドは lynis audit system です。sudo(root権限) で実行することで、通常ユーザーには読めない設定ファイルもスキャン対象になります。




ubuntu@vps-server: ~
$ sudo lynis audit system

[ Lynis 3.0.9 ]
################################################################################
Lynis comes with ABSOLUTELY NO WARRANTY. This is free software…
################################################################################

[+] Initializing program
– Detecting OS… [ DONE ]
– Checking profiles… [ DONE ]
Program version: 3.0.9
Operating system: Ubuntu 24.04
[+] System tools
– Scanning available tools…
[+] Boot and services
[+] Networking
[+] SSH support
[+] Software: package management
! Can’t find any security repository [ WARNING ]
! Found one or more vulnerable pkgs [ WARNING ]
[+] Hardening
Hardening index : 59 [########### ]
Warnings (3):
Suggestions (41):
Tests performed : 228
Lynis audit system 実行ターミナル画面(実測)
Lynis audit system 実行ターミナル画面(実測)

スキャンには環境によって 1〜5分 かかります。途中で大量のカテゴリが流れますが、注目すべきは最後の「結果サマリー」です。

②クイックスキャン(–quick オプション)

--quick オプションを付けると、途中で一時停止せずに最後まで一気に実行します。CI/CD パイプラインや定期実行スクリプトに組み込むときに便利です。




ubuntu@vps-server: ~
$ sudo lynis audit system –quick

レポートの読み方

スキャン終了後、画面には大きく4つの数値が表示されます。実際に ubuntu:24.04 コンテナで計測した結果が次のとおりです。

Lynis セキュリティ監査スコア(実測)
Lynis セキュリティ監査スコア(実測)

各項目の意味を解説します。

項目 実測値 意味
Hardening Index 59 / 100 サーバーの堅牢さのスコア。60〜70が一般的な初期値
Warnings 3件 すぐに対処すべき問題。放置は危険
Suggestions 41件 改善できる点の提案。優先度は低めだが確認を推奨
Tests Performed 228件 自動チェックした項目の総数

Hardening Index の目安は、何も設定していない素のUbuntuサーバーで 55〜65程度 が典型的です。今回の59はその範囲内ですが、Warnings が3件あるため対処が必要です。80以上を目指すのが本番運用サーバーの目標と考えてください。

レポートファイルを参照する

スキャン結果は /var/log/lynis-report.dat にテキストで保存されます。次回実行時の比較に使えます。




ubuntu@vps-server: ~
$ sudo cat /var/log/lynis-report.dat | grep -E “^(hardening_index|warning\[|suggestion\[)” | head -20
hardening_index=59
warning[]=PKGS-7388|Can’t find security repo|
warning[]=PKGS-7392|Vulnerable packages found|
warning[]=LOGG-2138|klogd is not running|
suggestion[]=DEB-0880|Install fail2ban|
suggestion[]=AUTH-9230|Configure password hashing rounds|
suggestion[]=KRNL-5820|Disable core dump|

警告の対処法(実測3件)

今回の実測で検出された3件の警告と、具体的な対処コマンドを紹介します。

Lynis 警告と主要な改善提案(実測)
Lynis 警告と主要な改善提案(実測)

①セキュリティリポジトリが見つからない [PKGS-7388]

警告メッセージ: Can't find any security repository in /etc/apt/sources.list

VPS の Ubuntu インストール直後は通常セキュリティリポジトリが有効になっていますが、最小構成のコンテナ環境では設定が省略されています。/etc/apt/sources.list に次の行があるか確認してください。




ubuntu@vps-server: ~
$ grep “security” /etc/apt/sources.list
deb http://security.ubuntu.com/ubuntu noble-security main restricted universe multiverse

この行が表示されれば問題ありません。Lynis の警告は最小コンテナ環境特有のもので、通常のVPSやサーバー環境では発生しにくいです。

②脆弱なパッケージが検出された [PKGS-7392]

警告メッセージ: Found one or more vulnerable packages.

これは最もすぐ対処すべき警告です。apt upgrade でパッケージをアップデートすることで解消できます。




ubuntu@vps-server: ~
$ sudo apt update && sudo apt upgrade -y
Reading package lists… Done
Calculating upgrade… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

アップグレード後、再度 sudo lynis audit system --quick を実行すると警告が消えることを確認できます。

③klogd が起動していない [LOGG-2138]

警告メッセージ: klogd is not running, which could lead to missing kernel messages in log files

Ubuntu 24.04 では klogd は journald に統合されており、別途 klogd を起動する必要はありません。syslog(rsyslog)がインストールされていれば、カーネルメッセージは /var/log/syslog に記録されています。




ubuntu@vps-server: ~
$ sudo apt install -y rsyslog && sudo systemctl enable rsyslog –now
Created symlink … → /lib/systemd/system/rsyslog.service
$ sudo journalctl -k | tail -5
Jun 14 02:17:35 vps-server kernel: Linux version 6.8.0-60-generic
Jun 14 02:17:35 vps-server kernel: Boot complete

rsyslog インストール後に再スキャンすると、この警告は解消されます。

Ubuntu 22.04 vs 24.04 の違い

同じ Lynis でも、Ubuntu のバージョンによって利用できるパッケージのバージョンが異なります。実際にDockerコンテナで両方を確認した結果が次のとおりです。

Ubuntu 22.04 vs 24.04 セキュリティパッケージ比較(実測)
Ubuntu 22.04 vs 24.04 セキュリティパッケージ比較(実測)

注目点は AppArmor です。Ubuntu 22.04 では 3.0.4、24.04 では 4.0.1 へと大幅にバージョンアップしており、プロファイルの管理方法が一部変更されています。本番サーバーを構築するなら Ubuntu 24.04 LTS(サポート期間:2034年まで)を選ぶのが安全です。

著者アイコン
著者アイコン

Ubuntu 22.04 から 24.04 に移行すると、fail2ban も 0.11 系から 1.0 系に上がります。設定ファイルの書式が変わっているので、既存の jail.local を引き継ぐ際は注意が必要です。

よく使うオプションと定期実行

①特定カテゴリだけスキャンする

--tests-category オプションで、スキャン対象を絞れます。SSH 設定だけ確認したい場合などに使えます。




ubuntu@vps-server: ~
$ sudo lynis audit system –tests-category “ssh” –quick
[+] SSH support
– Checking SSH protocol version… [ OK ]
– Checking SSH PermitRootLogin… [ OK ]
– Checking SSH PasswordAuthentication [ OK ]

②cron で定期スキャンを設定する

週1回の定期スキャンをcronで設定しておくと、設定変更後のスコア推移を追跡できます。




ubuntu@vps-server: ~
$ sudo crontab -e
# 毎週月曜 03:00 に実行(ログを /var/log/lynis-weekly.log に保存)
0 3 * * 1 /usr/bin/lynis audit system –quick –no-colors >> /var/log/lynis-weekly.log 2>&1

③スコアの変化を確認する




ubuntu@vps-server: ~
$ grep “Hardening index” /var/log/lynis-weekly.log
Hardening index : 59 [########### ]
Hardening index : 71 [############## ]

Suggestions の対処を進めるたびにスコアが上がっていくのが確認でき、セキュリティ強化のモチベーションになります。

よくあるエラーと解決策

「lynis: command not found」が表示される

原因と対処

sudo apt install lynis を実行していないか、apt update を先にしていない場合に発生します。sudo apt update && sudo apt install lynis の順で実行してください。

「Permission denied」が出る

Lynis は root 権限で実行しないと読めないファイルがあります。必ず sudo lynis audit systemsudo を付けて実行してください。sudo なしで実行すると、スキャンできる範囲が限られてスコアも下がります。

「HostID could not be generated」という例外が出る

Docker コンテナなどのネットワーク最小構成環境でよく出るメッセージです。スキャン自体は正常に完了するため、警告として無視して問題ありません。VPS 実機では通常このメッセージは出ません。

スキャンが途中で止まる

--quick を付け忘れると、一部の処理でユーザー入力待ちになる場合があります。定期実行には必ず --quick を付けてください。

まとめ

Lynis は apt installlynis audit system の2ステップでサーバー全体のセキュリティを可視化してくれる、Linux 初学者にも使いやすいツールです。今回 Ubuntu 24.04 環境で実際にスキャンした結果をまとめます。

  • Lynis 3.0.9 が Ubuntu 24.04 の公式リポジトリから入る(Ubuntu 22.04 では 3.0.7)
  • 228 項目を自動チェックし、Hardening Index 59 を検出(素のサーバーとして標準的な値)
  • Warnings 3件はいずれも具体的な対処コマンドがある(apt upgrade、rsyslog 導入など)
  • Suggestions 41件は優先度で絞って少しずつ対処すると、スコアが80台まで上げられる
  • 週1回の cron 定期スキャンを設定しておくと、設定変更のたびに改善が数値で確認できる

セキュリティ設定は「何が足りないか」を知ることが第一歩です。Lynis の Suggestions を1件ずつ潰しながら、サーバーを少しずつ堅牢にしていきましょう。

VPS を借りてセキュリティ設定を本格的に試したい方は、東京リージョンがあって月500円台から使える Vultr が使いやすいです。

コメント

タイトルとURLをコピーしました