Linux-сервер Telnet не должен использовать протокол Telnet для установления связи

Linux-сервер Telnet не должен использовать протокол Telnet для установления связи

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

введите описание изображения здесь (извините за плохое качество изображения)

К сожалению, терминал — это всего лишь голая коммуникационная программа, не знающая о протоколе 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 и отвечает на него. В описанном выше случае программа terminal ничего не знает о кодах управления telnet/протоколе и отображает их как символы без каких-либо дальнейших действий (ответ в соответствии с протоколом telnet).

решение1

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

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

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

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

Связанный контент