web-dev-qa-db-ja.com

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

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

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

OS:Centos 5.5

21
gAMBOOKa

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

7
rfelsburg

上記の答えを少し拡張するために、ここでは実際の使用例を示します。エンタープライズログ分析アプリケーションSplunkをRedhatボックスで実行しています。これは、splunkユーザーとsplunkグループで実行されます。 root(またはSudo管理者)のみがアクセスできるため、splunkが/ var/logのログにアクセスするのを防ぎます

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

ACLを手動で設定できます

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

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

/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/FilePermissionsACLshttp://bencane.com/2012/05/27/acl-using-access-を参照してください。 control-lists-on-linux /

18
nick fox

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

ユーザー/グループ/その他の従来のアクセス許可スキームに縛られたくない場合は、 POSIX ACLs (その他、おそらくGoogle経由で利用できるより優れたハウツー/情報)を使用して、アプリユーザーに与えることもできます。 /var/log/messagesへの読み取り専用アクセス-これはもう少し詳細であり、誤って他の人をアプリケーションのグループに入れて、彼らが見ることができないものへのアクセスを彼らに与える危険を冒しません。

5
voretaq7

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

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

私はこれを設定しただけでテストはしていませんが、ここにポストバックしますが、うまくいかない理由を確認できません。間違っている場合は誰かが修正してくれます。

2
Matt

これには [〜#〜] acl [〜#〜] を使用できます。特定のユーザーとファイルに特定の追加アクセスルールを設定できます。

0
landonz