48.5. TCP Wrapper および xinetd
ネットワークサービスへのアクセスの制御は、サーバー管理者向けの最も重要なセキュリティータスクの 1 つです。Red Hat Enterprise Linux は、この目的のためのツールを複数提供します。たとえば、iptablesベースのファイアウォールは、カーネルのネットワークスタック内の非welcomeネットワークパケットを除外します。これを使用するネットワークサービスの場合、TCP Wrapper は、どのホストがラップされたネットワークサービスに接続されているかを定義することで、保護層を追加します。このようなラップされたネットワークサービスの 1 つが
xinetd
スーパーサーバー です。このサービスは、ネットワークサービスのサブセットへの接続を制御し、アクセス制御をさらに絞り込むため、スーパーサーバーと呼ばれます。
図48.9「ネットワークサービスへのアクセス制御」 は、これらのツールがどのように連携してネットワークサービスを保護するかに関する基本的な図です。
図48.9 ネットワークサービスへのアクセス制御
[D]
本章では、ネットワークサービスへのアクセスを制御する TCP Wrapper と
xinetd
のロールと、ロギングと使用状況管理の両方を強化するためにこれらのツールがどのように使用されるかを確認することに重点を置いています。iptables でファイアウォールを使用する方法は、「iptables」 を参照してください。
48.5.1. TCP Wrapper
TCP Wrappers パッケージ(
tcp_wrappers
)はデフォルトでインストールされ、ホストベースのアクセス制御にホストベースのアクセス制御が提供されます。パッケージ内の最も重要なコンポーネントは、/usr/lib/libwrap.a
ライブラリーです。一般的に、TCP-wrapped サービスは、libwrap.a
ライブラリーに対してコンパイルされているサービスです。
TCP ラップされたサービスに接続を試みると、サービスはまずホストのアクセスファイル(
/etc/hosts.allow
および /etc/hosts.deny
)を参照して、クライアントが接続できるかどうかを判断します。ほとんどの場合、syslog デーモン(syslogd
)を使用して要求元のクライアントの名前と要求されたサービスを /var/log/secure
または /var/log/messages
に書き込みます。
クライアントが接続できる場合、TCP Wrapper は要求されたサービスへの接続をリリースし、クライアントとサーバー間の通信の一部を取りません。
TCP Wrapper は、アクセス制御およびロギングの他に、要求されたネットワークサービスへの接続の制御を拒否または解放する前に、コマンドを実行してクライアントと対話できます。
TCP Wrapper はすべてのサーバー管理者のセキュリティーツールに追加される価値があるため、Red Hat Enterprise Linux 内のほとんどのネットワークサービスは
libwrap.a
ライブラリーにリンクされています。このようなアプリケーションには、/usr/sbin/sshd
、/usr/sbin/sendmail、および /usr/sbin/xinetd
が含まれます。
注記
ネットワークサービスバイナリーが
libwrap.a
にリンクされているかどうかを確認するには、root で以下のコマンドを入力します。
ldd <binary-name> | grep libwrap
< ;binary-name> を、ネットワークサービスバイナリーの名前に置き換えます。
コマンドが出力のないプロンプトに直接返されると、ネットワークサービスは
libwrap.a
にリンクされて いません。
以下の例は、
/usr/sbin/sshd
が libwrap.a
にリンクされていることを示しています。
~]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00655000)
~]#
48.5.1.1. TCP Wrapper の利点
TCP Wrapper は、他のネットワークサービス制御手法と比較して、以下の利点があります。
- クライアントとラップされたネットワークサービスの両方に対する透過性:接続クライアントとラップ されたネットワークサービスの両方が、TCP Wrapper が使用されていることを認識しません。正当なユーザーは、禁止されたクライアントからの接続中にログに記録され、要求されたサービスに接続されます。
- 複数のプロトコルの一元管理: TCP Wrapper は、保護するネットワークサービスとは別に動作し、多くのサーバーアプリケーションが共通のアクセス制御設定ファイルのセットを共有できるため、管理が容易になります。