web-dev-qa-db-ja.com

TCPWrappersはまだ使用されていますか?

私の現在の理解によれば、tcpwrappersはinetdまたはxinetdを介して使用できます。最近、inetd/xinetdは、以前はハードウェアをより効率的に使用するために存在したため、最近ではほとんど見られないという情報がありました。

私の質問は、tcpwrappersも時代遅れの手法と見なされているかどうかです。はいの場合、それらの代替品は何ですか?

3
benjamin

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です。

4
BillThor

特定のポートで常に実行されるサービス。 inetdなどがメモリを節約した理由は、デーモンをオンデマンドで常に実行する必要がなかったためです。最近では、オンデマンドデーモンは非常にまれです。

Apache、MySQL、Tomcatなどはすべて実行を続け、指定されたポートをリッスンします。新しいプロセスを起動して各接続を処理するものもあれば、同じプロセスで処理するものもあります。接続が開始されるたびに大量のコードをロードする必要がないため、特定の接続を確立するためのコストは、inetdのようなプロセスの場合よりも少なくなります。

4
sysadmin1138

TCPwrappersと[x] inetdの両方について間違っています。

tcpwrappersはinetdまたはxinetdを介して使用できます

はい-ただし、どのネットワークデーモンでも使用できます-アプリケーションをビルドするときに別のライブラリを使用するだけです。

inetd/xinetdは、以前はハードウェアをより効率的に使用するために登場したため、最近ではめったに見られません。

実際にはそうではありません-[x] inetdを介してサービスを実行することは、スタンドアロンデーモンと比較して常に非常に非効率的です-それらがもたらす違いは、コードがはるかに単純であり、接続が確立されたときにのみメモリにマップされることです。

これは今日でも当てはまります-専用のウェブサーバーを実行している場合、cronジョブから生成されたメールを収集するために1日に数回接続するユーザーが1人だけの場合、たとえばPOPメッセージのためにデーモンを実行し続けることにはあまり意味がありません。または、ヘッドレスマシンでリモートGUIアクセスが必要なときにVNCサーバーを起動します。

Tcpwrappersの優れた点の1つは、カーネルベースのファイアウォールと比較して、スクリプトの複雑な応答が非常に簡単になることです。

4
symcbean

inetd/xinetdは、時間/日付/課金など、すべてのマシンで多くのリモートアクセス可能なサービスを実行していた時代に誕生しました。最近では、より敵対的なインターネットと、そのようなものを使用する可能性に対する認識が高まっています。 DDOS攻撃を開始するために、ほとんどのマシンは、DNS、SMTPなどの特定のマシンで、非常に少数のサーバーを実行します(SSH以外のものを実行する必要があります)。そのため、このようなプロトコルを実装する新しいデーモンには、通常、ラッパーはそれらの内部で行いました。

さらに、ファイアウォール機能を使用して、tcpd/udpdが行っていたほとんどのことを提供できます。

3
cbz

基本的に、「スーパーサーバー」を介して呼び出されるサービスに対してTCP-Wrappersが行うジョブは、最新のLinuxインストールの場合はiptables/netfilterを介して、ステートフルファイアウォールに置き換えることができます(および基本的な機能については、ステートレスファイアウォールルールも同様です)。

2
David Spillett