技術共有

【Linuxセキュリティ運用保守】rsyslog

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

ログ

1.rsyslogとは

rsyslog は高性能ですログハンドラー 、ログ メッセージを受信、処理、転送できます。これは、システムのログ記録と管理のために UNIX および Linux システムで広く使用されています。

2. rsyslogの主な機能

  1. ハイパフォーマンス: 大量のログ メッセージを処理できるため、大規模なログ管理のニーズに適しています。
  2. モジュラーアーキテクチャ:多彩な入出力モジュールに対応し、柔軟に機能拡張が可能です。
  3. ログのフィルタリングと書き換え: 複雑なログ フィルタリングと書き換えルールをサポートし、ログ フローの正確な制御を容易にします。
  4. 複数のプロトコルをサポート: TCP、UDP、TLS などの複数のログ送信プロトコルを処理できます。
  5. 安全性: 暗号化された送信と認証をサポートし、ログ メッセージのセキュリティを確保します。

3. rsyslogの基本設定

rsyslog の構成ファイルは通常、次の場所にあります。 /etc/rsyslog.conf または/etc/rsyslog.d/ 内容の下。その構成ファイルはルールとアクションの構造を採用しています。

注文:

systemctl status rsyslog.service

構成例

# 基本格式
# :规则:动作

# 接收本地日志并写入文件
*.* /var/log/all.log

# 接收远程日志(UDP)并写入文件
$ModLoad imudp
$UDPServerRun 514
*.* /var/log/remote.log

# 接收远程日志(TCP)并写入文件
$ModLoad imtcp
$InputTCPServerRun 514
*.* /var/log/remote_tcp.log

# 基于消息优先级的日志过滤
authpriv.* /var/log/secure.log

# 基于消息内容的日志过滤
:msg, contains, "error" /var/log/error.log

4. ログの優先順位と機能

rsyslog は、機能と優先順位を使用してログ メッセージを分類し、処理します。

施設

共用施設には次のようなものがあります。

  • auth、authpriv: 認証およびセキュリティ関連のメッセージ
  • cron: スケジュールされたタスクに関連するメッセージ
  • デーモン: システムのバックグラウンド プロセス関連のメッセージ
  • kern: カーネル関連のメッセージ
  • mail: メールシステム関連のメッセージ
  • syslog: 内部ログ処理関連のメッセージ

優先度

優先順位は高から低の順に次のとおりです。

  • emerg: すべてのユーザーへの即時通知が必要な緊急事態
  • アラート: すぐに対処する必要がある問題
  • クリティカル: 深刻な状況
  • エラー: エラー
  • 警告: 警告
  • お知らせ: 平凡ですが重要なお知らせです
  • info: 情報メッセージ
  • デバッグ: デバッグメッセージ

5. 共通コマンド

  • rsyslogを開始するsudo systemctl start rsyslog
  • rsyslogを停止するsudo systemctl stop rsyslog
  • rsyslogを再起動しますsudo systemctl restart rsyslog
  • rsyslogステータスを確認するsudo systemctl status rsyslog
  • 設定をリロードするsudo systemctl reload rsyslog

6. 高度な機能

  • ログ転送: ログメッセージをリモートサーバーに転送します
  • ログ書き換え: ルールに従ってログメッセージの内容を変更します
  • ログアーカイブ: ログ メッセージをアーカイブしてストレージ領域を節約します
  • ログ分析: ログ分析と視覚化のためのサードパーティ ツールを統合します。

構成例

  1. クライアント構成
    クライアント サーバーで、ログ メッセージを集中ログ サーバーに転送するように rsyslog を構成します。

    # 配置远程日志传输(UDP)
    *.* @logs.example.com:514
    
    # 配置远程日志传输(TCP)
    *.* @@logs.example.com:514
    
  2. サーバー構成
    集中ログ サーバーで、クライアントからログ メッセージを受信するように rsyslog を構成します。

    # 加载输入模块
    $ModLoad imudp
    $UDPServerRun 514
    
    $ModLoad imtcp
    $InputTCPServerRun 514
    
    # 将接收到的日志写入文件
    *.* /var/log/centralized.log