Рейтинговые книги
Читем онлайн Linux: Полное руководство - Денис Колисниченко

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 70 71 72 73 74 75 76 77 78 ... 158

Необязательно указывать для каждого сервиса все атрибуты. Можно указать только необходимые:

♦ socket_type

♦ user

♦ server

♦ wait.

Атрибут protocol указывается только для RPC-сервисов, а также для всех сервисов, которые не описаны в /etc/services. Атрибут rpc_version — только для RPC-сервисов. Атрибут rpc_number указывается только для RPC-сервисов, которые не перечислены в файле /etc/rpc. Атрибут port задается только для не-RPC сервисов, которые не описаны в /etc/services.

Следующие атрибуты поддерживают все операторы присваивания:

♦ only_from

♦ no_access

♦ log_on_success

♦ log_on_failure

♦ passenv

♦ env (кроме оператора «-=»).

В секции defaults, в которой описаны атрибуты по умолчанию, обычно указываются следующие атрибуты:

♦ log_type

♦ log_on_success

♦ log_on_failure

♦ only_from

♦ no_access

♦ passenv

♦ instances

♦ disabled

♦ enabled.

11.3.3. Запуск xinetd

Я надеюсь, что с настройкой все более-менее понятно. Если нет, то немного ниже вы найдете пример файла /etc/xinetd.conf. Сейчас же займемся запуском только что откомпилированного и настроенного суперсервера. А запускать его можно с ключами, самые нужные из которых приведены в таблице 11.3. За списком остальных обращайтесь к man-странице.

Ключи запуска xinetd Таблица 11.3

Ключ Назначение -f файл Устанавливает альтернативный файл конфигурации, который должен использоваться вместо стандартного файла /etc/xinetd.conf -pidfile pid_файл Файл, в который будет записан PID процесса -stayalive Даже если ни один сервис не прописан, демон должен выполняться («остаться в живых») -d режим отладки (debug mode) -limit число Ограничение на количество одновременно запущенных процессов

Как и любой демон, xinetd управляется сигналами:

♦ SIGHUP заставит xinetd перечитать файлы конфигурации и остановить службы, с этого момента отключенные;

♦ SIGQUIT остановит xinetd;

♦ SIGTERM остановит xinetd, остановив предварительно все запущенные им серверы;

♦ SIGUSR1 выведет дамп состояния в файл /var/run/xinetd.dump.

11.3.3.1. Защита xinetd

Суперсервер xinetd достаточно защищен, но его конфигурационный файл придется защитить вам самим. Естественно, нужно установить ему права доступа, разрешив только чтение в только суперпользователю:

# chmod 400 /etc/xinetd.conf

Чтобы никто не смог изменить, удалить, переименовать этот файл, установите ему атрибут «i» (только на файловой системе ext2 или ext3):

# chattr +i /etc/xinetd.conf

11.3.3.2. Пример файла конфигурации /etc/xinetd

Теперь, как и обещал, привожу пример файла конфигурации. В этом листинге перечислены чаще всего используемые сервисы с оптимальными атрибутами. Конечно же, вам предстоит решить, какие сервисы вы будете использовать, а какие нет. Возможно, вы также измените и их атрибуты — например, время работы того или иного сервиса.

Листинг 11.1. Фрагмент файла конфигурации /etc/xinetd

# Параметры по умолчанию для всех возможных сервисов

defaults

{

 # Число серверов, которые могут быть активны одновременно

 instances = 25

 # Параметры протоколирования

 log_type = FILE /var/log/servicelog

 log_on_success = HOST PID

 log_on_failure = HOST RECORD

 # Параметры доступа

 only_from = 111.11.111.0 111.111.112.0

 only_from = localhost 192.168.1.0/32

 # Отключенные сервисы

 disables = tftp

}

service login {

 flags = REUSE

 socket_type = stream

 protocol = tcp

 wait = no

 user = root

 server = /usr/etc/in.rlogind

 log_type = SYSLOG local4 info

}

# Сервис telnet - эмуляция терминала удаленных систем

# для интерфейса обратной петли

service telnet {

 flags = REUSE

 socket_type = stream

 wait = no

 user = root

 server = /usr/etc/in.telnetd

 bind = 127.0.0.1

 log_on_failure += USERID

}

# Сервис telnet — эмуляция терминала удаленных систем

service telnet {

 flags = REUSE

 disable = yes

 socket_type = stream

 wait = no

 user = root

 server = /usr/etc/in.telnetd

 bind = 192.231.139.175

 redirect = 128.138.202.20 23

 log_on_failure += USERID

}

service ftp {

 socket_type = stream

 wait = no

 user = root

 server = /usr/etc/in.ftpd

 server_args = -1

 instances = 4

 log_on_success += DURATION USERID

 log_on_failure += USERID

 access_times = 2:00-8:59 12:00-23:59

 nice = 10

}

service name {

 socket_type = dgram

 wait = yes

 user = root

 server = /usr/etc/in.tnamed

}

# Поддержка протокола TFTP (Trivial FTP). Этот протокол

# используется для обмена информацией между интеллектуальными

# маршрутизаторами и, скорее всего, вы не будете его

# использовать.

service tftp {

 socket_type = dgram

 wait = yes

 user = root

 server = /usr/etc/in.tftpd

 server_args = -s /tftpboot

}

# SMTP-сервис Qmail. Конфигурируется для запуска по

# требованию суперсервера xinetd

service smtp {

 socket_type = stream

 protocol = tcp

 wait = no

 user = qmaild

 id = smtp

 server = /var/qmail/bin/tcp-env

 server_args = /var/qmail/bin/qmail-smtpd

 log_on_success -= DURATION USERID PID HOST EXIT

 log_on_failure -= USERID HOST ATTEMPT RECORD

}

# Сервис finger, позволяющий узнать общедоступную информацию о

# пользователях системы, записанную в /etc/passwd.

service finger {

 socket_type = stream

 disable = yes

 wait = no

 user = nobody

 server = /usr/etc/in.fingerd

}

service echo {

 type = INTERNAL

 id = echo-stream

 socket_type = stream

 protocol = tcp

 user = root

 wait = no

}

service echo {

 type = INTERNAL

 id = echo-dgram

 socket_type = dgram

 protocol = udp

 user = root

 wait = yes

}

service rstatd {

 type = RPC

 disabled = no

 flags = INTERCEPT

 rpc_version = 2-4

 socket_type = dgram

 protocol = udp

 server = /usr/etc/rpc.rstatd

 wait = yes

 user = root

}

Как видно из примера, я сконфигурировал лишь самые необходимые сервисы. Доступ к сервисам в рассматриваемом примере могут получать только клиенты из сетей 111.111.111.0 111.111.112.0 и 192.168.1.0. Можно также указывать адрес и маску подсети, например, 192.168.1.0/32. Вместо sendmail я использовал qmail. Можно было бы запускать qmail в режиме standalone, но так как я не очень часто пользуюсь услугами 25-го порта, то мне удобнее запускать сервис smtp через xinetd. Из соображений безопасности я отключил некоторые сервисы: finger, telnet.

11.4. Удаленный доступ: ssh и telnet

11.4.1. Использование telnet

Сервис telnet обеспечивает базовую эмуляцию терминалов удаленных систем, поддерживающих протокол telnet над протоколом TCP/IP. Обеспечивается эмуляция терминалов Digital Equipment Corporation VT 100, Digital Equipment Corporation VT 52, TTY. Проще говоря, сервис telnet позволяет работать на удаленном компьютере так, как будто вы сидите непосредственно за ним. Протокол telnet описан в документе RFC 854, который вы найдете на сайте издательства www.nit.com.ru.

Для использования telnet на удаленном компьютере должен быть установлен telnet-сервер. На компьютере пользователя нужно установить программу-клиент. Любые команды, вводимые пользователем, обрабатываются telnet-сервером, а не локальным компьютером. Пользователь на своем компьютере лишь видит результат выполнения этих команд.

1 ... 70 71 72 73 74 75 76 77 78 ... 158
На этой странице вы можете бесплатно читать книгу Linux: Полное руководство - Денис Колисниченко бесплатно.
Похожие на Linux: Полное руководство - Денис Колисниченко книги

Оставить комментарий