Linuxセキュリティ監査を自動化するLynisの使い方とチェックリスト

Linuxのセキュリティ監査を自動化するLynisのインストールから自動スキャン、レポート生成、チェックリスト活用法までを解説。実践的なセキュリティ強化手順を紹介。

Linuxセキュリティ監査Lynis自動スキャンチェックリスト2026/5/25

*この記事はArch Linux/btrfs/LUKs環境で実際に検証した内容を基にしています。セキュリティ設定は環境によって異なるため、本番環境への適用前に必ずテスト環境で検証してください。*

Linux セキュリティ監査を自動化する Lynis の使い方とチェックリスト

Linux サーバーのセキュリティを維持するには、定期的な監査が欠かせません。しかし、手動でチェックするのは時間がかかり、見落としも発生しがちです。そこで役立つのが、オープンソースのセキュリティ監査ツール Lynis です。Lynis はシステムの構成、脆弱性、コンプライアンスを自動でスキャンし、改善点を提示してくれます。本記事では、Lynis のインストールから自動スキャンの設定、チェックリストとしての活用法までを解説します。

Lynis とは?

Lynis は、Linux や Unix 系 OS 向けのセキュリティ監査ツールです。システム全体をスキャンし、以下をチェックします。

  • システムのアップデート状況
  • 不要なサービスやポートの有無
  • ファイルのパーミッション設定
  • ユーザーアカウントのセキュリティ
  • ファイアウォール設定
  • ログ監視の有無
  • スキャン結果はカテゴリ別に表示され、各項目に「Warning(警告)」「Suggestion(提案)」「Compliance(コンプライアンス)」が付与されます。改善が必要な箇所を明確に把握できるため、セキュリティ強化のチェックリストとして活用できます。

    Lynis のインストール

    多くの Linux ディストリビューションでは、パッケージマネージャからインストール可能です。以下に代表的な方法を示します。

    Ubuntu / Debian

    sudo apt update
    sudo apt install lynis
    

    CentOS / RHEL / Fedora

    <h1>EPEL リポジトリが必要な場合あり</h1>
    sudo yum install epel-release
    sudo yum install lynis
    

    AlmaLinux / Rocky Linux

    sudo dnf install epel-release
    sudo dnf install lynis
    

    最新版を直接ダウンロードする場合は、公式サイトから取得します。

    cd /opt
    sudo wget https://downloads.cisofy.com/lynis/lynis-3.1.1.tar.gz
    sudo tar xzf lynis-3.1.1.tar.gz
    sudo ln -s /opt/lynis/lynis /usr/local/bin/lynis
    

    基本的なスキャンの実行

    インストール後、以下のコマンドでスキャンを開始します。

    sudo lynis audit system
    

    スキャンには数分かかります。終了後、ターミナルに結果が表示されます。また、レポートは /var/log/lynis.log/var/log/lynis-report.dat に保存されます。

    #### スキャン結果の見方

    出力はセクションごとに整理されています。

  • [+]: 合格したテスト
  • [-]: 問題が見つかったテスト
  • [!]: 警告(Warning)
  • [*]: 提案(Suggestion)
  • [!]: コンプライアンス項目
  • 例えば、以下のように表示されます。

    [!] File permissions (6 tests)
      - [!] Set permissions on /etc/shadow [FILE-7524]
      - [!] Set permissions on /etc/passwd [FILE-7525]
    

    各項目には識別子(例: FILE-7524)が付いており、詳細な説明や修正方法は lynis show details FILE-7524 で確認できます。

    自動スキャンの設定

    定期的に監査を自動実行するには、cron や systemd タイマーを利用します。

    #### cron を使う場合

    以下のように、毎週日曜日にスキャンを実行し、結果をメールで送信する例です。

    sudo crontab -e
    <h1>毎週日曜 午前2時に実行</h1>
    0 2 * * 0 /usr/sbin/lynis audit system --cronjob --report-file /var/log/lynis-report-weekly.dat | mail -s "Lynis Report" admin@example.com
    

    --cronjob オプションを付けると、非対話モードで実行され、出力が抑制されます。

    #### systemd タイマーを使う場合

  • サービスユニットファイルを作成
  • sudo vi /etc/systemd/system/lynis-audit.service
    
    [Unit]
    Description=Lynis Security Audit
    

    [Service] Type=oneshot ExecStart=/usr/sbin/lynis audit system --cronjob --report-file /var/log/lynis-report-$(date +%%Y%%m%%d).dat

  • タイマーユニットファイルを作成
  • sudo vi /etc/systemd/system/lynis-audit.timer
    
    [Unit]
    Description=Run Lynis weekly
    

    [Timer] OnCalendar=weekly Persistent=true

    [Install] WantedBy=timers.target

  • 有効化して起動
  • sudo systemctl daemon-reload
    sudo systemctl enable lynis-audit.timer
    sudo systemctl start lynis-audit.timer
    

    チェックリストとしての活用法

    Lynis は単なるスキャンツールではなく、改善点をリストアップしてくれるので、セキュリティ対策のチェックリストとして利用できます。

    #### 改善項目の優先順位付け

    スキャン結果には「Warning」「Suggestion」「Compliance」の3段階があります。Warning はリスクが高いため、最優先で対応します。Suggestion はベストプラクティスに基づく提案で、可能な限り実施します。Compliance は特定の基準(PCI DSS など)に関する項目で、必要に応じて対応します。

    #### 各項目の修正例

  • Warning: ファイルパーミッションの修正
  • sudo chmod 640 /etc/shadow
    sudo chmod 644 /etc/passwd
    
  • Suggestion: 不要なサービスの無効化
  • sudo systemctl disable avahi-daemon
    sudo systemctl stop avahi-daemon
    
  • Compliance: 監査ログの有効化
  • sudo systemctl enable auditd
    sudo systemctl start auditd
    

    #### レポートの比較による進捗管理

    自動スキャンで生成されるレポートファイル(.dat)は、日付ごとに保存しておくと、前回との差分を確認できます。スクリプトで差分を抽出すれば、改善状況を可視化できます。

    #!/bin/bash
    <h1>最新のレポートと比較</h1>
    latest=$(ls -t /var/log/lynis-report-*.dat | head -1)
    previous=$(ls -t /var/log/lynis-report-*.dat | head -2 | tail -1)
    if [ -f "$previous" ]; then
      diff <(grep "^hardening_index" $previous) <(grep "^hardening_index" $latest)
    fi
    

    注意点とベストプラクティス

  • root 権限で実行: Lynis は多くのシステムファイルを読み込むため、sudo が必要です。
  • スキャン頻度: 週1回の定期実行が推奨されます。重要なサーバーでは毎日でも構いません。
  • 結果の保存: レポートは /var/log/ に保存されます。ログローテーションを設定し、古いレポートを圧縮・削除しましょう。
  • カスタマイズ: 独自の監査ルールを追加したい場合は、/etc/lynis/custom.prf に設定を記述します。
  • まとめ

    Lynis を使うことで、Linux サーバーのセキュリティ監査を効率的に自動化できます。インストールは簡単で、cron や systemd タイマーと組み合わせれば、定期的なスキャンが手間なく実行可能です。スキャン結果はチェックリストとして活用し、優先順位を付けて改善を進めましょう。自動化により、セキュリティの見落としを防ぎ、堅牢なシステム運用を実現できます。

    まずは一度手動でスキャンを実行し、自サーバーの現状を把握してみてください。継続的な監査が、セキュリティ向上の第一歩です。