第 30章ログの管理

30.1. シスログの概要

Turbolinux 11 Server ではシスログとして syslog-ng (syslog-next generation)を採用しています。従来の syslog の機能を網羅し、課題であったログ監査の自動化や出力先の細かな設定、リモートログサーバーからの受信アクセス制御や TCP_Wrappers との連携といった機能も備えています。syslog-ng について詳細は以下サイトを参照してください。

システムは様々なメッセージを出力しています。例えば、システムが認識したハードウェア情報、ユーザーのログイン情報、サーバープログラムの起動や停止に関する情報などがあります。システムが出力したこれらのメッセージのほとんどは、/var/log/ ディレクトリにあるログファイルに記録されていきます。/var/log/ ディレクトリに存在する主なログファイルを以下に示します。

表 30-1. /var/log/ ディレクトリのログファイル

ログファイル名概要
/var/log/messagesシステムに関する一般的なログ
/var/log/croncron の処理結果に関するログ
/var/log/maillogメールサービスに関するログ
/var/log/secureセキュリティに関するログ
/var/log/boot.logシステムの起動に関するログ
/var/log/Xorg.0.logX Window System のログ
/var/log/cups/access_log、/var/log/cups/error_log、/var/log/cups/page_logプリントサーバー cups のログ
/var/log/httpd/access_log、/var/log/httpd/error_logWeb サーバー apache のログ
/var/log/samba/log.nmbd、/var/log/samba/log.smbdファイル共有サーバー samba のログ
/var/log/squid/access.log、/var/log/squid/cache.log、/var/log/squid/store.logプロキシサーバー squid のログ

これらのログは、カーネルや各サーバープログラムから出力されますが、多くのプログラムはログの出力にシスログを利用しています。<--シスログは、syslog-ng ライブラリと syslog-ng デーモンから構成されシスログを利用しているプログラムは、syslogd ライブラリを使用してシスログメッセージを出力します。そして、-->これらのプログラムから出力されたシスログメッセージは syslog-ng デーモンが受け取り、syslog-ng の設定ファイル(/etc/syslog-ng/syslog-ng.conf)の記述に従い、ログファイル等へ記録されます。

注意

すべてのプログラムが syslog-ng を利用しているわけではありません。Apache、Samba、Squid のように独自の仕組みでログを出力しているプログラムも存在します。システム管理者は、各種プログラムがどのような仕組みでログを出力しているのかを確認しておかなければなりません。

シスログを利用しているプログラムは大きく以下の書式でログを出力します。

date hostname information

以下は、/var/log/messages の一部です。

Nov  7 16:02:10 localhost login: pam_unix(login:session): session opened for user taro by (uid=0)
Nov  7 16:02:10 localhost login: LOGIN ON tty1 BY taro
Nov  7 16:03:24 localhost su: pam_unix(su-l:session): session opened for user root by taro(uid=500)

このログは、一般ユーザー taro が login 後、su コマンドを実行し、認証に成功したときのものです。ログが出力された日時、ホスト名(localhsot)に続き、メッセージの内容が出力されています。逆に su コマンド実行時、認証に失敗すると以下のようなログが出力されます。

Nov  7 16:04:55 localhost su: pam_unix(su-l:auth): authentication failure; logname=taro uid=500 euid=0 tty=tty1 ruser=taro rhost=  user=root

authentication failure の記述から認証に失敗したことが分かります。information に出力される内容は、プログラムにより異なりますが、シスログを参照することにより、どのプログラムで問題が発生したのかを確認することができます。このように、本来であれば出力されることのない失敗したログを確認できることにシスログの意味があります。日常的にログを監視し、システムが正常に稼働しているときのログを把握しておけば、不正なログが出力されたときに、システム管理者は、システムに何かが起こっていることを知ることができます。また、システムに異常が発生したときの原因解決に役立てることができます。ときには、クラッキングの予兆や痕跡を探る手がかりとなることもあります。このように、記録されたログを収集して監視することは、システム管理者の重要な業務の 1 つです。