Linux Webフロントエンドのベストプラクティス
-
11-07-2019 - |
質問
Linuxボックスを管理/管理するためのWebベースのフロントエンドを構築したい。例えば。ユーザーを追加したり、ファイルシステムを管理したり、あらゆる種類のものを管理したいと考えています。これはcPanelのクローンと考えてください。Web管理者ではなく、システム管理者向けのものです。
ボックスで実行され、すべてのシステムレベルのタスクを実行するサービスを作成することを考えていました。これにより、Webベースのフロントエンドと実際のロジックを明確に分離できます。サーバーページは、専用のサーバーを呼び出したり、タスクをキューに入れたりすることができます。ただし、これが最善の方法であるかどうかはわかりません。
別の重要な質問は、このようなものを構築するときにセキュリティをどのように扱うかということでしょうか?
PS:これは単なるペットプロジェクトであり、学習経験なので、同様のことを行う既存のソリューションには興味がありません。
解決
特殊なサービスデーモンを個別のユーザーとして実行します。「managerd」と呼びましょう。 / etc / sudoersファイルをセットアップして、「managerd」がパスワードなしでrootとして実行できるようにするさまざまなコマンドを実行できるようにします。
ウェブサーバーに「トリガー」をドロップさせます。 Webサーバーユーザーと「managerd」のみがメンバーであるグループを含む、モード「770」のディレクトリで実行するコマンドを含むファイル。コマンドを実行する前に、「managerd」がファイルの所有権を確認していることを確認してください。
Webインターフェース側がロックダウンされていることを確認します-HTTPSのみで実行し、認証を要求し、可能な場合はIP固有のACLを入れて、事前に既知の場所からのみアクセスできるようにします。
他のヒント
あなたの解決策は、「根本的な」問題に対する非常に賢明な解決策のようです。
提案のカップル:
- 「特別なサービス」をローカルホストにもバインドすると、外部からリクエストを送信できないことを保証できます。
- アクションを実行し、サービスに完全な無制限のアクセスを直接与えない要求呼び出し関数を確認します。したがって、関数を呼び出す" addToGroup(user、group)"汎用の" performAction(command)"の代わりに。