ユーザーにログファイルへの読み取りアクセスを許可する最も安全な方法は何ですか?


21

私のアプリケーションには/var/log/messages、ユーザーとグループに属する読み取りアクセス権が必要rootです。/var/log/messages私のアプリケーションがそれを読むために必要な最小露出レベルは何ですか?

現在、私の計画では、グループの所有権を/var/log/messages新しいグループに変更し、それにルートとアプリケーションユーザーを追加しますが、これにより、アプリケーションへの書き込み権限も付与され/var/log/messagesます。

OS:Centos 5.5

回答:


7

とにかくユーザーprivsを介してアクセスできるため、グループにルートを追加する必要はありません。グループに、あなたが決めたグループの読み取りを許可するだけです。logrotateを使用して変更を加えることも忘れないでください。そうしないと、グループの変更が毎晩消去されます。


logrotateスクリプトはどこにありますか?
gAMBOOKa

1
/etc/logrotate.d/は、分割されたlogrotateスクリプトのフォルダーです。/ var / log / messagesは/etc/logrotate.d/syslogにあります。/ var / log / messagesを/etc/logrotate.conf内の独自のファイルに移動し、「create 0640 root new_group」などを使用してファイルを適切に作成する必要があります。
-rfelsburg

/ var / log / messagesを/etc/logrotate.d/内の独自のファイルに移動する必要があります
Massimo

17

上記の回答を少し拡大するだけで、実際の使用例になります。Redhatボックスでエンタープライズログ分析アプリケーションSplunkを実行します。splunkユーザーとsplunkグループの下で実行されます。/ var / logのログにアクセスできるのは、root(またはsudo管理者)のみであるため、これによりsplunkがアクセスできなくなります。

splunkのみに読み取り専用アクセスを許可するために、いくつかのACLを使用し、logrotateを変更して永続化しました。

手動でACLを設定できます

sudo setfacl -m g:splunk:rx /var/log/messages

logrotateはACL設定を再適用しないため、これは持続しません。そのため、より永続的な解決策として、ACLをリセットするためにlogrotateのルールを追加しました。ファイルを追加しました。

/etc/logrotate.d/Splunk_ACLs

{
    postrotate
        /usr/bin/setfacl -m g:splunk:rx /var/log/cron
        /usr/bin/setfacl -m g:splunk:rx /var/log/maillog
        /usr/bin/setfacl -m g:splunk:rx /var/log/messages
        /usr/bin/setfacl -m g:splunk:rx /var/log/secure
        /usr/bin/setfacl -m g:splunk:rx /var/log/spooler
    endscript
}

ファイルのACLステータスを確認します

$ getfacl /var/log/messages

ACLの詳細については、https ://help.ubuntu.com/community/FilePermissionsACLs http://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/を参照して ください。


また、Splunkのに投稿された回答answers.splunk.com/answers/4253/...
ニックキツネ

1
splunkはログファイルの実行権限を必要とせず、単に読み取りを行うことに注意してください。
-rojs

@nickfoxそれは/etc/logrotate.d/Splunk_ACLsあなたがそこに投稿した内容全体ですか?実際に、後回転ビットを処理するためにlogrotateのパスを指定する必要はありませんか?
デール・アンダーソン

うーん、そうは思わない。システムログの既存のlogrotate構成を変更したくはありませんでしたし、それらを自分のものに置き換えたくもありませんでした。このように、splunkのカスタム変更は独立して存在します。/app.d/ディレクトリの目的であるパッケージまたはパペットなどでデプロイできるようにします。もちろん間違っていたかもしれませんが、それは私がそれをしてから1年以上前でした
ニックフォックス

1
Xオプション(xではなく大文字のXなど)を使用する場合、ファイルがディレクトリであるか、または一部のユーザーの実行権限が既にある場合にのみ実行を追加することを
示唆するメモ

5

あなたの計画は受け入れられており、「伝統的な」Unixパーミッションスキームが最善の方法です。
別のオプションは、syslogに関心のあるメッセージを別のファイルに転送させることです(これにより、アプリのユーザーがにある可能性のある機密情報にアクセスすることを回避できます/var/log/messages)。

User / Group / Otherの従来のアクセス許可スキームに縛られたくない場合は、POSIX ACL(その他、Googleで利用可能なより良いhowtos / info)を使用して、アプリユーザーに読み取り専用アクセスを許可することもできます/var/log/messages-これはもう少しきめ細かく、誤って他の誰かをアプリケーションのグループに入れて、見るべきではないものにアクセスできるようにするリスクはありません。


2

Yip私はこれを使用setfaclしてmail.log顧客にファイルへのアクセスを許可しましlogrotate.confたが、ログをローテーションした後にファイルにコマンドを貼り付けてACLを再設定する必要もありません:

postrotate
         /usr/bin/setfacl -m o::r /var/log/mail.log  
endscript

注:私はこれをセットアップしただけで、テストしていませんが、ここに投稿しますが、なぜ機能しないのかはわかりませんが、間違っている場合は誰かが私を修正します。


0

これにはACLを使用できます。特定のユーザーおよびファイルに特定の追加アクセスルールを設定できます。


-1

他の人が言ったようにACLを設定したら、すべてのaclルールをpostrotate構成に入れる代わりに、毎回新しいログファイルを作成する代わりに、logrotateを使用してcopytruncateを使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.