Читаем Linux глазами хакера полностью

# 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-сервер, который используется для передачи файлов. Сделав это, он получит возможность загружать на сервер файлы и скачивать их к себе на компьютер, что нежелательно.

<p>5.4.2. Безопасность</p>

Мы уже знаем, что программа 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. Она удобна тем, что изначально запрещает все, кроме указанных в качестве параметра адресов. Получается, что мы действуем от запрета. Указав эту команду без параметра, мы вообще запретим доступ:

only_from =

Я рекомендую включить эту строку в основной конфигурационный файл /etc/xinetd.conf, а потом для каждого отдельного сервиса в его собственном конфигурационном файле прописывать разрешения. Например, давайте откроем доступ с адресов 192.168.1.2 и 192.168.1.19. Для этого добавляем в конфигурационный файл следующую строку:

only_from = 192.168.1.2 192.168.1.19

Можно разрешать доступ целым сетям:

only_from = 192.168.1.

А что, если всей сети разрешен доступ, а компьютеру с номером 1 запрещен? В этом случае можно использовать следующие две строки:

no_access = 192.168.1.1

Перейти на страницу:

Похожие книги