web-dev-qa-db-ja.com

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

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

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

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

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

8
r00tAcc3ss

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

Apache構成を調べることができます(多くの場合、/etc/httpdまたは/etc/Apache2、ディストリビューションによって異なります)UserおよびGroupディレクティブ(文書化 ここ )。これらの2つのディレクティブは、Apacheが実行するユーザーIDを制御します。

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

Apacheの構成とセキュリティに関するさまざまな入門ガイドがあります。単純なグーグル検索は多くのありそうな結果をもたらします。 RedHat/CentOS 導入ガイド から始めるのが適切です(RedHat/CentOSシステムを使用している場合)。

12
larsks

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

0
Chase T.