ネットワークサービスへのアクセスを制御することは困難な場合があります。ファイアウォールは特定のネットワークに対するアクセスの制御に有効ですが、設定が困難な場合があります。TCPラッパーとxinetdは、ホスト名とIPアドレスによってサービスへのアクセスを制御します。さらに、これらのツールには、設定が容易なロギングや利用状況管理の機能も含まれています。
SSHやTelnet、FTPなど、現代の多くのネットワークサービスでは、受け取ったリクエストと要求されたサービスの間で動作するよう設計されたプログラムであるTCPラッパーを利用しています。TCPラッパーは、Red Hat Linuxをサーバークラスでインストールするとデフォルトでインストールされます。これによって、各種のサービスの実行に多くの利点が提供され、それぞれ異なる方法でアクセスを制御できるようになります。
TCPラッパーの考え方は、サーバーアプリケーションに要求したクライアントは、認証サービスにより「ラップ」されていて、通常のサービスへ直接クライアント接続するのではなく、アクセス制御の大部分を許可したり、どのユーザーがサービスを使用しようとしているかをロギングするというものです。
TCPラッパーの基本となる機能は、libwrap.aによって提供されます。xinetd、sshd、portmapなどのネットワークサービスは、このライブラリが処理します。ユーザーが作成したネットワークプログラムを含む他のネットワークサービスも、この機能を提供するためにlibwrap.aで処理できます。Red Hat Linuxでは、必要なTPCラッパープログラムとライブラリはtcp_wrappers-<バージョン番号> RPMファイルにバンドルされています。
TCPラッパーを使用しているネットワークサービスにユーザーがクライアントアクセスを得ようとすると、要求されたサービスの名前とクライアントのホスト情報を小さいラッパープログラムが報告します。ラッパープログラムはクライアントに情報を直接送り返すことはせず、アクセス制御ディレクティブが満たされると、ラッパーはそれに伴う資源をアンロードし開放します。クライアントとサーバーは、さらなるラッパーの介入無しに、要求を再開します。
他のネットワークサービス制御手法と比較すると、TCPラッパーには基本的に2つの利点があります。
接続しようとしているクライアントからは、TCPラッパーが使用されているかどうか知ることができません。正当なユーザーは違いに気づくことがなく、アタッカーは接続に失敗した理由がまったくわかりません。
TCPラッパーは、ラッパープログラムが保護するアプリケーションから独立して動作します。このため、共通する設定ファイルを多くのアプリケーションで共有できるので、管理が容易になります。