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

ネットワークサービスとプロトコル

この章では、スーパーサーバー inetdについて説明します。 およびxinetd 、必要に応じてtelnetやFTPなどのプロトコルのサーバーを起動する責任があります。

コンテンツ

インターネットサービスの概要

電子メール、プロキシ、Webサービスなど、頻繁に使用されるネットワークサービスは、継続的に実行され、独自の複雑な構成ファイルとWebminモジュールを持つサーバープロセスによって処理されます。ただし、telnet、finger、POPなど、構成を必要とせず、独自の永続的なサーバープロセスを必要としないサービスもあります。代わりに、それらのサーバーは、複数のポートでネットワーク接続をリッスンするinetdやxinetdなどのスーパーサーバーによって必要なときに実行されます。接続を受信した場合にのみ、クライアントと通信するための適切なプロセスが開始され、接続が閉じられると終了します。これにより、一度に実行するプロセスの数が制限されてメモリが節約されますが、新しい接続の処理が少し遅くなります。

すべてのサービスには、telnetやpop3のような短い名前、23や110のようなポート番号、TCPやUDPのようなプロトコルがあります。ファイル/etc/ servicesには、システムが認識しているすべてのサービス名とそれに対応するポート番号がリストされていますが、スーパーサーバーまたは他のサーバーがそれらをリッスンしている可能性があるのはそのうちのいくつかだけです。

最も一般的に使用されるスーパーサーバーはinetdであり、これはほとんどすべてのLinuxディストリビューションおよびUnixバリアントで使用されています。すべてのサーバー設定は、構成ファイル/etc/inetd.confに保存されます。 TCP接続とUDP接続に応答してサーバーを起動するだけでなく、RPC(リモートプロシージャコール)関数呼び出しも同様の方法で処理できます。 inetdの主な欠点の1つは、クライアントのIPアドレスに応じて接続を拒否できないことです。ただし、これは、独自のIPアクセス制御構成ファイルを持つ中間TCPラッパーサーバープログラムを使用することで解決できます。

人気が高まっており、より多くの機能を備えたもう1つのスーパーサーバーはxinetdです。これは、/ etc / xinetd.conf構成ファイルを使用し、場合によっては/etc/xinetd.dディレクトリの下にある他のファイルを使用します。 inetdと同様に、TCPおよびUDP接続に応答してサーバープロセスを起動できますが、RCPはサポートしていません。その主な利点は、個別に構成されたプログラムを必要とせずに、特定のクライアントIPアドレスへの接続を制限するための組み込みサポートです。また、独自のクライアント接続を確立してデータを前後に転送することにより、特定のポートの着信接続を別のホストおよびポートにリダイレクトすることもできます。

inetdとxinetdの構成ファイルとファイル形式はまったく異なるため、それぞれを構成するための個別のWebminモジュールがあります。ほとんどのLinuxディストリビューションには、どちらか一方が付属していますが、場合によっては、両方をインストールして平和的に共存させることができます。唯一の制限は、両方が同時に同じポートでリッスンできないことです。

ネットワークサービスとプロトコルモジュール

このモジュールはinetdの構成を扱い、Webminのネットワークカテゴリにあります。アイコンが表示されていない場合、Webminはアイコンがインストールされていないことを検出しています。これは、ディストリビューションが代わりにxinetdを使用していることが原因である可能性があります。その場合は、「拡張インターネットサービスモジュール」セクションにスキップする必要があります。どちらのモジュールも表示されない場合は、配布CDまたはWebサイトでinetdまたはxinetdパッケージを確認してください。

モジュールのメインページ(図15-1に表示)には、2つのテーブルが表示されます。1つはインターネットサービス用です。 TCPまたはUDP接続に応答し、RCPプログラム用に1つ 。 インターネットサービス セクションには、すべてのサービスの名前とプロトコルが表示されます。場合によっては、同じサービスが複数のプロトコルで認識されることがあります。各サービスは、名前が表示されているフォントで示される3つの状態のいずれかになります。

有効 (太字)サーバープログラムがこのサービスに割り当てられており、現在アクティブです。
無効 (太字-斜体)サーバープログラムが割り当てられていますが、アクティブではありません。これは、inetd.confファイルのコメントアウトされたエントリに対応します。
未割り当て (通常)このサービスにはサーバープログラムが割り当てられていません。つまり、このサービスのinetd.confエントリはありません。

モジュール構成オプションがプログラムなしでサービスを表示する場合 いいえに設定されています 、未割り当て状態のサービスは表示されません。システムが認識しているサービスの数が多いため、これは一部のオペレーティングシステムのデフォルトです。

ほとんどのLinuxディストリビューションには、デフォルトでほとんどすべてのサービスが無効な状態で出荷されます。これにより、システムが接続を許可する不要なサービスの数が制限されるため、攻撃者がサーバープログラムの1つにセキュリティホールを悪用する可能性が低くなります。

インターネットサービスおよびプロトコルモジュールのメインページ

各サービスはtelnetやchargenのような短い名前でのみ表示されるため、経験の浅い管理者にはそれぞれが何をするのかは明らかではありません。より一般的に使用されるサービスとその目的のいくつかは次のとおりです。

TCPプロトコルとUDPプロトコルの両方の日中、エコー、および充電サービスは、個別のサーバープログラムではなく、有効になっている場合はinetdによって内部的に処理されます。

インターネットサービスの有効化

ユーザーがPOP3プロトコルを使用してシステムからメールをフェッチしたり、telnet経由でログインしたりできるようにする場合、現在有効になっていない場合は、適切なインターネットサービスをオンにする必要があります。これを行うには、次の手順に従います。

  1. モジュールのメインページで、インターネットサービスで有効にするサービスの名前をクリックします。 テーブル。これにより、詳細を編集するために図15-2に示すページに移動します。割り当てられていないサービスがシステムに表示されない場合は、サービス名を入力し、[サービスの編集]の横のフィールドでプロトコルを選択できます。 ボタン。ボタンをクリックすると、サービス名が認識されていると仮定して、編集フォームに移動します。
  2. サービス名ポート番号プロトコル およびエイリアス サービスの名前を変更したり、リッスンしているポートを変更したりする場合を除いて、フィールドは変更しないでください。自分で作成していないサービスの場合、これらのフィールドのいずれかを変更すると、システム上のプログラムが他のサーバーに接続できなくなる可能性があるため、お勧めできません。
  3. サーバープログラム セクションで、サービスを有効にするには、有効なプログラムを選択します オプション。 プログラムが無効になっている場合 以前にを選択した場合、セクション内の他のすべての設定は正しく、変更する必要はありません。ただし、プログラムが割り当てられていない場合 以前にを選択した場合は、サーバープログラムとサーバーを実行するユーザーを選択する必要があります。 プログラムを選択します フィールドコマンド オプションを選択し、サーバープログラムへのフルパスをその横のフィールド(/usr/sbin/in.ftpdなど)に入力します。 Argsで フィールドに、サーバーコマンドと、in.ftpd –l –aなどの必要な引数を再度入力します。プログラムパスがコマンドにある場合でも フィールドでは、プログラム名は Argsに表示される必要があります フィールドも。 ユーザーとして実行で実行するサーバープログラムのユーザーを入力する必要があります 分野。ほとんどすべてのサーバーで、これはルートになります。 待機モードの1つ オプションも設定する必要があります–サーバーが非常に高速に実行および実行されない限り、待機しないを選択します。 。日中、echo、chargen、discardなどの一部のサービスは、inetdによって内部的に処理されます。それらの1つを有効にする場合は、 Internal to inetdを選択するだけです。 。プログラムや引数を入力する必要はなく、サーバーが実行するユーザーは関係ありません。
  4. 完了したら、[保存]ボタンをクリックします。エラーがなく、選択したサーバープログラムが実際に存在する限り、ブラウザはメインページのサービスのリストに戻ります。
  5. 変更の適用をクリックします ページの下部にあるボタンをクリックして、変更をアクティブにします。
Figure 15-2 “Editing an internet service” 

対応するサーバープログラムがまだインストールされていないため、サービスを有効にできない場合があります。この場合は、ソフトウェアパッケージモジュールを使用して、LinuxディストリビューションCDまたはWebサイトからインストールしてください。

サービスを無効にする場合は、同じ手順に従いますが、無効にしたプログラムを選択します。 代わりにオプション。これは、プログラムが割り当てられていないを選択するよりも優れています サーバープログラムの詳細を再入力しなくても、サービスを簡単にオンに戻すことができるためです。

独自のインターネットサービスの作成

状況によっては、他に割り当てられていないポートでリッスンする新しいサーバーをシステムに追加したい場合があります。非標準のポートでTelnetサーバーを実行したり、ncなどのプログラムを使用してシステムのあるポートから別のサーバーにトラフィックをリダイレクトしたりすることができます。 ftpやimapなどの標準サービスをオンにしようとしているだけの場合は、このセクションの手順は適切ではありません。代わりに、「インターネットサービスの有効化」セクションを参照してください。

新しいサービスを作成するための手順は次のとおりです。

  1. モジュールのメインページで、[*新しいインターネットサービスを作成する*]リンクをクリックします。これにより、サービス作成フォームが表示されます。これは、図15-2の編集フォームに似ています。
  2. サービス名を入力します サービスの一意の名前を持つフィールド。
  3. サービスを関連付けるポート番号をポート番号に入力します 分野。
  4. プロトコルからプロトコルを選択します リスト。これはほとんどの場合TCPですが、場合によってはUDPを使用する必要があります。
  5. サービスを参照する代替名をエイリアスに入力します 分野。
  6. このサービスにサーバープログラムを関連付けたい場合は、プログラムを有効にするを選択します。 サーバープログラムのオプション セクション。それ以外の場合、作成されるのはサービス名とポート番号の間の関連付けだけです。
  7. プログラムの場合 フィールドで、コマンドを選択します オプションを選択し、サーバープログラムへのフルパスをその横のフィールドに入力します(例:/ usr / local / bin / someserver)。 Argsで フィールドに、プログラム名と、someserver –fooなど、実行する必要のあるコマンドライン引数を入力します。別の例を挙げると、システムで実行されているすべてのプロセスをtelnet経由で接続しているすべての人に表示するサービスを作成する場合は、コマンドを設定できます。 / bin/psとArgsに psauxwwwに。ただし、これはセキュリティの観点からは悪い考えです。
  8. サーバープログラムの実行に1秒以上かかる場合、またはサーバープログラムが入力を受け入れる場合は、待機モードを設定します。 待たないへのフィールド 。それ以外の場合、inetdは、プログラムが終了するまで新しいネットワーク接続の処理を停止します。この完了するまで待つの唯一の利点 モードは、メモリ使用量のわずかな削減です。
  9. サーバープログラムを実行するUnixユーザーのユーザー名をユーザーとして実行に入力します。 分野。これは通常ルートですが、誰でもかまいません。
  10. inetdがサービスの接続を受け入れる速度を制限するには、1分あたりの最大数に数値を入力します 分野。制限を超えると、それ以降の接続は次の1分まで拒否されます。
  11. デフォルトでは、サーバープログラムが実行されるグループは、ユーザーとして実行で設定されたユーザーのプライマリグループです。 分野。これを変更するには、グループとして実行にグループ名を入力します 分野。
  12. 作成をクリックします ボタンをクリックしてサービスを作成します。フォームにエラーがない限り、メインページのサービスのリストに戻ります。
  13. 変更の適用をクリックします ボタンをクリックしてサービスをアクティブにします。

サービスが作成されたら、telnet localhost portnumberを実行してサービスをテストできます。 システムのシェルプロンプトで。メインページでサービスの名前をクリックし、保存をクリックする前にオプションを変更することで、いつでもサービスを編集できます。 –または削除 あなたがそれを取り除きたいなら。変更を加えた後、変更を適用 それらをアクティブにするには、ボタンを使用する必要があります。

RPCプログラムの作成と編集

RPCは、NFSやNISなどの他のプロトコルの基礎となるプロトコルおよびデータ形式です。 RPCクライアントは、RPCサーバーに対して関数呼び出しを行い、パラメーターを渡して結果を返します。クライアントまたはサーバーにとって、リモートプロシージャコールを行うことは、RPCを使用するプログラムを作成する通常のライブラリ関数を呼び出すことと同じくらい難しくありません。この関数は、独自のプロトコルを最初から作成するよりもはるかに簡単です。

RPCプログラムは、サーバーによって処理される一連の機能です。各プログラムには、インターネットサービスのポートと同様に一意の番号があります。プログラムは通常、UDPまたはTCPを介した接続と関数呼び出しを受け入れることができるため、特定のプロトコルに関連付けられていません。また、必要に応じて動的に割り当てられるため、固定ポートもありません。

大量のトラフィックを処理するRPCサーバー(NISサーバーやNFSサーバーなど)には、常に実行される独自のプロセスがあります。ただし、たまにしか実行する必要のない一部のサーバーは、使用頻度の低いインターネットサービスの場合と同様に、必要な場合にのみinetdで実行できます。より一般的に使用されるRPCプログラムのいくつかは次のとおりです。

一部のシステムでは、これらのRPCプログラムは、inetdから実行されるのではなく、スタンドアロンプ​​ロセスとして実行されるサーバーによって処理される場合があります。その場合、ブートアップおよびシャットダウンモジュール(第9章で説明)は、それをアクティブ化または非アクティブ化する場所です。一般的なRPCプログラムの数が少なく、有用性が限られているため、多くのLinuxディストリビューションでは、デフォルトでinetd構成でプログラムが有効または無効にされていません。ただし、これはSolarisなどの他のオペレーティングシステムには当てはまりません。

現在有効になっていないRPCプロトコルを使用する場合は、このモジュールを使用してオンにすることができます。もちろん、適切なRPCサーバープログラムを最初にインストールする必要があり、システム上のinetdはRPCプログラムをサポートする必要があります。その場合、従う手順は次のとおりです。

  1. モジュールのメインページで、RPCプログラムからプログラム名をクリックします。 テーブル。これにより、図15-3に示すプログラム編集フォームが表示されます。
  2. サーバープログラムの下 セクションで、*プログラム有効*オプションを選択します。 プログラムが無効になっている場合 以前にを選択した場合、セクション内の他のすべての設定は正しく、変更する必要はありません。ただし、プログラムが割り当てられていない場合 チェックされた場合、他のいくつかのフィールドに入力する必要があります。 RPCバージョン フィールドは、サーバープログラムがサポートするバージョンの範囲( 1_ – _3 など)に設定する必要があります。 。 * SocketType*フィールドはDatagramに設定する必要があります 、およびプロトコル udpのみに設定されたフィールド オプション。 サーバープログラムの場合 フィールドに、/ usr / sbin/rpc.rusersdなどのRPCプログラムへのフルパスを入力します。 コマンドの場合 フィールド、etnerプログラム名、およびrpc.rusersd –aなどの引数。 待機モードの場合 、[*待たない*]を選択します。 [ユーザーとして実行]フィールドに、サーバープログラムを実行するユーザー名(通常はroot)を入力します。
  3. 完了したら、[保存]をクリックします ボタン。入力にエラーがない限り、RPCプログラムが有効として表示されるモジュールのメインページに戻ります。
  4. 変更の適用をクリックします プログラムをアクティブにするボタン。
Figure 15-3 “The RPC program editing form” 

インターネットサービスおよびプロトコルモジュールの構成

インターネットサービスモジュールの構成可能なオプションにアクセスするには、モジュール構成をクリックします。 メインページの左上隅にあるリンク。これにより、標準の構成フォームが表示され、次のオプションを変更できます。

システム構成の下の残りのモジュール構成オプション オペレーティングシステムの種類に基づいてWebminによって自動的に設定されるため、変更しないでください。

その他のオペレーティングシステム

Unixのほとんどすべてのバージョンにはinetdが標準で含まれており、Linuxと同じように、実行頻度の低いサーバープログラムを起動するためにinetdを使用します。ただし、その構成ファイルの形式と機能は他のオペレーティングシステムではわずかに異なります。つまり、モジュールのユーザーインターフェイスは完全に同じではありません。メインページには常にインターネットおよびRPCサービスのリストが表示されますが、サービスを編集または作成する場合、実行しているUnixバリアントに応じて異なるフィールドとオプションを使用できます。

Sun Solaris
インターネットサービスを編集する場合、*1分あたりの最大数*とグループとして実行 フィールドは使用できません。 -Solarisバージョン8以降は、IPv6 TCPおよびUDPプロトコル、およびLinuxが使用する標準IPv4をサポートします。 -多くのRPCサービスは、NFSクォータやロックなどのために、デフォルトで無効な状態で存在します。
FreeBSD
RPCサービスにプログラムを割り当てることはできません。サービス名とプログラム番号を編集するだけです。 -サービスを編集または作成する場合、最大子プロセスを使用して、一度にアクティブにできるサーバープログラムの数を制御できます。 分野。 -編集時にも、ログインクラスとして実行と同様に、サーバープログラムが実行するログインクラスを設定できます。 フィールド。
NetBSD
FreeBSDと同様に、* Max ChildProcessesおよび*Executeas Login Class *フィールドは、サービスを編集または作成するときに使用できます。 -Solarisと同様に、インターネットサービスはIPv6TCPおよびUDPプロトコルを使用できます。

OpenBSD Compaq Tru64 / OSF1 IBM AIX SCO OpenServer およびSCOUnixWare

Solarisの場合と同様に、* Max PerMinuteおよび グループとして実行フィールドは使用できません。
SGI Irix
1分あたりの最大数 およびグループとして実行 サービスを編集する場合、フィールドは使用できません。 -サーバープログラムのコマンドの下に追加のチェックボックスがあります *コマンドが存在しない可能性がありますか?*というラベルの付いたフィールド。設定されている場合、サーバープログラムがインストールされていない場合にサービスを無視するようにinetdに指示します。デフォルトでは、これはデフォルトでインストールされていないIrixパッケージに関連する多くのサービスでオンになっています。
HP / UX
HP / UXでは、モジュールにはLinuxとまったく同じオプションがあります。
Apple MacOS X
Solarisと同様に、* Max PerMinuteおよび*ExecuteasGroup*フィールドは使用できません。 -FreeBSDのように、RPCサービスにプログラムを割り当てることはできません。 -サービス名とポートを格納するために使用される/etc/ servicesファイルの代わりに、それらはNetInfoテーブルにあります。 Webminはこのテーブルをダンプして再ロードし、サービスを読み取って編集します。

Webmin
  1. VPN強化:その概要と方法

  2. マルチパス、Virt-manager、ブリッジネットワーク?

  3. Warpinator –ネットワークを介してファイルを送受信する

  1. Netcatを使用したネットワークサービスのテスト

  2. RHEL 7 – RHCSA 注:ネットワーク サービスの開始、停止、およびステータスの確認。

  3. CentOS/RHEL 8 でネットワーク サービスを再起動する方法

  1. ホームネットワークでSSHおよびSFTPプロトコルを使用する方法

  2. Linuxで静的IPアドレスを設定してネットワークを構成する方法

  3. Linuxでサービスを管理および一覧表示する方法