inetdは、クライアントからのリクエストに応じてプログラム(サーバー)を起動します。 inetdの利点としては、httpdやsendmailのようにサーバープログラムそれぞれが常駐 しないためメモリーの使用量を少なくすることが出来ます。
inetdは常駐しており、クライアントからの要求があると要求先のポートに応じて プログラムを起動します。どのポート番号がどのプログラムに対応するかは、 /etc/servicesファイルに定義されています。
ftp 21/tcp # File Transfer [Control] ftp 21/udp # File Transfer [Control] ssh 22/tcp # Secure Shell Login ssh 22/udp # Secure Shell Login telnet 23/tcp telnet 23/udp # 24 - private smtp 25/tcp mail
定義は、サービス名、ポートとプロトコル、エイリアス(別名)の順に定義します。
ポートからサービスは、/etc/servicesファイルでわかるので次にどのプログラムを実行 するかになります。どのプログラムを実行するかは、/etc/inetd.confに定義します。
ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd svn stream tcp nowait svnuser /usr/sbin/tcpd /usr/local/bin/svnserve -i -r /var/svn
定義の意味は、順に次のようになります。
上記例では、実行されるプログラムが全て/usr/sbin/tcpdになっています。これは、 TCPWrapperと呼ばれtcpdがプログラムとの間に入りログの記録やアクセス制限等 をおこなってくれます。
TCPWrapperは、inetdから起動されるプログラムに対してログの記録やアクセス制限 といった基本的なセキュリティーを確保してくれます。
inetd.confの設定は、実行するプログラムにtcpdを指定し引数として実際に実行される プログラムのパス及び引数を指定します。実行するプログラムが、/usr/sbin/に配置 されている場合、in.proftpdのように指定できます。(/usr/sbin/ = REAL_DAEMON_DIR)
上記例のsvn(Subversion)は、引数にプログラムのパスを指定しています。
TCP Wrapperによるアクセス制限は、/etc/hosts.allow及び/etc/hosts.denyで設定します。 allowには、接続を許可するホストを指定しdenyには、拒否するホストを指定します。
書式は、次のようになります
サービス : ホスト [ : オプション ]
Copyright 1997-2010 BBB All rights reserved.