最近、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 でも導入されました。
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 を恐れる必要はありません。これはサンドボックス内でのみ機能し、メイン システムに影響を与えて経済的損失を引き起こすことはないからです。
ご存知のとおり、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検索ランキングアルゴリズムの更新を追跡および予測するための無料プラットフォームがいくつかある
>>: ペットウェブサイトの運営は、ユーザーを結びつける重要なポイントを合理的に把握する必要があります
[[416069]] [51CTO.com クイック翻訳] Empathyのプラットフォームエンジニ...
ブラックフライデー期間中、セール中の UK2 の 3 つのブランド、westhost.com、mid...
概要kube-scheduler とは何ですか? Kubernetes クラスターのコア コンポーネ...
(2010 年 4 月 14 日、北京、51CTO 記者が IDF2010 からレポート) 2010...
新浪科技報北京時間3月4日朝のニュースによると、HTML5プログラミング言語に新たな脆弱性が本日発見...
My Custom Hosting は、驚くほど低価格の KVM VPS プロモーションをもう 1 ...
誰もが自分のプライバシーを持っていますが、それはウェブサイトでも同じです。また、メンバーのパスワード...
SEO を使用して Web サイトを最適化する場合、ほとんどの人は私と同じように素晴らしい期待を抱い...
今年も「烏鎮」の季節がやってきました。 12月3日、第4回世界インターネット会議が正式に開幕しました...
長年の開発と進歩を経て、今日ではコンピューティング戦略は大きく変化しました。より多くの企業が AI ...
ソフトテキストマーケティングのプロセスにおいて、最も重要なのは原稿プランニングとメディアプランニング...
前回の記事「ウェブサイト構築の6つのステップ:新規サイトの重量を改善するのは夢ではない(パート1)」...
[51CTO.comより引用] 2006年にGoogleが「クラウドコンピューティング」という概念を...
pnzhostさん、元の古いユーザーは数日前にブランドが丸ごと他の人に売却されたというメッセージを受...
Zhihu には興味深い質問があります。「パソコンの電源を入れるとすぐに QQ を開かずにはいられま...