Apacheがrootとして実行されないようにするにはどうすればよいですか?


8

仕事の新しさ、小さな場所、そしてセキュリティのものがちょうど私の机に届きました。私はフロントエンド開発者として雇われました。新しいことを学んでうれしいですが、以前にsysadminに関することをする必要はありませんでした。

掘り始めたところ、Apache、サイト、およびすべてがルート上で実行されているようです。他のグループまたはユーザーはありません。ACK!

これを変更するにはどうすればよいですか?私はこれが大きなノーノーであることを知っています...

誰かがapache / phpのセキュリティに関する優れた基本的な101チュートリアルを教えてくれたら、ボーナスポイントを教えてください。

回答:


12

通常のroot構成のようにApacheが実行されているのは珍しいことです。Apacheがrootとして実行されているとどのように判断しましたか?Apacheは特権ポートにバインドするためにrootとして起動する必要がありますが、通常は後でその特権を放棄することに注意してください。

とディレクティブ(ここに記載されている)については、Apacheの設定(ディストリビューションによっては多くの場合、/etc/httpdまたは/etc/apache2)を確認できます。これらの2つのディレクティブは、Apacheが実行するユーザーIDを制御します。 UserGroup

「他のグループやユーザーがいない」システムを見つけることも珍しいことです。何をして何getent passwdgetent group示しますか?他に本当に他のユーザーやグループはありませんrootか?ほとんどのディストリビューションには、apacheor www-dataユーザーまたはそのようなものと、そのユーザーとしてApacheを実行する一致する構成が同梱されています。

Apacheの構成とセキュリティについては、さまざまな入門ガイドがあります。単純なGoogle検索で、見た目は多くの結果が得られます。RedHat / CentOS 導入ガイドは、(RedHat / CentOSシステムを使用している場合)開始するのに適した場所です。


ありがとう、そうです、それはルートから実行されていませんでしたが、他のすべてはルートを使用して行われたようです。すべてのフォルダ、ファイルなど。変更方法を検討する必要があります。
r00tAcc3ss

ええと...必ずしもそうとは限りません。実行中のApacheプロセスと同じユーザーがファイルを所有することは望ましくありません。理想的には、Webサーバーのセキュリティが侵害されても、攻撃者がApacheの構成やWebコンテンツを変更することはできません。
larsk、

0

特権ポート番号1024+より大きいポート番号を持つ任意のユーザーとしてApacheを実行できます。次に、ポート転送を使用して、ポート80および443から特定のポートにトラフィックを転送します。

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