Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 19.Основные серверы Вперед

Пакет xinetd-2.3.14

Знакомимся с пакетом xinetd

xinetd является демоном дополнительных сервисов сети интернет (eXtended InterNET) и его можно использовать в качестве безопасной замены вместе inetd.

Информация о пакете

Зависимости пакета xinetd

Необязательные

TCP Wrappers-7.6 и avahi-0.6.25

Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/xinetd

Установка пакета xinetd

Установите пакет xinetd с помощью следующих команд:

./configure --prefix=/usr --with-loadavg &&
make

В этом пакете набор тестов отсутствует.

Теперь в роли пользователя root выполните:

make install

Конфигурирование пакета xinetd

Конфигурационные файлы

/etc/xinetd.conf и /etc/xinetd.d/*

Подробнее о конфигурировании

Проверьте, чтобы для всех демонов использовался путь /usr/sbin, а не путь /usr/etc, указываемый по умолчанию, и, находясь в роли пользователя root, с помощью следующих команд установите конфигурационные файлы xinetd:

cat > /etc/xinetd.conf << "EOF"
# Начало файла /etc/xinetd
# Конфигурационный файл для xinetd
#

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

# Все файлы сервисов хранятся в директории /etc/xinetd.d
#
includedir /etc/xinetd.d
# Конец файла /etc/xinetd
EOF

Во всех файлах, приведенных далее, есть инструкция "disable = yes" ("отключить = да"). Чтобы активировать любой из сервисов, эту инструкцию необходимо заменить инструкцией "disable = no" ("отключить = нет").

Замечание

Следующие файлы приведены для демонстрации классических приложений xinetd. Во многих случаях эти приложения не нужны. В некоторых случаях использование этих приложений рассматривается как возможный риск, связанный с безопасностью. Например, приложение telnet, rlogin, rexec и rsh передают имена пользователей и пароли по сети в незашифрованном виде, и эти приложения могут легко быть заменены на более безопасную альтернативу - ssh.

install -v -d -m755 /etc/xinetd.d &&
cat > /etc/xinetd.d/login << "EOF" &&
# Начало файла /etc/xinetd.d/login

service login
{
   disable        = yes
   socket_type    = stream
   protocol       = tcp
   wait           = no
   user           = root
   server         = /usr/sbin/in.rlogind
   log_type       = SYSLOG local4 info
}

# Конец файла /etc/xinetd.d/login
EOF
cat > /etc/xinetd.d/shell << "EOF" &&
# Начало файла /etc/xinetd.d/shell

service shell
{
   disable        = yes
   socket_type    = stream
   wait           = no
   user           = root
   instances      = UNLIMITED
   flags          = IDONLY
   log_on_success += USERID
   server         = /usr/sbin/in.rshd
}

# Конец файла /etc/xinetd.d/shell
EOF
cat > /etc/xinetd.d/exec << "EOF" &&
# Начало файла /etc/xinetd.d/exec

service exec
{
   disable        = yes
   socket_type    = stream
   wait           = no
   user           = root
   server         = /usr/sbin/in.rexecd
}

# Конец файла /etc/xinetd.d/exec
EOF
cat > /etc/xinetd.d/comsat << "EOF" &&
# Начало файла /etc/xinetd.d/comsat

service comsat
{
   disable        = yes
   socket_type    = dgram
   wait           = yes
   user           = nobody
   group          = tty
   server         = /usr/sbin/in.comsat
}

# Конец файла /etc/xinetd.d/comsat
EOF
cat > /etc/xinetd.d/talk << "EOF" &&
# Начало файла /etc/xinetd.d/talk

service talk
{
   disable        = yes
   socket_type    = dgram
   wait           = yes
   user           = root
   server         = /usr/sbin/in.talkd
}

# Конец файла /etc/xinetd.d/talk
EOF
cat > /etc/xinetd.d/ntalk << "EOF" &&
# Начало файла /etc/xinetd.d/ntalk

service ntalk
{
   disable        = yes
   socket_type    = dgram
   wait           = yes
   user           = root
   server         = /usr/sbin/in.ntalkd
}

# Конец файла /etc/xinetd.d/ntalk
EOF
cat > /etc/xinetd.d/telnet << "EOF" &&
# Начало файла /etc/xinetd.d/telnet

service telnet
{
   disable        = yes
   socket_type    = stream
   wait           = no
   user           = root
   server         = /usr/sbin/in.telnetd
   bind           = 127.0.0.1
   log_on_failure += USERID
}

service telnet
{
   disable        = yes
   socket_type    = stream
   wait           = no
   user           = root
#  server         = /usr/sbin/in.telnetd
   bind           = 192.231.139.175
   redirect       = 128.138.202.20 23
   log_on_failure += USERID
}

# Конец файла /etc/xinetd.d/telnet
EOF
cat > /etc/xinetd.d/ftp << "EOF" &&
# Начало файла /etc/xinetd.d/ftp

service ftp
{
   disable        = yes
   socket_type    = stream
   wait           = no
   user           = root
   server         = /usr/sbin/in.ftpd
   server_args    = -l
   instances      = 4
   log_on_success += DURATION USERID
   log_on_failure += USERID
   access_times   = 2:00-8:59 12:00-23:59
   nice           = 10
}

# Конец файла /etc/xinetd.d/ftp
EOF
cat > /etc/xinetd.d/tftp << "EOF" &&
# Начало файла /etc/xinetd.d/tftp

service tftp
{
   disable        = yes
   socket_type    = dgram
   wait           = yes
   user           = root
   server         = /usr/sbin/in.tftpd
   server_args    = -s /tftpboot
}

# Конец файла /etc/xinetd.d/tftp
EOF
cat > /etc/xinetd.d/finger << "EOF" &&
# Начало файла /etc/xinetd.d/finger

service finger
{
   disable        = yes
   socket_type    = stream
   wait           = no
   user           = nobody
   server         = /usr/sbin/in.fingerd
}

# Конец файла /etc/xinetd.d/finger
EOF
cat > /etc/xinetd.d/systat << "EOF" &&
# Начало файла /etc/xinetd.d/systat

service systat
{
   disable           = yes
   socket_type       = stream
   wait              = no
   user              = nobody
   server            = /usr/bin/ps
   server_args       = -auwwx
   only_from         = 128.138.209.0
   log_on_success    = HOST
}

# Конец файла /etc/xinetd.d/systat
EOF
cat > /etc/xinetd.d/netstat << "EOF" &&
# Начало файла /etc/xinetd.d/netstat

service netstat
{
   disable           = yes
   socket_type       = stream
   wait              = no
   user              = nobody
   server            = /usr/ucb/netstat
   server_args       = -f inet
   only_from         = 128.138.209.0
   log_on_success    = HOST
}

# Конец файла /etc/xinetd.d/netstat
EOF
cat > /etc/xinetd.d/echo << "EOF" &&
# Начало файла /etc/xinetd.d/echo

service echo
{
   disable     = yes
   type        = INTERNAL
   id          = echo-stream
   socket_type = stream
   protocol    = tcp
   user        = root
   wait        = no
}

service echo
{
   disable     = yes
   type        = INTERNAL
   id          = echo-dgram
   socket_type = dgram
   protocol    = udp
   user        = root
   wait        = yes
}

# Конец файла /etc/xinetd.d/echo
EOF
cat > /etc/xinetd.d/chargen << "EOF" &&
# Начало файла /etc/xinetd.d/chargen

service chargen
{
   disable        = yes
   type           = INTERNAL
   id             = chargen-stream
   socket_type    = stream
   protocol       = tcp
   user           = root
   wait           = no
}

service chargen
{
   disable        = yes
   type           = INTERNAL
   id             = chargen-dgram
   socket_type    = dgram
   protocol       = udp
   user           = root
   wait           = yes
}

# Конец файла /etc/xinetd.d/chargen
EOF
cat > /etc/xinetd.d/daytime << "EOF" &&
# Начало файла /etc/xinetd.d/daytime

service daytime
{
   disable        = yes
   type           = INTERNAL
   id             = daytime-stream
   socket_type    = stream
   protocol       = tcp
   user           = root
   wait           = no
}

service daytime
{
   disable        = yes
   type           = INTERNAL
   id             = daytime-dgram
   socket_type    = dgram
   protocol       = udp
   user           = root
   wait           = yes
}

# Конец файла /etc/xinetd.d/daytime
EOF
cat > /etc/xinetd.d/time << "EOF" &&
# Начало файла /etc/xinetd.d/time

service time
{
   disable        = yes
   type           = INTERNAL
   id             = time-stream
   socket_type    = stream
   protocol       = tcp
   user           = root
   wait           = no
}


service time
{
   disable        = yes
   type           = INTERNAL
   id             = time-dgram
   socket_type    = dgram
   protocol       = udp
   user           = root
   wait           = yes
}

# Конец файла /etc/xinetd.d/time
EOF
cat > /etc/xinetd.d/rstatd << "EOF" &&
# Начало файла /etc/xinetd.d/rstatd

service rstatd
{
   disable     = yes
   type        = RPC
   flags       = INTERCEPT
   rpc_version = 2-4
   socket_type = dgram
   protocol    = udp
   server      = /usr/sbin/rpc.rstatd
   wait        = yes
   user        = root
}

# Конец файла /etc/xinetd.d/rstatd
EOF
cat > /etc/xinetd.d/rquotad << "EOF" &&
# Начало файла /etc/xinetd.d/rquotad

service rquotad
{
   disable     = yes
   type        = RPC
   rpc_version = 1
   socket_type = dgram
   protocol    = udp
   wait        = yes
   user        = root
   server      = /usr/sbin/rpc.rstatd
}

# Конец файла /etc/xinetd.d/rquotad
EOF
cat > /etc/xinetd.d/rusersd << "EOF" &&
# Начало файла /etc/xinetd.d/rusersd

service rusersd
{
   disable     = yes
   type        = RPC
   rpc_version = 1-2
   socket_type = dgram
   protocol    = udp
   wait        = yes
   user        = root
   server      = /usr/sbin/rpc.rusersd
}

# Конец файла /etc/xinetd.d/rusersd
EOF
cat > /etc/xinetd.d/sprayd << "EOF" &&
# Начало файла /etc/xinetd.d/sprayd

service sprayd
{
   disable      = yes
   type         = RPC
   rpc_version  = 1
   socket_type  = dgram
   protocol     = udp
   wait         = yes
   user         = root
   server       = /usr/sbin/rpc.sprayd
}

# Конец файла /etc/xinetd.d/sprayd
EOF
cat > /etc/xinetd.d/walld << "EOF" &&
# Начало файла /etc/xinetd.d/walld

service walld
{
   disable      = yes
   type         = RPC
   rpc_version  = 1
   socket_type  = dgram
   protocol     = udp
   wait         = yes
   user         = nobody
   group        = tty
   server       = /usr/sbin/rpc.rwalld
}

# Конец файла /etc/xinetd.d/walld
EOF
cat > /etc/xinetd.d/irc << "EOF"
# Начало файла /etc/xinetd.d/irc

service irc
{
   disable      = yes
   socket_type  = stream
   wait         = no
   user         = root
   flags        = SENSOR
   type         = INTERNAL
   bind         = 192.168.1.30
   deny_time    = 60
}

# Конец файла /etc/xinetd.d/irc
EOF

Формат файла /etc/xinetd.conf описан на странице man xinetd.conf.5. Более подробную информацию можно найти по адресу http://www.xinetd.org.

Загрузочный скипт

В роли пользователя root установите загрузочный скрипт /etc/rc.d/init.d/xinetd, который находится в пакете blfs-bootscripts-20111226.

make install-xinetd

Для запуска xinetd воспользуйтесь в роли пользователя root новым загрузочным скриптом:

/etc/rc.d/init.d/xinetd start

Весьма полезным может оказаться просмотр файла /var/log/daemon.log. В этом файле могут быть записи следующего вида:

Aug 22 21:40:21 dps10 xinetd[2696]: Server /usr/sbin/in.rlogind is not
executable [line=29]
Aug 22 21:40:21 dps10 xinetd[2696]: Error parsing attribute server -
DISABLING SERVICE [line=29]
Aug 22 21:40:21 dps10 xinetd[2696]: Server /usr/sbin/in.rshd is not
executable [line=42]

Эти ошибки возникают, главным образом, из-за того, что xinetd пытается управлять серверами, которые еще не установлены.

Описание пакета

Установленные программы: itox, xconv.pl и xinetd

Установленные библиотеки: Нет

Установленные директории: /etc/xinetd.d/

Краткое описание

itox

утилита, предназначенная для преобразования файлов inetd.conf в формат xinetd.conf

xconv.pl

скрипт Perl, используемый точно также, как и itox, для преобразования файлов inetd.conf в формат xinetd.conf

xinetd

демон сервисов сети интернет

Перевод сделан с варианта оригинала, датированного 2010-08-12 12:18:41 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Пакет vsftpd-2.3.4   Глава 20