私の現在の理解によれば、tcpwrappersはinetdまたはxinetdを介して使用できます。最近、inetd/xinetdは、以前はハードウェアをより効率的に使用するために存在したため、最近ではほとんど見られないという情報がありました。
私の質問は、tcpwrappersも時代遅れの手法と見なされているかどうかです。はいの場合、それらの代替品は何ですか?
tcpwrappersは元々、hosts.allowとhosts.denyをチェックするスタンドアロンプログラムとして実装されていました。接続が成功すると、目的のデーモンが起動して単一の要求を実行します。 inetdの構成は、デーモンのプログラムとオプションをパラメーターとして使用してtcpdラッパーを実行するように構成されます。
xintedは拡張inetdです。古いinetdよりもはるかに多くの構成オプションがあります。 echo、chargen、time、daytime、discardなどの簡単なサービスが組み込まれています。多くの場合継続的に実行される多くのデーモンプロセスは、xinetdから実行できます。これは通常、サービスがめったに使用されないときに行われます。これにより、起動時間が遅くなる代わりに、実行する必要のあるプロセスの数が制限されます。この方法で実行できるサービスには、メールサーバー、vnc、Apache、およびその他の多くのデーモンが含まれます。
inetdはxinetdと同じタスクを実行しますが、サービスごとに1行の単純な構成を使用します。これにより、構成する機能が制限されますが、自動構成が簡素化されます。 inetdを自動的に構成できるインストール手順では、xinetdに対して同じことができない場合があります。現在、多くのサイトがinetdではなくxinetdを使用することを選択しています。
ラッパーコードはライブラリに作成されており、常に実行されているデーモンとリンクされていることがよくあります。これらのデーモンは、ライブラリを使用して、使用する前に着信接続を確認します。これにより、ファイアウォールで確実に実装できない名前ベースの制限が可能になります。これには、DNSベースのチェックが多数含まれます。通常、ライブラリを使用して構築されるデーモンの1つはxinetdです。
特定のポートで常に実行されるサービス。 inetdなどがメモリを節約した理由は、デーモンをオンデマンドで常に実行する必要がなかったためです。最近では、オンデマンドデーモンは非常にまれです。
Apache、MySQL、Tomcatなどはすべて実行を続け、指定されたポートをリッスンします。新しいプロセスを起動して各接続を処理するものもあれば、同じプロセスで処理するものもあります。接続が開始されるたびに大量のコードをロードする必要がないため、特定の接続を確立するためのコストは、inetdのようなプロセスの場合よりも少なくなります。
TCPwrappersと[x] inetdの両方について間違っています。
tcpwrappersはinetdまたはxinetdを介して使用できます
はい-ただし、どのネットワークデーモンでも使用できます-アプリケーションをビルドするときに別のライブラリを使用するだけです。
inetd/xinetdは、以前はハードウェアをより効率的に使用するために登場したため、最近ではめったに見られません。
実際にはそうではありません-[x] inetdを介してサービスを実行することは、スタンドアロンデーモンと比較して常に非常に非効率的です-それらがもたらす違いは、コードがはるかに単純であり、接続が確立されたときにのみメモリにマップされることです。
これは今日でも当てはまります-専用のウェブサーバーを実行している場合、cronジョブから生成されたメールを収集するために1日に数回接続するユーザーが1人だけの場合、たとえばPOPメッセージのためにデーモンを実行し続けることにはあまり意味がありません。または、ヘッドレスマシンでリモートGUIアクセスが必要なときにVNCサーバーを起動します。
Tcpwrappersの優れた点の1つは、カーネルベースのファイアウォールと比較して、スクリプトの複雑な応答が非常に簡単になることです。
inetd/xinetdは、時間/日付/課金など、すべてのマシンで多くのリモートアクセス可能なサービスを実行していた時代に誕生しました。最近では、より敵対的なインターネットと、そのようなものを使用する可能性に対する認識が高まっています。 DDOS攻撃を開始するために、ほとんどのマシンは、DNS、SMTPなどの特定のマシンで、非常に少数のサーバーを実行します(SSH以外のものを実行する必要があります)。そのため、このようなプロトコルを実装する新しいデーモンには、通常、ラッパーはそれらの内部で行いました。
さらに、ファイアウォール機能を使用して、tcpd/udpdが行っていたほとんどのことを提供できます。
基本的に、「スーパーサーバー」を介して呼び出されるサービスに対してTCP-Wrappersが行うジョブは、最新のLinuxインストールの場合はiptables/netfilterを介して、ステートフルファイアウォールに置き換えることができます(および基本的な機能については、ステートレスファイアウォールルールも同様です)。