Linux管理・運用の基本
システム管理者のための実践ガイド
システム管理者のための実践ガイド
Linuxサーバーのセキュリティ対策は、初期設定を堅牢にするだけでなく、継続的な診断とメンテナンスが不可欠です。本記事では、セキュリティ診断ツールLynisやアンチウイルスツールClamAVを導入し、それらを定期実行することでシステムを常に安全な状態に保つ方法を解説します。さらに、システムを最新の状態に保つための自動アップデート設定の注意点についても、現場で役立つ視点から深掘りします。
この記事を読めば、あなたのLinuxサーバーのセキュリティレベルを一段階引き上げることができるでしょう。
Lynisは、システムのセキュリティ設定やコンプライアンスを監査し、問題点や改善点をレポートしてくれるツールです。手動での設定見直しでは見落としがちな部分も、網羅的にチェックしてくれます。
# Ubuntu/Debian系
sudo apt update
sudo apt install lynis
# RHEL/CentOS系
sudo dnf install epel-release
sudo dnf install lynis
Lynisを実行する最も簡単なコマンドはlynis audit systemです。
sudo lynis audit system
実行後、画面に表示されるSuggestionsセクションは特に重要です。ここには、システムをより安全にするための具体的な改善提案がリストアップされます。
================================================================================
Lynis ログ出力例
================================================================================
... (省略) ...
- Enable a firewall for incoming traffic (firewalld or nftables)
[ FIRE-4308 ]
- Install a file integrity tool to check for unwanted file changes
[ FINT-4384 ]
- Harden the system kernel for better security
[ KRNL-5820 ]
監査結果をファイルに保存するには--report-fileオプションを使います。
sudo lynis audit system --report-file /var/log/lynis-report.dat
この監査を定期的に自動実行することで、システムのセキュリティ状態を継続的に監視できます。crontabを使って週に一度の実行を設定するのが一般的です。
# rootユーザーのcrontabを編集
sudo crontab -e
# 以下の行を追加して保存
# 毎週日曜日の午前3時にLynisを実行し、レポートを保存
0 3 * * 0 /usr/sbin/lynis audit system --report-file /var/log/lynis-report.dat
【よくあるトラブル】sudo: lynis: command not found
このエラーが出た場合は、パスが通っていないか、インストールが正しく行われていない可能性があります。which lynisでパスを確認し、もし見つからない場合は、上記の手順で再インストールを試みてください。
【参考資料】
Linuxサーバーもマルウェアの脅威から無縁ではありません。ClamAVは、Linuxで広く使われているオープンソースのアンチウイルスツールです。
# Ubuntu/Debian系
sudo apt install clamav clamav-daemon
# RHEL/CentOS系
sudo dnf install epel-release
sudo dnf install clamav clamd
clamav-daemonまたはclamdはバックグラウンドで動作するデーモン(常駐プロセス)で、スキャンを高速化します。
ウイルスパターンファイルは常に最新の状態を保つ必要があります。freshclamコマンドを手動で実行するか、freshclamサービスが自動で更新します。
clamscanコマンドを使って、ファイルやディレクトリをスキャンします。
よく使うオプション
| オプション | 意味 | 使用例 |
|---|---|---|
-r, --recursive |
サブディレクトリを再帰的にスキャンする | clamscan -r /home |
--infected |
感染ファイルのみを表示する | clamscan --infected -r /var/www |
--remove |
感染ファイルを削除する | clamscan --infected --remove -r /tmp |
--exclude-dir=REGEX |
正規表現にマッチするディレクトリをスキャン対象から除外する | clamscan -r --exclude-dir=^/dev/ / |
定期スキャンの自動化
crontabを使って、毎日自動でスキャンを実行し、結果をログに保存する設定例です。
# rootユーザーのcrontabを編集
sudo crontab -e
# 毎日午前2時にホームディレクトリをスキャンし、結果をログに追記
0 2 * * * clamscan -r --infected /home >> /var/log/clamav-scan.log 2>&1
【よくあるトラブル】ERROR: Can't open file or directory
このエラーは、clamscanを実行しているユーザーに、スキャン対象のディレクトリやファイルへの読み取り権限がない場合に発生します。sudoで実行するか、必要に応じてディレクトリの権限を調整してください。
【参考資料】
システムの脆弱性を放置しないためには、OSやアプリケーションのアップデートを継続的に適用することが不可欠です。しかし、自動アップデートにはいくつかの注意点があります。
多くのLinuxディストリビューションでは、自動アップデートのためのパッケージが提供されています。
Ubuntu/Debian系:unattended-upgrades
sudo apt install unattended-upgrades
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
設定ファイル編集後、自動アップデートが有効になっているかを確認します。
# 設定ダイアログで有効化を確認
sudo dpkg-reconfigure -plow unattended-upgrades
RHEL/CentOS系:dnf-automatic
sudo dnf install dnf-automatic
sudo nano /etc/dnf/automatic.conf
設定ファイル編集後、timerを有効化することで自動実行が開始されます。
# dnf-automaticのtimerを有効化
sudo systemctl enable --now dnf-automatic.timer
【参考資料】
本記事では、Linuxサーバーのセキュリティを継続的に向上させるための具体的な自動化手法について解説しました。Lynisによる定期的なセキュリティ監査と、ClamAVによるマルウェア対策は、Linuxサーバーの運用において重要な柱となります。また、自動アップデートは非常に便利ですが、そのリスクを理解し、慎重に運用することが肝心です。
セキュリティ自動化チェックリスト
実運用に役立つように、今回の内容をチェックリスト形式でまとめました。
crontab)とログの確認設定本記事が、あなたのLinuxサーバーの安全運用に役立てば幸いです。
次回は、「システムバックアップとリストアの実践」をテーマに、rsync、rsnapshot、Timeshift、Clonezillaなどのツールの使い分けと、具体的な復旧例を解説します。
ご覧いただきありがとうございました。