Syslogで監査イベントのみを転送しようとしていますが、どの機能を使用するかわかりません。ロギングに冗長性が生じるため、すべてをsyslogサーバーに送信したくありません。 audispd syslogプラグインをアクティブに設定しました。これにより、auditdはイベントのログにsyslogを使用する必要があると理解しています。これで、auditdのイベントをロギングサーバーに転送するための正しい機能を設定するだけです。
これをどのように行うべきかについて間違っている場合はお知らせください。 *私はボックスCentOS 7でこれを試しています
syslogプラグイン機能の設定を監査
Audispプラグインは、デフォルトでuser
ファシリティに監査データをsyslogに送信します。ただし、これは変更できます。
cat /etc/audisp/plugins.d/syslog.conf
# This file controls the configuration of the syslog plugin.
# It simply takes events and writes them to syslog. The
# arguments provided can be the default priority that you
# want the events written with. And optionally, you can give
# a second argument indicating the facility that you want events
# logged to. Valid options are LOG_LOCAL0 through 7, LOG_AUTH,
# LOG_AUTHPRIV, LOG_DAEMON, LOG_SYSLOG, and LOG_USER.
active = yes
direction = out
path = builtin_syslog
type = builtin
args = LOG_INFO
format = string
そこにある鍵はValid options are LOG_LOCAL0 through 7
必要に応じて調整できます。私のシステムでは、これらは上記のデフォルト設定であり、user
ファシリティログにauditdメッセージが表示されます。
この構成を使用する理由は、au-remote
プラグインの信頼性が低く、多くのメッセージをドロップするためです。また、結果としてシステムログがエラーでいっぱいになります。また、転送された監査ログを集約サーバー上で個別に保持したいと思いました。
まず、syslog
プラグインを構成します。
active = yes
direction = out
path = builtin_syslog
type = builtin
args = LOG_INFO LOG_LOCAL6
args
には、priority
とfacility
の2つの引数があることに注意してください。優先順位LOG_INFO
は、info
以上のすべてのメッセージを送信することを意味します。ファシリティは基本的に、監査ディスパッチャーがメッセージをルーティングするrsyslog
チャネルです。 syslog
プラグインのドキュメントに記載されている有効なオプションのいずれかです。私はLOG_LOCAL6
を使用しています。これは、システムの他のアプリケーションによって使用されておらず、監査ログを個別に保持したいためです。
/etc/audisp/plugins.d/au-remote.conf
を編集してau-remote
プラグインを無効にします。
active = no
Syslogプラグインの documentation は、以下を推奨します。
複数のマシンを集約している場合は、auditd.confを編集して、name_formatを意味のあるものに設定し、log_formatをエンリッチに設定する必要があります。このようにして、イベントがどこから来たのかを知ることができ、マシンから送信される前にユーザー名とグループをローカルで解決することができます。
だから私はこれらの設定を使用しました:
NAME_FORMAT = HOSTNAME
LOG_FORMAT = ENRICHED
監査ログはすでにローカルで/etc/audit
に書き込まれているため、/etc/rsyslog.conf
を編集して、監査ディスパッチャからファイルにlocal6
メッセージを書き込むように指示する必要はありません。転送用にrsyslogが構成されていることを確認するだけで、メッセージは集約サーバーに送信されます。
onlyで監査メッセージを転送する場合は、/etc/rsyslog.conf
で次の手順を実行し、rsyslog.service
を再起動します。
local6.* @@logs.example.com:514
監査デーモンを再起動して設定を適用します(systemctl restart
は使用しないでください):
service restart auditd
次に、ログ集約サーバーで、/etc/rsyslog.conf
を編集して、受信メッセージを専用ファイルに書き込みます。
local6* /var/log/auditd-forwarded
最後に、このログを/etc/logrotate.d/syslog
(集約サーバー上)のログローテーションスケジュールに追加します。
/var/log/spooler
/var/log/auditd-forwarded
{
missingok
注:オプションで、logrotate
構成を独自のファイルに配置できます。
これはCentOS7で動作することが確認されています。
私はこのファイルのキーと値について混乱していたので、ここに私のための動作する設定があります:-(使用されているシステム:Ubuntu 16.04)/etc/audisp/plugins.d/syslog.conf
active = yes
direction = out
path = builtin_syslog
type = builtin
args = LOG_LOCAL6 #send log to local6 facility
Rsyslog構成を編集して、auditdログを保存します
/etc/rsyslog.d/50-default.conf
local6.* @@192.168.8.147:6161 #send local6 log to central log server listening on tcp port 6161
# To save local6 to file
local6.* /tmp/auditd.log