| xinetd |
xinetdは、inetdの機能拡張版として登場したものである。 RedHat Linux 7から採用されたインターネットスーパーサーバである。 inetdに比べ、IPアドレス制限、時間帯制限などTCP Wrapperがカバー していたものも設定可能になった。下記にxinetdのページがあるので 参照してほしい。
| ダウンロードとインストール |
前にも書いたように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> ...
...
}
|
例)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の便覧を示す。
これは、同じserviceを違うprotocolsで使う場合に serviceの名前を定義する。defaultは、service nameと 同じである。
この属性は、"yes"か"no"を選ぶ。serviceを有効にしたい時は、 "no"を指定する。
下記のような値をとれる。
| stream | stream-based service |
| dgram | datagram-based service |
| raw | direct access |
| seqpacket |
serviceに使われるprotocolを設定する。/etc/protocolsに指 定されているものを設定する。
"yes","no"が指定できる。"yes"を設定した場合は、xinedが一つしか 接続しないで、次の接続要求がきた場合は、最初の接続が解放される まで待つsingle-threadになる。 "no"の場合は、新しい接続要求に対して新たに接続を確立する multi-threadになる。
serviceが実行されるときのuidを決める。
serviceが実行されるときのgidを決める。
serviceが同時に実行される数を決める。defaultは制限なしで UNLIMITEDを設定する。制限を付けたい場合は、数を書く。
processの優先度を決める。
実行するprogramを決定する。
実行するprogramに与える引数を決める。
serviceにアクセスできるremote hostsを決定する。 書き方にはいくつかの方法 がある。が、address/netmaskで書いておけば良いでしょう。
serviceにアクセスできないremote hostsを決定する。 書き方は、only_fromと同じである。
serviceにaccessできる時間を決める。
hour:min-hour:minでaccess時間を決める。
10:00-23:00は、10:00〜23:00の間access可能になる。
| SYSLOGsyslog_facility [syslog_level] | SYSLOGにロ グを吐き出す。facilityは、 daemon,auth,authpriv,user,local0-7が指定できる。 |
| FILEfile [soft limit [hard limit] | fileにログを吐き出す。 |
serverがスタートに成功した時に出すログ
| PID | serverのPIDを記録する |
| HOST | remote host のaddress |
| USERID | user id |
| EXIT | serverが終了した時に記録する |
| DURATION | 接続時間を記録する |
serverがスタートに失敗した時に出すログ
| HOST | remote host のaddress |
| USERID | user id |
| ATTEMPT | |
| RECORD |
serviceのportを決める。
他のホストにserviceをredirectする。
redirect&sp;&sp;&sp; = (ip address) (port) .
というように指定する。
インクルードするディレクトリを指定する。