GNU/Linux >> Linux の 問題 >  >> Panels >> Webmin

Webminサーバーインデックス

この章では、ネットワーク上の他のサーバーを一覧表示するためのWebminモジュールについて説明し、クラスターモジュールおよびRPCとの関係について説明します。

コンテンツ

Webminサーバーインデックスモジュール

このモジュールは、実際には2つの目的を果たします。1つは単純で、もう1つは非常に複雑です。これを使用して、ネットワーク上でWebminを実行している他のシステムのマスターインデックスを作成できます。各システムは、サーバーにリンクするためにクリックできるアイコンとして表示されます。各アイコンは、通常のリンク、または最初のシステムを介して送信されるすべてのトラフィックで自動的に別のサーバーにログインする「トンネル」のいずれかです。

同様に、このモジュールは、システムおよびサーバーステータスモジュールとクラスターカテゴリのモジュールを使用して、マスターWebminサーバーによって制御できるシステムを定義するために使用できます。これらの他の各システムにもWebminがインストールされている必要があり、マスターは特別なRPC(リモートプロシージャコール)プロトコルを使用してスレーブと通信し、スレーブを制御します。このすべてがどのように機能するかについては、この章で詳しく説明します。

Webminカテゴリのモジュールのアイコンをクリックすると、下の画像に示すようなページが表示されます。ページの大部分は、追加した他のサーバーごとに1つずつ、アイコンのテーブルで構成されています。もちろん、モジュールを初めて使用する場合は、サーバーアイコンは最初は表示されません。下部には、ローカルネットワーク上の他のWebminサーバーを自動的に検索するためのボタンがあります。

Webminサーバーインデックスモジュール

Webmin Webサーバーのインデックスを作成するために設計されていますが、代わりに他のタイプのWebサーバーのアイコンを作成できない理由はありません。ただし、モジュールのRPC機能は、当然、Webminを実行しているホストと通信する場合にのみ機能します。

Webminサーバーの追加

このモジュールに新しいサーバーを追加して、サーバーへのリンクを提供するか、クラスターグループモジュールの1つでサーバーを管理できるようにするには、次の手順に従います。

  1. 新しいサーバーの登録をクリックします メインページの既存のアイコンの上または下のリンク。
  2. ホスト名 フィールドに、 server.example.comなどの他のサーバーのインターネットホスト名またはIPアドレスを入力します 。
  3. ポート フィールドに、Webminがリッスンしているポート(通常は 10000 )を入力します 。
  4. サーバータイプから メニューは、他のホストが実行しているオペレーティングシステムを選択します。これは、サーバーを表すために使用されるアイコンのみを設定します。
  5. 他のWebminサーバーがSSLモードの場合は、はいを選択します SSLサーバーで? 分野。このオプションは、マスターシステムにNet ::SSLeay PerlモジュールとOpenSSLライブラリがインストールされている場合にのみ使用できるため、クライアントモードのSSL接続を確立できます。
  6. 説明の場合 フィールドが*ホスト名とポートから*に設定されている場合、サーバーのホスト名とポート番号は、モジュールのメインページのアイコンの下に表示されます。ただし、2番目のオプションを選択して、代わりに表示する別の説明(企業Webサーバーなど)を入力することもできます。 。
  7. このモジュールで定義されたサーバーは、クラスターカテゴリモジュールに簡単に追加できるようにグループに分類できます。 サーバーグループのメンバー このフィールドでは、次のオプションのいずれかを選択できます。*なし*追加するシステムはどのグループにも含まれません。 *既存のグループ*いくつかのグループがすでに定義されている場合、このサーバーは、このオプションの横のメニューから選択されたグループに含まれます。グループがまだ存在しない場合、このオプションは表示されません。 *新しいグループ*サーバーは、隣接するテキストフィールドに名前を入力した新しいグループに追加されます。グループ内のすべてのサーバーが削除されるか、別のグループに変更されるとすぐに、グループは存在しなくなります。
  8. リンクタイプ フィールドは、新しいサーバーをクラスターモジュールとシステムおよびサーバーステータスモジュールで使用できるかどうかを決定するため、このフォームでおそらく最も重要です。また、アイコンが通常のリンクであるかトンネルであるかを判別します。オプションは次のとおりです。*サーバーへの通常のリンク*他のサーバーへのRPC呼び出しはできず、モジュールのメインページのアイコンは通常のWebリンクになります。システムが他のWebサーバー指定のポートを実行している場合は、このオプションを選択する必要があります。 *ユーザー名を使用してWebmin経由でログインする*クラスターカテゴリモジュールなど、WebminのRPC機能を使用してこのサーバーを制御する場合は、このオプションを選択する必要があります。選択した場合は、リモートホスト上のWebminのユーザー名とパスワードをその横のフィールドに入力する必要があります。他のWebminユーザーは、特に許可されていない限り、デフォルトでRPC呼び出しを受信することを許可されていないため、ユーザーはrootまたはadminである必要があります。 RPCを使用して、サーバー上の任意のコマンドを実行したり、任意のファイルを変更したりできます。そのため、信頼できないWebminユーザーにRPCへのアクセスを許可してはなりません。このモードを選択すると、メインページのサーバーのアイコンはトンネルになり、クリックしたユーザーを指定したユーザーとしてリモートサーバーに自動的に記録します。 *アイコンをクリックしたときにログインする*このオプションを選択した場合、サーバーをRPCに使用することはできませんが、そのアイコンはリモートホストへのトンネルのままです。ただし、最初にクリックすると、リモートシステムのログインとパスワードの入力を求められます。これは、ユーザーのブラウザのCookieに保存されます。このオプションは、さまざまなユーザーがトンネリング機能を利用できるようにし、それでも自分自身としてリモートシステムにログインできるようにする場合に便利です。
  9. ユーザー名を使用してWebmin経由でログインする場合 上で選択した場合、高速RPC呼び出しを行いますか? フィールドは、新しい高速RPCプロトコルを使用するか、古い低速プロトコルを使用するかを決定します。 はいを選択できます 高速モードの使用を強制するには、いいえ スローモードを強制するか、自動的に決定 Webminが利用可能な場合にのみ高速モードを使用するようにします。自動オプションが選択されていて、サーバーに接続またはログインできない場合、作成を押すとエラーメッセージが表示されます 後でボタン。 0.89より前のバージョンのWebminは高速プロトコルをサポートしていませんでしたが、ほとんどのシステムは今ではそれを超えてアップグレードされているはずです。通常、ファイアウォールが使用する直接TCP接続をブロックしていない限り、常に高速モードを使用することをお勧めします。 2つのモードの違いの詳細については、この章で後述する「RPCの動作」セクションを参照してください。
  10. 最後に、作成を押します この新しいサーバーを追加するためのボタン。フォームにエラーがない限り、モジュールのメインページに戻ります。メインページには新しいアイコンが含まれているはずです。

サーバーへの通常のリンクで作成されていないサーバーのアイコン モードは、実際には、リモートシステムに接続するこのマスターサーバー上のプログラムへのリンクになります。これは、マスターサーバーがインターネットからアクセス可能であるが、内部ホストはアクセスできない場合、たとえば、インターネットIPアドレスが1つだけで、NATを使用している場合に実際に役立ちます。マスターシステムのこのモジュールでアイコンをクリックしてこれらの内部サーバーにアクセスすると、ブラウザーは実際にはマスターサーバーにのみ接続し、マスターサーバーは選択したスレーブに要求をトンネリングします。

複数のユーザーがいるWebminシステムでは、信頼できないユーザーにこのモジュールへのアクセスを許可することに注意する必要があります。 ユーザー名でWebmin経由でログインでサーバーのアイコンをクリックできる人 モードは、自分ではなく、そのサーバーに指定されたユーザーとしてリモートシステムに接続されます。これにより、おそらく彼は、マスターシステムでは実行できないリモートホストでのルート特権を使用して実行できるようになります。

「モジュールアクセス制御」セクションでは、特定のユーザーが使用できるサーバーアイコンを制御する方法について説明します。これにより、信頼できないユーザーを安全な*サーバーへの通常のリンク*または*アイコンをクリックしたときにログインする*ユーザーに制限できます。モードで。

Webminサーバーの編集または削除

サーバーがこのモジュールに追加されると、そのすべての詳細を編集したり、サーバーを完全に削除したりすることができます。従う手順は次のとおりです。

  1. メインページで、(編集)をクリックします 変更するサーバーの名前の横にあるリンク。これにより、サーバーを追加する場合とほぼ同じ編集フォームが表示されます。
  2. すべてのフィールドは編集可能であり、「Webminサーバーの追加」セクションで説明したのと同じオプションと意味を持ちます。唯一の例外は、高速RPC呼び出しを行いますか? 自動決定がないフィールド モジュールがリモートサーバーがサポートするRPCモードをすでに実行している場合の選択。
  3. 保存を押します ボタンをクリックして、新しい設定をアクティブにします。または、このサーバーをモジュールから削除する場合は、削除をクリックします。 代わりは。このサーバーを使用した他のモジュール(クラスターカテゴリのモジュールなど)は、このサーバーをリストから自動的に削除します。

サーバートンネルの使用

トンネルモードの1つでWebminサーバーのアイコンをクリックすると、このマスターシステムを介して接続されます。リモートホストのユーザーインターフェイスは、すべてのページに特別なWebminサーバーが含まれることを除いて、通常のログインとほぼ同じです。 リンク。これをクリックすると、マスターシステムのWebmin Servers Indexモジュールに戻ります。これは、ブラウザの[戻る]ボタンを数百回押すよりも便利です。

トンネリングを機能させるには、マスターサーバーが、ログインしているリモートホストから返送されたHTMLを分析および変更する必要があります。現在、これはWebminサーバーではうまく機能しますが、このモジュールでサポートされていないHTMLを使用する他のWebベースのアプリケーションまたはWebサイトにトンネリングしている場合は失敗する可能性があります。この症状には、マスターサーバーに存在しないページを指すリンクや、正しくロードされていないイメージが含まれます。

サーバーのアイコンをクリックします*アイコンをクリックしたときにログインします*モードは、最初にリモートシステムのユーザー名とパスワードを入力するためのログインフォームを表示します。これは、リモートホストが選択したポートで実際にWebminを実行していない場合でも表示されますが、標準のHTTP認証を使用する任意のWebサーバーにログインするために使用できます。ログイン後、ブラウザを終了するか(Cookieを破棄する)、または(ログアウト)をクリックするまで、ユーザー名とパスワードが記憶されます。 モジュールのメインページのサーバーアイコンの下に表示されるリンク。

サーバーのブロードキャストとスキャン

ネットワーク上に多数のWebminサーバーがある場合、それらを1つずつこのモジュールに追加するのは面倒な場合があります。ただし、より良い方法があります。マスターシステムは、ローカルLAN上で他のWebminサーバーをブロードキャストしたり、特定のネットワーク内のホストに要求を送信してサーバーをプローブしたりできます。 サーバーへの通常のリンクでのみですが、見つかったものはすべてこのモジュールに自動的に追加されます モード。マスターシステムがリモートシステムのログインとパスワードを自動的に決定する方法はありません。これは、可能であれば大きなセキュリティホールになるためです。

他のWebminサーバーを見つけるには、次の手順に従います。

  1. ローカルLANのみを検索する場合は、モジュールのメインページの下部にある[サーバーのブロードキャスト]ボタンをクリックします。他のネットワークを検索するには、サーバーのスキャンの右側のフィールドにそのアドレスを入力します それを押す前にボタン。これは、 192.168.1.0のように入力されたクラスCネットワークである必要があります 。
  2. 見つかったサーバーのURLを一覧表示するページが表示されます。新しいサーバーには新しいサーバーが見つかりました URLの前に、すでにメインページにあるものには既知のサーバーが見つかりました 、およびマスターシステム自体からの応答には*このサーバーが見つかりました*。
  3. プロセスが完了すると、メインページに戻ることができます。メインページには、新しく検出されたサーバーごとに追加のアイコンが含まれています。次に、編集して、RPCに使用するために*ユーザー名*モードでWebmin経由でログインするように切り替えることができます。

0.75以降のすべてのバージョンのWebminは、UDPポート10000で、このモジュールによって送信されたブロードキャストおよびスキャンパケットをリッスンし、ホスト名、ポート番号、およびSSLモードで応答します。ファイアウォールがこのポートをブロックしている場合、またはセキュリティ上の理由でUDPリスニングがオフになっている場合、サーバーは見つかりません。

RPCの仕組み

RPCは、あるWebminシステムが別のシステムを制御するために使用できるプロトコルです。 RPC要求は通常、あるモジュールのライブラリ内の関数への呼び出しであり、その関数へのパラメーターが含まれています。ただし、サーバーとの間でデータを転送したり、モジュールが使用可能かどうかを確認したり、モジュールの構成を取得したり、Perlコードを実行したりするためのRPC要求タイプは他にもあります。このセクションでは、その仕組みの技術的な詳細について説明します。プログラマーでなく、RPC接続に問題がない場合は、スキップできます。

リモートシステムからいくつかのステータス情報をフェッチするようにシステムおよびサーバーステータスモジュールを設定すると、そのシステム上の同じモジュール内の関数に対してRPC呼び出しが行われ、サービスが稼働しているか停止しているかが判別されます。同様に、ユーザーがCluster Users and Groupsモジュールに追加されると、複数のRPC呼び出しが行われ、ユーザーがパスワードファイルに追加され、ホームディレクトリが作成され、ファイルがそこにコピーされます。第56章では、独自のモジュールでRPCを使用する方法と、その制限について説明します。

前に説明したように、RPCには2つの異なるモードがあります-高速と低速です。低速モードは、RPC関数呼び出し、ファイル転送、または情報の要求ごとにマスターからスレーブへのHTTP要求を使用するため、最も単純です。すべてのパラメーター、データ、および戻り値は、その要求とその応答に含まれ、他のTCP接続は確立されません。このモードの利点は、ポート10000へのHTTP要求が許可されている限り、ファイアウォールとプロキシを介して機能できることです。

遅いことは別として、このモードには1つの大きな欠点があります。HTTPはステートレスプロトコルですが、WebminRPC呼び出しはステートレスではありません。 1つの関数呼び出しで、次の関数呼び出しが依存するグローバル変数を設定することは非常に可能です。つまり、RPCセッションを開くマスターごとに、状態が保持されているバックグラウンドプロセスをリモートシステムで開始する必要があります。ただし、2つの間に直接接続が存在しないため、スレーブシステムがマスターCGIプログラムの終了を自動的に検出して、バックグラウンドプロセスをシャットダウンする方法はありません。

Webminの解決策は、マスターが特別なRPC呼び出しを行ったとき、または30秒間非アクティブになった後、プロセスを終了させることです。マスターCGIプログラムがremote_finished関数を呼び出さない場合、タイムアウトが経過するまで、リモートプロセスはメモリの消費を回避します。何らかの理由で同じホストへのRPC呼び出しの間に30秒以上経過すると、バックグラウンドプロセスが終了し、今後のRPC呼び出しは失敗します。

新しい高速RPCプロトコルは、リモートシステムでバックグラウンドプロセスを開始するための最初のHTTP要求を1つだけ使用して、これらの問題を解決します。次に、マスターサーバーはこのプロセス(空きポートで待機中)にTCP接続を確立し、代わりにその接続を介してRPC要求を送信します。マスタープログラムが終了すると、この接続は自動的に切断され、リモートバックグラウンドプロセスが終了します。特別な関数呼び出しやタイムアウトは必要ありません。

高速RPCモードでは、リモートシステムとの間で大きなファイルを転送するためのサポートが大幅に向上しています。低速モードは、HTTPリクエスト内のファイルをエンコードしようとしますが、ファイルが2つ大きい場合は失敗する可能性があります。新しいモードでは、代わりに、エンコードされていない別のTCP接続を介して転送されます。これにより、より高速で信頼性が高くなります。大きなパッケージを低速モードでインストールすると、クラスターソフトウェアパッケージとクラスターWebmin構成モジュールが失敗する場合があります。

高速モードの唯一の問題は、一部のファイアウォールがTCP接続をブロックする可能性があることです。TCP接続は通常、リモートホストのベースWebminポート(10001や10002など)の上のポート1または2で行われます。データがで転送される場合、複数の接続が確立される可能性があります。 RPCであるため、2つのサーバー間のネットワーク上のファイアウォールは、10000から10100の範囲のポートでマスターからリモートホストへの接続を許可するように構成する必要があります。

モジュールアクセス制御

システムに複数のWebminユーザーがいる場合は、他のユーザーがすべてのサーバーアイコンにアクセスしたり、サーバーを追加したりすることなく、このモジュールを利用できるようにすることができます。これは、ユーザー名を使用してWebmin経由でログインしていないサーバーのアイコンのみを他のユーザーに表示したい場合に便利です。 このようにして、モジュールをネットワーク上の他のシステムの単なるインデックスに変えます。最初のステップは、WebminUsersで説明されているように、このモジュールをユーザーに割り当てることです。次に、次の手順に従って、特定のサーバーのトンネルのみを表示および使用できるように制限できます。

  1. Webminユーザーモジュールのユーザーまたはグループの名前の横にあるWebminサーバーインデックスをクリックして、アクセス制御フォームを表示します。
  2. モジュール構成を編集できますか?を変更します いいえへのフィールド 、他の人のユーザーインターフェイスを変更できないようにします。
  3. サーバーを使用できます フィールドが選択した選択済み 下のリストから表示したいものを選択します。
  4. サーバーを編集できますか?を変更します およびサーバーを見つけることができますか? いいえのフィールド 。
  5. 保存を押します ボタンをクリックして、新しい制限をアクティブにします。

このモジュールでユーザーからサーバーを非表示にしても、RPCを使用する他のモジュールでサーバーを使用できなくなることはありません。

Webminサーバーインデックスモジュールの設定

このモジュールには、ユーザーインターフェイスの表示方法と、サーバーのスキャン方法を制御するいくつかの設定があります。 Module Configをクリックして編集できます メインページのリンクをクリックすると、次のフィールドを含むフォームが表示されます。

Webminサーバーの構成
Webmin
  1. クラスターWebminサーバー

  2. Upnpクライアント/サーバーコンボは機能していますか?

  3. クラウドサーバーに関するFAQ

  1. OnMetalクラウドサーバーを作成する

  2. ApacheサーバーでHTTP圧縮を無効にする

  3. サーバーが正常に再起動することを確認します

  1. 侵害されたサーバーを調査する

  2. OnMetalクラウドサーバーの概要

  3. その他のクラウドサーバーの使用シナリオ