TCP wrapper 【tcpd】
概要
TCP wrapper(tcpd)とは、UNIX系OSのシステムに常駐し、外部からのTCP/IP接続のアクセス制御などを行うプログラム。接続元のIPアドレスなどの情報を元に接続の許可や拒否を指定することができる。標準の常駐プログラム(デーモン)名は “tcpd”。IPネットワークを通じて外部にサービスを提供するサーバなどで用いられ、外部からの接続要求を一元的に受け付ける。設定に基づいてフィルタリングなどを行った上で、各サービスを提供するプログラムを起動する。「TCP wrapper」という名称だがUDPやICMPにも対応する。
標準では主に「/etc/hosts.allow」と「/etc/hosts.deny」という二つの設定ファイルを用い、前者には接続を許可する条件(接続元のホスト名やIPアドレスの範囲、起動するプログラム名など)を、後者には拒否する条件を記述する。接続要求を受けると最初にhosts.allowを参照していずれかの条件に合致すれば接続を許可し、次にhosts.denyを参照して一致すれば接続を拒否する。両方とも記述がなければ許可する。
もともと、inetdのようなIP接続を一元的に受け付ける常駐プログラムと、そこから起動される各サービスとの間で動作する設計だが、同梱のlibwrapと呼ばれるライブラリにサービス側が対応していれば、サービスから直接TCP wrapperの機能を利用することができる。現在では有力なサーバソフトウェアの多くがlibwrapの利用に対応している。
(2020.2.25更新)