Сервер telnet в Linux не использует квитирование связи по протоколу telnet

345
Anonymous

Мы пытаемся подключиться к службе Linux telnet, используя простую терминальную программу; Я подозреваю, что для сервера установлен VT-100 по умолчанию, а сервер telnet отправляет управляющие последовательности рукопожатия, ожидая, что терминал ответит с его поддерживаемыми параметрами, и зависает в ожидании ответа терминала.

enter image description here (извинения за плохое качество изображения)

К сожалению, терминал - просто голая коммуникационная программа и не знает о протоколе telnet.

Есть ли способ сообщить серверу telnet (например, через настройку определенного типа терминала) не начинать идентификацию свойств удаленного терминала, а переходить непосредственно к связи?

Редактировать:

Пожалуйста, отредактируйте вопрос с более подробной информацией: каким терминалом вы пользуетесь, что это за программа «чистого общения»?

Коммуникационная программа открывает TCP-соединение с Linux-компьютером через порт 23, затем отправляет символы, набранные на клавиатуре, и отображает символы, полученные на экране, без какой-либо обработки символов.

Можете ли вы запустить netcat на сервере вместо (или в дополнение) telnetd и использовать это для отладки, если само соединение работает

Я не уверен, я не контролирую обе машины. Но это на 100% тот факт, что машина, на которой работает терминал, может подключаться к машине linux, а машина linux может отправлять управляющие символы протокола telnet (вы можете видеть это на рисунке - белые символы 0xff - маркер запуска опции telnet), Я не могу сказать 100%, потому что у меня нет журналов Wireshark, но кажется, что связь работает должным образом, и это telnet-сервер, который не проходит через рукопожатие протокола telnet.

После того, как вы подключитесь, вы хотите войти в систему, или вы хотите сделать что-нибудь еще? Можете ли вы использовать что-то более безопасное на терминале, например, ssh?

Да, я хочу, чтобы на сервере telnet отображалось «login:» с просьбой войти в систему. Служба telnet на машине linux работоспособна, поскольку ее можно зарегистрировать с третьей машины, используя клиент telnet, но этот клиент telnet знает о протоколе telnet и отвечает на него. В описанном выше случае программа temrinal ничего не знает о кодах / протоколах управления telnet и отображает их в виде символов без каких-либо дальнейших действий (ответ в соответствии с протоколом telnet).

0
Что вы подразумеваете под «простым терминалом»? Сам Telnet не запускает идентификацию свойств удаленного терминала. Такого рода вещи могут быть сделаны с помощью используемой оболочки. Загляните в / etc / screenrc и посмотрите, сможете ли вы это настроить. davidgo 6 лет назад 0
Сервер Telnet отправляет определенную последовательность управления перед началом связи, и клиент должен (или должен?) Ответить ответами на вопросы, которые задает сервер Telnet. Это на самом деле протокол Telnet RFC 854. Кажется, нам нужно отключить эту функцию ... Anonymous 6 лет назад 0
Пожалуйста, отредактируйте вопрос с более подробной информацией: каким терминалом вы пользуетесь, что это за программа «чистого общения»? Можете ли вы запустить `netcat` на сервере вместо (или дополнительно)` telnetd` и использовать это для отладки, если само соединение работает? После того, как вы подключитесь, вы хотите войти в систему, или вы хотите сделать что-нибудь еще? Можете ли вы использовать что-то более безопасное на терминале, например, `ssh`? dirkt 6 лет назад 0

1 ответ на вопрос

1
grawity

Прежде всего, согласование telnet не имеет ничего общего с типами терминалов. (Действительно, тип терминала определяется во время согласования telnet.) Таким образом, вы не можете отключить первый, изменив последний.

То, как вы можете отключить его, зависит от конкретной реализации telnetd на сервере. (Я насчитал пять разных in.telnetds только для Linux, у других ОС есть свои.)

Иногда существует параметр командной строки telnetd, который вы можете использовать в конфигурации службы (то есть в файле systemd .service или / etc / inetd).

Если ничего не получается, вы можете просто скомпилировать свою собственную исправленную версию telnetd; во всех дистрибутивах Linux есть способ перекомпилировать пакеты по официальному рецепту (dpkg-buildpackage, makepkg ...)

Похожие вопросы