仕事の新しい、小さな場所、そしてセキュリティ関連のものがちょうど私の机に着陸しました。私はフロントエンド開発者として雇われました。新しいことを学んでうれしいですが、以前はシステム管理者のことをする必要はありませんでした。
掘り始めたところ、Apache、サイト、そしてすべてがルート上で実行されているようです。他のグループまたはユーザーはありません。 ACK!
これを変更するにはどうすればよいですか?私はこれが非常に大きな違いがあることを知っています...
誰かがApache/phpセキュリティに関する優れた基本的な101チュートリアルを教えてくれればボーナスポイント。
通常の構成では、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システムを使用している場合)。
Apacheは、特権ポート番号1024+より大きいポート番号を持つ任意のユーザーとして実行できます。次に、ポート転送を使用して、ポート80および443から特定のポートにトラフィックを転送します。