Chroot を使用して PHP の運用セキュリティ問題を解決する

Chroot を使用して PHP の運用セキュリティ問題を解決する

最近、Xiao Jiang のブログ投稿が多くのホスティング プロバイダーの注目を集めています。その理由は、Xiao Jiang氏が運営するChuangzhiホストの脆弱性がWuyun.comに報告されたためです。この記事で、Xiao Jiang氏は、機能を無効にする方法を使用してサーバー環境のセキュリティを確保するという解決策を示しました。

しかし、機能を無効にすることが本当に最善の選択肢なのでしょうか?いいえ!

AMH パネルの開発者である Amysql は、より良い選択肢は Chroot だと言っています。

AMH パネルは LNMP パネルです。バージョンアップに便利な一方で、パネルは 1 人の開発者によって開発されています。そのため、AMH は kangle、WDCP、LUM、webmin などのプラットフォーム環境を実装するためにバイナリ ファイルを使用しません。代わりに、AMP ベースの PHP プログラムを使用してプラットフォームを制御します。このように、PHP のセキュリティ問題を考慮する必要があります。プログラムは PHP で記述されているため、パネルとシステム間の情報交換を実装するには、exec と shell_exec の 2 つの関数を多用する必要があります。明らかに、Xiao Jiang によって示された機能制限の方法は、AMH のようなパネルには適していません。では、Amysql は PHP の運用上のセキュリティ問題をどのように解決するのでしょうか?

Amysql はこのアプローチを使用します。 AMH の仮想ホストでは、セキュリティを確保するために Chroot が常に有効になっていますが、コンソール PHP はパネルの正常な動作を確保するために chroot をオフにします。

ここまで述べてきましたが、Chroot とは何でしょうか?

Wikipedia のエントリによると、Chroot はもともと Unix のコマンドでしたが、この機能は PHP-FPM でも導入されました。

Wikipedia エントリ: chroot は、現在のプログラムとその子プロセスの実際のディスク ルート ディレクトリを変更するために使用される Unix システムの操作です。

Chroot はどのように機能しますか?

LNMP 環境では、PHP-FPM と Nginx 間の通信は CGI 経由でのみ実現できるため、FPM 設定でファイルのルート ディレクトリを変更すると、PHP プログラムはこの指定されたルート ディレクトリを通過できなくなります。パネルが配置されている仮想ホストでは Chroot が有効になっていないため、使用されるルートディレクトリは依然としてシステムルートディレクトリです。

詳しく説明していただけますか?

AMH パネルのコンソールと私が使用する通常の仮想ホストを例に挙げます。コンソール ファイルは /home/Wwwroot/Index/Web フォルダーに配置され、通常のホストのファイルは /home/wwwroot/Domain/web フォルダーに配置されます。コンソール プログラムの場合、Chroot が有効になっていないため、PHP ファイルの実際の場所は実行場所と同じ /home/wwwroot/Index/web/ であり、ルート ディレクトリは / です。通常の仮想ホストの場合、Chroot が有効になっていると、実行ファイルの場所は /home/wwwroot/domain/web/index.php ですが、Chroot によって誘導された後、PHP プログラム内の実際のファイル アドレスは /web/index.php になります。同時に、/home/wwwroot/domain/ では、侵入者がルート システムに入ったと思わせるために、PHP プログラム用のサンドボックスを作成するのと同じように、Unix フォルダーの命名規則に従って etc、usr、tmp、lib などのフォルダーが作成されます。したがって、Chroot を使用するユーザーは、Chinese Sabre を恐れる必要はありません。これはサンドボックス内でのみ機能し、メイン システムに影響を与えて経済的損失を引き起こすことはないからです。

サンドボックス (英: sandbox) は、信頼できないソースからのプログラム、破壊力を持つプログラム、または意図を判断できないプログラムをテストするための環境です。ただし、サンドボックスで行われたすべての変更によってオペレーティング システムに損失が発生することはありません。一般的に、この技術はコンピュータ技術者、特にコンピュータウイルス対策ソフトウェア業界で広く使用されています。サンドボックスは、コンピュータウイルスを観察するための重要な環境です。

ご存知のとおり、Unix 系システムでは、すべてのプログラム、さらにはデバイスもファイルで表されます。使用する ls コマンドと wget コマンドは、実際には特定の実行可能ファイルに対応しています。ただし、Chroot を使用した後、/home/wwwwroot/domain/usr 下に対応するファイルがないため、対応するコマンドは実行できません。これにより、システム情報のセキュリティが確保されます。

機能を無効にすることに比べて chroot を使用する利点は何ですか?

無効化された関数は PHP プログラム全体に適用されます。PHP プログラムで解析する必要があるすべてのファイルは、無効化された関数の設定の影響を受けます。異なる Web サイト プログラムでは異なる機能が必要になる場合があり、異なる仮想ホストを個別に設定することはできません。 Chroot はさまざまな仮想ホストに応じてカスタマイズできます。特別な機能を使用する必要があるプログラムの場合、Chroot をオフにして、Web サイト プログラムの正常な動作を確保できます。プログラムが特別なプログラムを呼び出す必要がない場合は、Chroot モードをオンにできます。特定のプログラムを 1 つまたは 2 つだけ有効にする場合は、次のプロセスを模倣して機能を追加できます。たとえば、Chroot を有効にすると、PHP プログラムは sendmail() 関数を使用してメールを送信できなくなります。送信の問題を解決するには、sendmail の代わりに mini_sendmail を使用します。

cd /home/wwwroot/www.ixiqin.com/

元のタイトル: Chroot を使用して PHP の運用セキュリティ問題を解決する

キーワード: PHP

<<:  Google検索ランキングアルゴリズムの更新を追跡および予測するための無料プラットフォームがいくつかある

>>:  ペットウェブサイトの運営は、ユーザーを結びつける重要なポイントを合理的に把握する必要があります

推薦する

Kubernetes で Apache Spark を実行する方法

[[416069]] [51CTO.com クイック翻訳] Empathyのプラットフォームエンジニ...

#BlackWeek5#: UK2 Group 傘下の高性能仮想ホストが 50% オフ [5 つ星の評価]

ブラックフライデー期間中、セール中の UK2 の 3 つのブランド、westhost.com、mid...

Kubernetes ツアー: Kube-Scheduler

概要kube-scheduler とは何ですか? Kubernetes クラスターのコア コンポーネ...

中国電信がオープンアーキテクチャのIAASクラウドコンピューティング環境を構築

(2010 年 4 月 14 日、北京、51CTO 記者が IDF2010 からレポート) 2010...

HTML5 の最新の脆弱性: ユーザーのハードドライブがジャンクデータでいっぱいになる可能性がある

新浪科技報北京時間3月4日朝のニュースによると、HTML5プログラミング言語に新たな脆弱性が本日発見...

mycustomhosting-6 USD KVM/2 GB RAM/50 GB HDD/1 TB トラフィック

My Custom Hosting は、驚くほど低価格の KVM VPS プロモーションをもう 1 ...

robots.txt の記述は地雷原のようなもので、少しの不注意が深刻な被害をもたらす可能性があります (パート 1)

誰もが自分のプライバシーを持っていますが、それはウェブサイトでも同じです。また、メンバーのパスワード...

ウェブサイトを最適化するには、段階的かつ継続的な忍耐が必要です

SEO を使用して Web サイトを最適化する場合、ほとんどの人は私と同じように素晴らしい期待を抱い...

ジャック・マー、ポニー・マー、ロビン・リー、ティム・クックが烏鎮に集まった。彼らは何て言ったの?

今年も「烏鎮」の季節がやってきました。 12月3日、第4回世界インターネット会議が正式に開幕しました...

エッジコンピューティングとクラウドコンピューティングを併用する 4 つのメリット

長年の開発と進歩を経て、今日ではコンピューティング戦略は大きく変化しました。より多くの企業が AI ...

ソフトコンテンツマーケティング: 高品質のメディアと低品質のメディアをどのように区別するか?

ソフトテキストマーケティングのプロセスにおいて、最も重要なのは原稿プランニングとメディアプランニング...

ウェブサイト構築の 6 つのステップ: 新しいウェブサイトの重量を改善するのは夢ではありません (パート 2)

前回の記事「ウェブサイト構築の6つのステップ:新規サイトの重量を改善するのは夢ではない(パート1)」...

Kingsoft Cloud: 企業の変革を促進し、クラウドネイティブの肥沃な土壌を創出

[51CTO.comより引用] 2006年にGoogleが「クラウドコンピューティング」という概念を...

pnzhost: 買収後初のプロモーション、最低 $7.2/年、KVM 仮想 VPS、512M メモリ/1T トラフィック

pnzhostさん、元の古いユーザーは数日前にブランドが丸ごと他の人に売却されたというメッセージを受...

起業家精神の共有: Instagram がユーザーの心をつかむ方法

Zhihu には興味深い質問があります。「パソコンの電源を入れるとすぐに QQ を開かずにはいられま...