rsyslogによる集中ログ管理とログローテーション・監査証跡の構築手順
1. ログサーバの構築と転送設定
ログサーバは、業務ネットワークとは別の管理用セグメントへ配置する。受信にはTCPを用い、可能であればTLSで暗号化して転送する。送信側の各サーバでは、rsyslogの設定ファイルに転送先を記載し、すべてのファシリティとプライオリティを送る基本方針とする。たとえば *.* @@log.example.local:514 という一行で、すべてのログをログサーバへ転送できる。ログサーバ側では、送信元ホストごとにディレクトリを分けて保存し、どのサーバの記録かを一目で判別できる構成にする。送信側で一時的にネットワークが切断されても記録が失われないよう、ディスクへのキューイングを有効化する。ログの時刻は原因調査の要であり、chrony などによる時刻同期が全サーバで正しく動作していることを前提条件として確認する。
2. ログローテーションと長期保管の設計
ログは放置すればディスクを圧迫し続けるため、logrotate によるローテーションを必ず設定する。日次でローテーションし、過去数十世代分を圧縮して保管する基本設計とし、保持期間は監査の求めに応じて決める。重要な監査ログは、通常のログとは別ディレクトリへ分離し、より長い期間保管する。ディスク容量は監視対象に加え、使用率が一定を超えたら通知する。保管期間を過ぎたログは、外部ストレージへアーカイブするか、安全な方法で削除する。アーカイブする際は、ファイル名に年月を含め、検索しやすい命名規則を徹底する。ログの保存先ディレクトリは、権限を制限して一般ユーザからの読み取りを防ぎ、必要な担当者だけが参照できる構成にする。
3. 改ざん防止と監査対応の運用
ログは監査証跡であるため、改ざんを防ぐ運用が重要である。ログサーバへの書き込みは rsyslog のプロセスだけに限定し、一般ユーザによる上書きや削除ができない権限設計とする。可能であれば、書き込み専用のストレージ構成や、定期的にハッシュ値を記録して改ざんを検知できる仕組みを組み合わせる。ログの内容は不審なログインの試行や権限昇格の試み、重要な設定変更といったイベントを中心に、日次で目を通す対象とする。調査時には grep でキーワードを絞り込み、時系列で並べて事象の流れを把握する。定常的なエラーを減らすため、不要なノイズログは送信側で除外する調整も行う。アラートとの連携は、特定のキーワードを検知したら通知する簡易な仕組みから始め、運用しながら対象を広げていく。