a-Column

【Linux】inetdとxinetdの違い

inetdの後継として、「xinetd」が注目されています。Red Hat Linuxでは、バージョン7.0からinetdではなくxinetdが採用されています。セキュリティの面から考えてみても、今後はxinetdに移行していくものと思います。inetdとxinetdの違いについて簡単ではありますが説明させていただきます。

 inetdとxinetdでは設定ファイルのフォーマットがまったく違うため、そのままでは使えません。inetdでは、TCP_Wrapperを用いなければアクセスコントロールをかけることができません。これに対し、xinetdは設定ファイルの記述でアクセスコントロールをかけることが可能です(注)。つまり、機能的には、

inetd+TCP_Wrapper=xinetd

と考えていただいても構いません。さらに、xinetdはアクセスコントロールだけでなく、もっと多くの実装を備えています。TCPだけでなく、UDPのアクセスコントロールもできます。このように、xinetdはinetd + TCP_Wrapperより優れているといえます。

ほかにも、inetd経由でデーモンを起動するユーザーはrootである必要があったのですが、xinetdではその必要がありません。xinetdではアプリケーション専用のアカウントを作成し、そのアカウントの権限でデーモンを起動できます。これにより、バッファオーバーフロー攻撃でシェルを実行されてしまっても、そのアカウントの権限のみであるのためroot権限の必要なファイルの書き換えなどはできません。

inetd.confをxinetd.confファイルにコンバートする「xconv.pl」というツールがすでに出ています。Debian/GNU Linuxでは、aptコマンドを用いてxinetdをインストールすると、inetd.confをxinetd.confへコンバートしてくれます。

 xconv.plでコンバートした場合、Red Hat Linux 7.1Jのデフォルトのxinetdの設定とは形式がやや異なります。Red Hat Linux 7.1Jでは、/etc/xinetd.d以下にサービスごとにファイルが作成されます。xconv.plが作成するxinetd.confは、inetd.confと同じように1つのファイルに各サービスの設定が記述されます。

Last Update : 2005年12月28日 (水) 8:9