xinetd

xinetdは、inetdの機能拡張版として登場したものである。 RedHat Linux 7から採用されたインターネットスーパーサーバである。 inetdに比べ、IPアドレス制限、時間帯制限などTCP Wrapperがカバー していたものも設定可能になった。下記にxinetdのページがあるので 参照してほしい。

http://www.xinetd.org

もどる

ダウンロードとインストール

前にも書いたようにRedHat7.1ではすでにインストールしてある。 が、セキュリティホールがいくつか発見されているので、 2001.9.30現在の最新版である2.3.3に必ずアップデートすること。 正式サポートソフトなので、 RedHat downloadのページに 新しいrpmがおいてあるのでそれを利用すると良い。 http://www.xinetd.orgには tarされたソースがおいてある。

ソースをダウンロードした場合は、

$ cd /usr/local/src
$ gtar xvfz /usr/local/src/xinetd-2.3.3.tar.gz
$ cd xinetd-2.3.3
$ ./configure
$ make
$ su
passward XXXXXX
# make install
	

で出来上がり。

RPMでインストールする場合は、

まだインストールしていない場合
# rpm -ivh xinetd-2.3.3-1.i386.rpm
すでに古いバージョンがインストールしてある場合
# rpm -Fvh xinetd-2.3.3-1.i386.rpm
	
関連ファイル
/etc/xinetd.conf全体設定用ファイル
/var/xinetd.d/個々の設定ファイルが格納されるディ レクトリ

xinetdの設定

全体の設定をxinetd.confに設定する。

#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{
	instances               = 60
        log_type                = SYSLOG authpriv
        log_on_success		= HOST PID
        log_on_failure		= HOST
	cps			= 25 30
}

includedir /etc/xinetd.d
	

最後の行がincludeするファイルが格納されるディレクトリを示している。 このディレクトリには以下のようにサービス毎の設定ファイルが おいてある。

  /etc/xinetd.d:
  total 100
  drwxr-xr-x    2 root     root         4096 Sep 24 11:01 .
  drwxr-xr-x   48 root     root         4096 Sep 30 09:32 ..
  -rw-r--r--    1 root     root          297 Aug 30 06:20 chargen
  -rw-r--r--    1 root     root          317 Aug 30 06:20 chargen-udp
  -rw-r--r--    1 root     root          297 Aug 30 06:20 daytime
  -rw-r--r--    1 root     root          317 Aug 30 06:20 daytime-udp
  -rw-r--r--    1 root     root          289 Aug 30 06:20 echo
  -rw-r--r--    1 root     root          308 Aug 30 06:20 echo-udp
  -rw-r--r--    1 root     root          318 Feb 28  2001 finger
  -rw-r--r--    1 root     root          361 Aug 15 09:21 ftp
  -rw-r--r--    1 root     root          376 Jul  8 18:25 imap
  -rw-r--r--    1 root     root          370 Jul  8 18:25 imaps
  -rw-r--r--    1 root     root          447 Jul  8 18:25 ipop2
  -rw-r--r--    1 root     root          355 Aug 15 16:05 ipop3
  -rw-r--r--    1 root     root          344 Apr  3 23:24 linuxconf-web
  -rw-r--r--    1 root     root          259 Feb 28  2001 ntalk
  -rw-r--r--    1 root     root          332 Jul  8 18:25 pop3s
  -rw-r--r--    1 root     root          361 Feb  6  2001 rexec
  -rw-r--r--    1 root     root          378 Feb  6  2001 rlogin
  -rw-r--r--    1 root     root          431 Feb  6  2001 rsh
  -rw-r--r--    1 root     root          317 Sep 30  2000 rsync
  -rw-r--r--    1 root     root          247 Feb 28  2001 talk
  -rw-r--r--    1 root     root          304 Aug 15 09:22 telnet
  -rw-r--r--    1 root     root          321 Aug 30 06:20 time
  -rw-r--r--    1 root     root          317 Aug 30 06:20 time-udp
	

各設定は以下のようにすればよい

service <service_name>
{
       <attribute> <assign_op> <value> <value> ...
       ...
}
	
といった感じである。<assign_op>は、'=','+=', '-='が使える。'+=','-='は、defaultの設定から 足したり引いたりする場合に使う。 <attribute>と<value>によって、設定される。

例)ftpの設定(proftpd)

# default: on
# description: The proftpd FTP server serves FTP connections. It uses \
#	normal, unencrypted usernames and passwords for authentication.
service ftp
{
	socket_type		= stream
	wait			= no
	user			= root
	server			= /usr/sbin/in.proftpd
	server_args		= 
	log_on_success		+= DURATION USERID
	log_on_failure		+= USERID
	nice			= 10
	disable			= no
}
	

今まであったftpの設定を太字で示した部分を変更すればよい。

<attribute>の便覧

下記に良く使われるattributeの便覧を示す。

id

これは、同じserviceを違うprotocolsで使う場合に serviceの名前を定義する。defaultは、service nameと 同じである。

disable

この属性は、"yes"か"no"を選ぶ。serviceを有効にしたい時は、 "no"を指定する。

socket_type

下記のような値をとれる。

streamstream-based service
dgramdatagram-based service
rawdirect access
seqpacket

protocol

serviceに使われるprotocolを設定する。/etc/protocolsに指 定されているものを設定する。

wait

"yes","no"が指定できる。"yes"を設定した場合は、xinedが一つしか 接続しないで、次の接続要求がきた場合は、最初の接続が解放される まで待つsingle-threadになる。 "no"の場合は、新しい接続要求に対して新たに接続を確立する multi-threadになる。

user

serviceが実行されるときのuidを決める。

group

serviceが実行されるときのgidを決める。

instances

serviceが同時に実行される数を決める。defaultは制限なしで UNLIMITEDを設定する。制限を付けたい場合は、数を書く。

nice

processの優先度を決める。

server

実行するprogramを決定する。

server_args

実行するprogramに与える引数を決める。

only_from

serviceにアクセスできるremote hostsを決定する。 書き方にはいくつかの方法 がある。が、address/netmaskで書いておけば良いでしょう。

no_access

serviceにアクセスできないremote hostsを決定する。 書き方は、only_fromと同じである。

access_time

serviceにaccessできる時間を決める。
hour:min-hour:minでaccess時間を決める。 10:00-23:00は、10:00〜23:00の間access可能になる。

log_type

SYSLOGsyslog_facility [syslog_level]SYSLOGにロ グを吐き出す。facilityは、 daemon,auth,authpriv,user,local0-7が指定できる。
FILEfile [soft limit [hard limit] fileにログを吐き出す。
log_on_success

serverがスタートに成功した時に出すログ

PIDserverのPIDを記録する
HOSTremote host のaddress
USERIDuser id
EXITserverが終了した時に記録する
DURATION接続時間を記録する

log_on_failure

serverがスタートに失敗した時に出すログ

HOSTremote host のaddress
USERIDuser id
ATTEMPT
RECORD

port

serviceのportを決める。

redirect

他のホストにserviceをredirectする。
redirect&sp;&sp;&sp; = (ip address) (port) .
というように指定する。

includedir

インクルードするディレクトリを指定する。

もどる


Kenji Ohmori
Last modified: Tue May 31 02:00:47 JST 2005