}
includedir /etc/xinetd.d
После ключевого слова defaultsв фигурных скобках описываются настройки по умолчанию для всех сервисов. Любое из этих значений можно изменить для каждого отдельного сервиса.
Последняя строка подключает директорию /etc/xinet.d:
includedir /etc/xinetd.d
В этом каталоге для каждой службы есть собственный конфигурационный файл, где можно изменить параметры. Имена файлов соответствуют названиям сервисов, а содержимое — похоже на /etc/xinetd.conf. В листинге 5.4 приведено содержимое конфигурационного файла /etc/xinet.d/telnetдля сервиса Telnet.
Листинг 5.4. Конфигурационный файл для сервиса Telnet
# default: on
# По умолчанию включен
# description: The telnet server serves telnet sessions;
# it uses unencrypted username/password
# pairs for authentication.
# Описание: Telnet-сервис обслуживает telnet-сессии.
# Он использует не зашифрованные имя пользователя
# и пароль для аутентификации
service telnet {
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
Рассмотрим основные параметры, которые можно изменять:
□ disable— если этот параметр установить в true, то сервис будет запрещен для исполнения;
□ flags— атрибуты выполнения сервиса;
□ socket_type— тип используемого сокета. Для протокола TCP здесь должно быть значение stream, а для протокола UDP — dgram;
□ protocol— используемый для передачи данных протокол (TCP или UDP);
□ server— полный путь к запускаемой программе;
□ user— права доступа. В большинстве случаев можно увидеть имя пользователя root. Это нормально, потому что в ОС Linux для работы с номерами портов менее 1024 необходимы права администратора. В настоящее время большинство сервисов понижают свои права в соответствии с установками;
□ instances— максимальное количество одновременно работающих экземпляров программы;
□ log_type— запись событий будет производиться в указанный файл или системный журнал;
□ log_on_successи log_on_failure— информация, которая будет сохраняться в журнале при удачном и неудачном входе в систему соответственно, Здесь можно указывать значения: PID, HOSTили USER;
□ per_source— максимальное количество соединений от одного пользователя. Их может быть несколько, потому что юзеры любят максимально нагружать каналы и повышать скорость работы с помощью создания нескольких одновременно работающих соединений;
□ server_args— аргументы, с которыми будет запускаться сервер.
При рассмотрении параметра userя упомянул о необходимости прав администратора для доступа к портам с номером менее 1024. Это действительно так, но зачем это нужно? Не имея прав root, пользователь не сможет запустить сервер, который работает с портом от 1 до 1024. Такая защита необходима, потому что в данном диапазоне функционируют очень важные сервисы, и их нельзя запускать простому пользователю.
Представьте себе, что хакер с правами простого пользователя смог бы запустить FTP-сервер, который используется для передачи файлов. Сделав это, он получит возможность загружать на сервер файлы и скачивать их к себе на компьютер, что нежелательно.
Мы уже знаем, что программа xinetd позволяет определять права и время доступа к сервисам. Для этого в конфигурационном файле можно использовать три команды: no_access, only_fromи access_time.
Директива no_accessзапрещает доступ с указанных компьютеров. Например, следующая строка в конфигурационном файле закрывает доступ с адреса 192.168.1.1:
no_access 192.168.1.1
Если необходимо запретить доступ целой сети, то достаточно указать только ее номер. Например, не должны иметь доступ все компьютеры с адресами 192.168.1.X, где X может быть любым числом. В этом случае нужно использовать следующую строку:
no_access 192.168.1.
Обратите внимание, что в этом случае указанный IP-адрес состоит из трех октетов, разделенных точками, а не четырех.
Для полного запрета доступа необходимо указать в конфигурационном файле следующую строку:
no_access 0.0.0.0
Теперь посмотрим, как можно предоставлять доступ с помощью директивы only_from. Она удобна тем, что изначально запрещает все, кроме указанных в качестве параметра адресов. Получается, что мы действуем от запрета. Указав эту команду без параметра, мы вообще запретим доступ:
Читать дальше
Конец ознакомительного отрывка
Купить книгу