仁義なきログ監視の戦い:syslogd(シスログ)設定で、ログを一元管理

syslog_0

ログサーバーによるログの一元管理

不正アクセスの情報を残すために、ログ管理体制をつくり、取得したログ管理情報をきちんと保存しておくことはネットワーク管理者の重要な業務です。

まずは、できるだけ管理しやすい体制をつくるために、ログ管理を一元化するためのsyslogdの設定をご説明します。

Linuxでは、主なログの出力先は/var/logディレクトリです。
ディレクトリ内の複数のファイルの設定を行うファイルが/etc/syslog.confです。

syslog.confのフォーマット

syslog.confの書式は、selectorとactionの2つのフィールドで構成されています。

selector        action
取得するログの指定   取得したログの出力先
セレクタ(selector)

selectorは、以下の順序で記述します。
facility.priority (取得する情報の分類.どのレベルから出力)

ファシリティ(facility)

facilityはログの分類にあたるもので、facilityに合わせて扱いかたをsyslogdの設定で変更できます。

facility 対象のログ
auth(security) 認証サービスのメッセージ(現在はauthprivが推奨されています)
authpriv 認証サービス(カテゴリはauthと同じですが、authとは出力結果が異なります)
cron cronのメッセージ
daemon デーモンのメッセージ
kern カーネルのメッセージ
lpr プリンタサービスのメッセージ
mail メールサービスのメッセージ
news ニュースサービスのメッセージ
syslog syslogのメッセージ
user ユーザープロセスのメッセージ
uucp uucp転送を行うプログラムのメッセージ
local0~7 アプリケーションに依存する
facilityで指定できるキーワード

プライオリティ(priority)

priorityは、プログラムの出力メッセージのうちで、ログの重要度のレベルを設定します。

priority 内容 (下になるほど重要度が高くなります)
debug デバッグ情報
info 情報
notice 通知
warn 警告
err 一般的なエラー
crit 致命的なエラー
alert 緊急に対処すべきエラー
emerg システムが落ちるような状態

通常の設定では、指定したpriority以上のログが出力されます。
例えば、「err」を指定すればcrit、alert、emergのレベルの出力もされます。

以下に、その他の設定例と出力内容をいくつかご紹介しておきます。
selector例 内容
kernel.=warn facilityがkernelでpriorityがwarnのみ出力
mail.*;mail.!=crit facilityがmailでpriorityがcrit以外のメッセージを出力
.;daemon.none facilityがdaemon以外の全メッセージを出力

どのfacilityをどのpriorityにするかは、何を監視したいかに応じて異なります。
重要なデータを欠落させないように、必要なデータが取得できるpriorityに変更しましょう。

アクション(action)

actionには、selectorで指定したメッセージの出力先、出力内容を設定します。
actionの設定例は以下のとおりです。

設定例 内容
/var/log/samplelog /var/log/samplelogへログを出力
| /usr/local/bin/*** ログをパイプでほかのプログラムへ渡す
/dev/console ローカルのコンソールへ出力
@remotehost リモートホストのsyslogdへ送信(注)
root,user1 rootとuser1に通知

不正アクセス対策でのログ管理の注意点

ログ管理を行っていても、不正アクセスでログ管理のデータを削除されてしまっては元も子もありません。
そこで、ログ管理データを削除されないため対策として、別のホストをログサーバーとして運用する方法があります。

syslog.confの設定でactionに@ホスト名(あるいはIPアドレス)を入力すると、そのホストにログが転送されます。
但し、ログを受け取り側のホストでも設定しておく必要があります。
ログサーバーとしてホストを設定するには、syslogdに-rオプションを指定して起動します。まず、syslogdを停止し、# /sbin/syslogd -rで再実行します。

ログサーバーへ転送されたログ管理データは、ログサーバーのsyslog.confの内容に従って処理されます。
ここで注意すべき点は、以下の2点です。
・ログサーバーのユーザーとパスワードに他のサーバーと同じものを使用しないこと。
・複数のサーバーのログ管理データがログサーバーに転送されるのであれば、ログサーバーの容量が不足しないよう十分な容量を確保しておくことです。

以上、syslogdのログ管理に必要な設定方法についてご説明しました。