telnetd
Сервис
протокола TELNET DARPA (UNIX)
Примечание.
Для запуска этого сервиса необходимо войти в систему с учетной
записью root.
Синтаксис:
telnetd [-4 |
-6] [-debug [порт]] [-D модификатор] [-n]
Поддерживаемые платформы:
Neutrino
Опции:
-4 или -6
Семейство адресов, используемое для режима -debug. В нормальном режиме работы
(при вызове из сервиса inetd) telnetd использует дескриптор файла,
передаваемый сервисом inetd.
-D модификатор
Отобразить
отладочную информацию. Можно указать любое из следующих
значений:
options
Вывести
информацию о согласовании опций TELNET.
report
Вывести ту же
информацию, что и для options, а также
дополнительную информацию о выполняемой обработке.
netdata
Отобразить
поток данных, полученный сервисом telnetd.
ptydata
Отобразить
данные, записанные на псевдотерминал.
-debug [порт]
Обычно сервис
telnetd запускается
автоматически из inetd. Эта опция
позволяет запустить сервис telnetd вручную.
-n
Деактивировать опцию keepalive.
Описание:
Сервис telnetd – это сервер, поддерживающий
протокол виртуального терминала TELNET, соответствующий
стандарту DARPA.
Сервис telnetd запускается после получения
сервисом inetd запроса службы
на подключение к порту TELNET (сервис inetd прослушивает запросы служб,
указанные в файле inetd.conf, на порте,
определенном в файле services).
С помощью
опции -debug сервис telnetd можно запустить вручную, а не из inetd. При таком способе запуска сервиса
telnetd можно
использовать аргумент порт для выполнения
сервиса telnetd на порте с
альтернативным номером TCP.
Для отладки
используется опция -D. Если указана
эта опция, сервис telnet выводит
отладочную информацию через соединение, что позволяет
просматривать данные о работе сервиса telnetd.
Работа
сервиса telnetd состоит в
выделении устройства псевдотерминала для клиента, последующем
создании процесса входа в систему, для которого в качестве
стандартного потока ввода, стандартного потока вывода и
стандартного потока ошибок используется подчиненная сторона
псевдотерминала. Сервис telnetd управляет
основной стороной псевдотерминала путем реализации протокола
TELNET и передачи символов между удаленным клиентом и
процессом входа в систему.
Примечание.
Получение сообщения о том, что все сетевые порты заняты,
означает, что либо исчерпано количество псевдоустройств, либо
не запущен сервис devc-pty. Сервис telnetd
учитывает устройства псевдотерминалов только с именами /dev/pty[pqrs][0-f]
вне зависимости от количества других созданных устройств
псевдотерминалов.
При открытии
сеанса TELNET сервис telnetd передает на
сторону клиента опции TELNET, свидетельствующие о готовности к
удаленному выводу символов, подавлению продолжения и
реализации удаленного управления обменом данными, а также
получению информации о типе терминала, скорости передачи
данных терминала и размере окна от удаленного клиента. В
случае готовности удаленного клиента данные о типе удаленного
терминала передаются в среду созданного процесса входа в
систему. Псевдотерминал, назначенный для клиента,
настраивается для работы в режиме с
обработкой с включением режимов XTABS и CRMOD.
Сервиса telnetd готов к выполнению следующих
команд:
-
echo
-
binary
-
suppress go ahead
-
timing mark
А также – к
выполнению следующих команд на стороне удаленного клиента:
-
line mode
-
binary
-
terminal type
-
terminal speed
-
window size
-
toggle flow control
-
environment
-
X display location
-
suppress go ahead
Проблемы разрешения имен
Для сервиса
telnetd необязательно
наличие доступа к функциям разрешения имен. В случае
отсутствия доступа к этим функциям сервис telnetd выполняет обратный поиск имени
клиента Telnet (поиск имени хоста по IP-адресу).
В случае
использования сервера имен следует убедиться в корректности
его конфигурации. Если конфигурация некорректна, может
возникнуть задержка при возврате клиенту приглашения на вход в
систему продолжительностью до 1,5 минут, пока преобразователь
имен библиотеки сокетов осуществляет попытку разрешения
IP-адреса в имя хоста.
Типовая конфигурация для выполнения telnetd во встраиваемой целевой
системе
Как было
указано выше, для выполнения сервиса telnetd в среде системы хоста следует
просто ввести команду inetd в командной
строке. При необходимости выполнения сервиса telnetd во встраиваемой целевой системе
следует скопировать в целевую систему следующие файлы:
-
Соответствующая версия
файла io-pkt*.
-
Разделяемый объект
драйвера Ethernet (т.е. devn-ne2000.so).
-
libsocket.so.
-
devc-pty для
обеспечения поддержки псевдотерминала. Для определения
количества сеансов используется опция -n этого сервиса. Для
каждого сеанса telnet
используется одно псевдоустройство.
-
Утилиты ifconfig и route. Обе утилиты
используются для конфигурирования используемого сетевого
интерфейса. Их можно заменить утилитой dhcp.client.
-
Сервис inetd. Этот сервис
представляет собой интернет-суперсервер.
-
Файл inetd.conf, в котором содержится
список сервисов службы TCP.
Сервис inetd и файл inetd.conf находятся в каталоге /usr/sbin и каталоге /etc, соответственно. В случае перемещения
файла inetd.conf в другой
каталог следует указать inetd в командной
строке.
Примечание.
Минимальный набор данных, содержащихся в файле inetd.conf,
для обеспечения корректного функционирования сервиса telnetd:
-
inetd.conf = {
-
# Синтаксис
интернет-служб:
-
# <имя_службы>
<тип_сокета> <протокол> <флаги>
<пользователь>
<путь_к_серверу><аргументы>
-
telnet stream tcp nowait
root /usr/sbin/telnetd in.telnetd
-
telnet stream tcp6 nowait
root /usr/sbin/telnetd telnetd
-
}
-
Сервис telnetd. Обычно находится в
каталоге /usr/sbin/telnetd. В случае
перемещения сервиса в другой каталог следует внести
соответствующие изменения в файл inetd.conf.
-
/etc/services.
Обеспечивает отображение имен служб, таких как telnet, на
номера портов (23).
-
/bin/login
При отсутствии необходимости
входа в систему команду login можно связать с
sh или с другим
исполняемым файлом, но в этом случае также следует добавить /etc/passwd.
Для получения дополнительной
информации см. раздел "Проблемы разрешения имен" выше.
Для
конфигурирования интерфейса через приглашение командного
интерпретатора следует использовать либо утилиты ifconfig и route, либо dhcp.client. После этого можно запустить
сервис inetd.
Файлы:
Для работы
сервиса telnetd требуется
разделяемая библиотека libsocket.so.
Лицензия:
Эта утилита
разработана на основе программного обеспечения, авторское право
на которое принадлежит проекту WIDE и членам правления
Калифорнийского университета (The Regents of the University of
California). Уведомление об авторских правах см. в разделе telnetd в приложении "Уведомление об
авторских правах третьих сторон".
Предупреждения:
В виду наличия
ошибок в исходной утилите telnet из пакета BSD
версии 4.2 сервис telnetd выполняет обмен
некоторыми данными по протоколу для получения подтверждения
того, что удаленным клиентом действительно ялвяется Telnet
версии 4.2 BSD.
Для двоичного
режима не предусмотрено единой интерпретации, за исключением
случаев его реализации между одинаковыми операционными системами
(в данном случае UNIX).
Имя типа
терминала, получаемое от удаленного клиента, преобразуется в
символы нижнего регистра.
Сервис telnetd не передает команды TELNET Go Ahead.