サーバーにログインできるとんでもないハッカーなどの悪意のあるボットからサイトを保護するために、Apacheやcpanelを壊すことなくaccess_logとerror_logを可能な限り保護したいと思います。
Apacheが実行しているユーザーはすべて、ログファイルへの読み取りおよび書き込みアクセスが必要であると考えています。
Cpanelにログファイルにアクセスするための特別な要件があるかどうかはわかりません。ログファイルのアクセス許可の制限が厳しすぎると、cpanelの何かが壊れるかどうかわかりません。
現在、誰もがログファイルへの読み取りアクセス権を持ち、ルートとグループルートのみが読み取りおよび書き込みアクセス権を持っています。他のすべてのユーザーの読み取りアクセスを無効にしたいのですが、cpanelやApacheに何らかの影響がありますか?
私の目標は、ウェブサイト/ウェブサーバーのセキュリティを改善し、機能を損なうことなく高速でページを提供し続けることです。
私のサーバーはLinuxベースです。
シェルを介してログインできる場合、ゲームオーバーであり、@ w3d Apacheログファイルで言及されているように、心配はほとんどありません。
セキュリティが大きな懸念事項である場合は、次のプラクティスを使用していることを確認する必要があります。
サイモン・ヘイターズの声明に基本的に同意します。シェルアクセスを取得した場合、たとえばShell_exec
を使用しているphpアプリケーションへのインジェクションによるシェルアクセスを制限していなければ、個人的に信頼できるソースからシステムを復元することを考え始めます。しかし、問題は、その時に彼らがどうやって得たのかわからない場合、次はどうやって止めることができるのでしょうか? -妥協のないログエントリがあると、侵入の再構築に役立ちます。
しかし質問に対して、nginx(およびメモリからApacheも同じ)がUbuntu 14.04でログファイルのアクセス許可を設定する方法は次のとおりです。
$ls -al /var/log/
...
drwxr-s--- 2 mysql adm 4096 Nov 22 06:38 mysql
-rw-r----- 1 mysql adm 0 Nov 20 17:39 mysql.err
-rw-r----- 1 mysql adm 0 Nov 22 06:38 mysql.log
drwxr-x--- 2 www-data adm 4096 Nov 22 06:38 nginx
-rw------- 1 root root 0 Nov 22 06:38 php5-fpm.log
-rw-r----- 1 syslog adm 9734 Nov 23 00:17 syslog
...
"others"にnginx
directory自体に対する許可を与えないことにより-通常のユーザーはファイル自体を見ることさえできません-読むことはできません。ルート権限がある場合、これを行うことができます
$ Sudo ls -al nginx/
total 28
drwxr-x--- 2 www-data adm 4096 Nov 22 06:38 .
drwxrwxr-x 13 root syslog 4096 Nov 22 06:38 ..
-rw-r----- 1 www-data adm 2082 Nov 23 00:30 access.log
-rw-r--r-- 1 root root 9803 Nov 22 06:26 access.log.1
-rw-r----- 1 www-data adm 0 Nov 22 06:38 error.log
これで、www-data
、adm
またはroot
でない限り、ログを読み取ることはできません。 access.log.1
はWebサーバーによって作成されませんが、ログアーカイブユーティリティlogrotate
は読み取り許可を持ちますが、root
、www-data
、またはadm
以外の人が勝ったため'/var/log/nginx/access.1.log
へのパス内のすべてのセグメントにアクセス許可がないため、まだファイルを読み取ることができません(directory
アクセス許可はまだそれらをブロックしています)。
したがって、この許可構造を試すことができます-su
に昇格したり、ユーザーをwww-data
またはadm
グループに追加したり、同様-システムによって異なりますが、ログディレクトリにアクセスしてログを読み取るだけです。
また-重要なのはlogrotate
機能の権限を壊さないこと-ログレコードをクリーンアップすること(特定の年齢-通常は1年以上のログエントリのアーカイブと削除)です。