MENU

Lynis入門|Linuxサーバーのセキュリティ監査を自動化する実践ガイド

「このサーバー、ちゃんとセキュリティ設定できているんだろうか」

Linuxサーバーを立ち上げた後、こんな漠然とした不安を感じたことはないでしょうか。チェックリストをもとに手作業で確認するのは時間がかかりすぎる。かといってセキュリティの専門業者に依頼するほどの予算はない。情シスが1人という環境では特に、そのジレンマは深刻です。

そんなときに頼りになるのが Lynis(リニス)です。Linuxサーバーのセキュリティ設定を自動でスキャンし、「何が足りていて、何が危険なのか」を構造化されたレポートで提示してくれるオープンソースのセキュリティ監査ツールです。

この記事では、Lynisのインストールから初回スキャンの実行、レポートの読み方、優先度の高い対応項目の絞り込み方まで、現場で使えるレベルで解説します。

Lynis入門|Linuxサーバーのセキュリティ監査を自動化する実践ガイド - 解説

目次

Lynisとは?Linuxサーバー監査に必要な理由

Lynisは、オランダのセキュリティ企業CISOfy(シソファイ)が開発・メンテナンスするオープンソースのセキュリティ監査ツールです。シェルスクリプトとして実装されており、追加のランタイムや依存ライブラリを必要とせず、Linux・Unix・macOSなど幅広い環境で動作します。

Lynisが行うチェックは多岐にわたります。

・認証・アカウント管理: パスワードポリシー、rootアクセス制限、不要アカウントの存在
・ファイルシステム: 重要ファイルのパーミッション、SUIDBITの設定状況
・カーネルパラメータ: sysctl設定によるネットワーク攻撃への耐性
・ネットワーク: 開放ポート、ファイアウォール設定の妥当性
・ログ・監査: auditd・syslogの設定状況
・ソフトウェア: インストール済みパッケージの更新状況
・ブートローダー: GRUBのパスワード保護
・ファイル整合性: AIDEなどの整合性チェックツールの導入有無

スキャン結果は「ハードニングインデックス」という0~100のスコアと、「WARNING(警告)」「SUGGESTION(提案)」のリストとして出力されます。これにより、セキュリティ専門知識がなくても「何から手をつければよいか」が把握できます。

Lynisのインストール方法

1. Debian / Ubuntu系

パッケージマネージャから直接インストールできます。

# パッケージリストを更新してインストール sudo apt update sudo apt install lynis

ただし、ディストリビューションのパッケージリポジトリ版は最新版でない場合があります。最新機能や検査ルールを使いたい場合は、後述のソースインストールを検討してください。

2. RHEL / Rocky Linux / AlmaLinux系

CISOfy公式のリポジトリを追加することで最新版をインストールできます。

# CISOfy公式リポジトリの追加 sudo rpm --import https://packages.cisofy.com/keys/cisofy-software-rpms-public.key echo "[lynis] name=CISOfy Software - Lynis package baseurl=https://packages.cisofy.com/community/lynis/rpm/ enabled=1 gpgcheck=1 gpgkey=https://packages.cisofy.com/keys/cisofy-software-rpms-public.key priority=2" | sudo tee /etc/yum.repos.d/cisofy-lynis.repo sudo dnf install lynis

3. GitHubからの直接ダウンロード(最新版を使いたい場合)

どのディストリビューションでも共通して使えるインストール方法です。パッケージ管理システムに依存しないため、バージョン管理がしやすいのが特徴です。

# /opt配下に展開する例 cd /opt sudo git clone https://github.com/CISOfy/lynis cd lynis # インストール確認 ./lynis show version

このインストール方法では `sudo ./lynis audit system` のように相対パスで実行します。

Lynisのスキャン実行手順

1. 初回スキャンを実行する

インストール後、まずは基本的なシステム監査を実行します。rootまたはsudoで実行することで、すべてのチェック項目が正確に評価されます。

# フルスキャンの実行 sudo lynis audit system # 画面出力を省略してログファイルだけ確認したい場合 sudo lynis audit system --quiet

スキャンには通常2~5分程度かかります。ターミナルにリアルタイムで各カテゴリの確認結果(OK / WARNING / SUGGESTION)が表示されます。

2. スキャン結果の保存先を確認する

Lynisはスキャン結果を2つのファイルに保存します。

# 詳細ログ(人間が読む用) /var/log/lynis.log # 機械処理用レポート(項目=値 形式) /var/log/lynis-report.dat

lynis-report.dat は、シェルスクリプトで自動解析したり、他のツールと連携したりするときに便利です。ハードニングインデックスの値もここから取り出せます。

レポートの読み方と優先度の判断

1. ハードニングインデックスを確認する

スキャン終了後の画面下部に、現在のセキュリティスコアが表示されます。

Hardening index : 63 [############ ] Tests performed : 248 Plugins enabled : 0

スコアの目安としては以下を参考にしてください。ただしあくまで目安であり、スコアだけで安全性を断定することはできません。

スコア 評価の目安 典型的な状態
0~40 要改善 インストール直後の素の状態
41~65 基本的な対策あり 最低限の設定は済んでいる
66~80 良好 積極的に堅牢化を進めている
81~100 高水準 セキュリティに注力している環境

新規に立ち上げたサーバーで初回スキャンを実行すると、50~65程度になることが多いです。ここから地道に改善していくのがLynisの使い方です。

2. WARNING(警告)とSUGGESTION(提案)の違い

Lynisの出力には2種類の問題が含まれます。

・WARNING: 現時点でセキュリティリスクが高い設定。攻撃者に直接悪用される可能性があるため、優先的に対応が必要です。
・SUGGESTION: 改善が望ましい設定。必須ではないが、対応することでスコアと安全性が向上します。

WARNINGは必ず最初に対応し、余力があればSUGGESTIONに取り組むのが現実的な進め方です。

3. 各WARNING/SUGGESTIONの詳細を確認する

各指摘事項には「TEST-ID」と呼ばれる識別子が付いています。

[WARNING]: Found some information disclosure in SMTP banner (SMTP-NULL-BANNER) [test:MAIL-8818] [SUGGESTION]: Install a package audit tool to determine vulnerable packages [test:PKGS-7398]

TEST-IDをもとに、スキャン後に詳細を確認できます。

# 特定のテスト結果の詳細を表示 sudo lynis show details MAIL-8818

対処法の概要とその背景が英語で表示されます。「なぜこれが問題なのか」「どう直せばよいか」の手がかりになります。

Linuxセキュリティ強化への活用:よく出るSUGGESTIONの対処例

1. ブートローダーにパスワードを設定する(BOOT-5122)

物理的にアクセス可能なサーバーでは、GRUBにパスワードを設定することで、起動時の不正操作を防げます。クラウド環境のVPSでは優先度が下がる場合もありますが、指摘が出た場合は確認しておきましょう。

2. コアダンプを無効化する(KRNL-5820)

コアダンプ(プログラムクラッシュ時に生成されるメモリイメージ)には機密情報が含まれる可能性があります。/etc/security/limits.confに以下を追加して無効化できます。

# /etc/security/limits.conf に追記 * hard core 0

3. ファイル整合性チェックツールを導入する(FINT-4350)

LynisはAIDEなどのファイル整合性監視ツールが未導入だと警告します。重要ファイルが改ざんされたことをいち早く検知するために有効です。詳細はLinuxファイル整合性監視(AIDE)入門をあわせてご覧ください。

4. auditdを有効化する(ACCT-9628)

Linuxの監査デーモン(auditd)が停止していると、この警告が出ます。不審な操作の証跡を残すために重要です。詳しい設定方法はauditdログから侵入痕跡を見抜く実践ガイドで解説しています。

中小企業でも今日からできること

1. 月1回のスキャンをcronで自動化する

Lynisには `–cronjob` オプションがあり、非対話モードで実行できます。月1回のスキャンを自動化して、レポートをメールで受け取る仕組みを作ると、継続的なセキュリティ監視が楽になります。

# /etc/cron.d/lynis に追記(毎月1日の午前2時に実行) 0 2 1 * * root /usr/sbin/lynis audit system --cronjob >> /var/log/lynis-cron.log 2>&1

2. WARNINGだけ先に潰す

SUGGESTIONはスキャンごとに数十件出ることがあります。すべてに対応しようとすると時間が足りません。まずWARNINGを0にすることだけを目標に取り組むと、効率よくリスクを下げられます。

3. スコアを記録して変化を追う

定期スキャンのたびにハードニングインデックスを記録しておくと、改善の進捗が可視化されます。経営層へのセキュリティ報告にも使えます。スコアが下がっていれば設定が緩んでいるサインです。

4. CIS Benchmarkと組み合わせる

Lynisは単体でも有効ですが、CIS BenchmarkとOpenSCAPによる自動チェックと組み合わせると、より網羅的なセキュリティ評価が可能です。LynisはCIS Benchmarkに準拠したチェックも一部含んでいますが、両者を使い分けることで死角が減ります。

よくある誤解と注意点

「スコアが高ければ安全」ではない
ハードニングインデックスは、Lynisがチェックできる範囲での評価に過ぎません。アプリケーション層の脆弱性や、ゼロデイ攻撃への耐性は測定できません。スコアはセキュリティの1つの指標であり、100点でも絶対に安全とは言えません。

「全SUGGESTIONに対応しなければならない」わけではない
Lynisのサジェスチョンの中には、用途によっては不要なものも含まれています。例えば、インターネットに公開していない内部専用サーバーでは、一部の設定を変更することがかえって運用を複雑にする場合があります。指摘ごとに背景を理解した上で、取捨選択することが重要です。

rootでの実行が必要
一般ユーザーで実行すると、アクセス権限の問題で正確な結果が得られないチェック項目があります。本番環境での監査は必ずrootまたはsudoで実行してください。

本番環境での実行は業務に影響しない
Lynisはシステムを変更せず、読み取りのみを行います。データの書き換えや設定の変更は一切しないため、本番稼働中のサーバーでも安全にスキャンを実行できます。

Lynis入門|Linuxサーバーのセキュリティ監査を自動化する実践ガイド - まとめ

本記事のまとめ

Lynisは、Linuxサーバーのセキュリティ状態を可視化する強力なツールです。インストールが簡単で追加依存なしで動作し、ハードニングインデックスによってセキュリティの現状が数値で把握できます。

ポイント 内容
ツールの性格 読み取り専用・本番環境で安全に実行可能
出力の見方 WARNINGを最優先、SUGGESTIONは取捨選択
スコアの活用 改善の進捗を可視化・経営報告に活用
自動化 –cronjobオプションで月次スキャンを定期実行
限界の理解 スコアは万能ではない、他のツールと組み合わせて使う

Linuxサーバー初期構築後のセキュリティチェックについては、Linuxサーバー初期セキュリティ設定チェックリストもあわせて参照することで、Lynisの指摘をより効率よく解消できます。

Linuxコマンドの詳しい解説は、姉妹サイトLinuxMaster.JPでも幅広く扱っています。

PR

Linuxサーバーセキュリティ徹底入門(中島能和)

Lynisで検出された問題を実際にどう修正するか、コマンドレベルで学べる一冊。ファイル権限・SSH・ファイアウォール・ログ監視など、Linuxセキュリティ堅牢化の実践的な手順が体系的にまとまっています。

関連記事をもっと読む

同じテーマの記事をまとめています。あわせて読みたい記事はこちらからご覧いただけます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次