Re: телнет

From
Valentin Nechayev ()
To
Alexander Pevzner ()
Date
2003-05-29T17:58:38Z
Area
RU.UNIX.PROG
From: Valentin Nechayev <netch@segfault.kiev.ua>

>>> Alexander Pevzner wrote: 

VN> AP>> Некоторые сервера не будут с тобой разговаривать, пока ты не
VN> AP>> ответишиь на их options negotiations.
VN>> Вот в этом и был вопрос - что за сервер, и не относится ли он к тому,
VN>> кто про telnet options вообще не знают?  А не разговаривает пока не
VN>> договорились стандартный BSD'шный telnetd.
AP> Interactive UNIX не хотел разговаривать, пока не получал ответы
AP> на свои пожелания относительно опций. Я думаю, там был стандратный
AP> BSD'шный telnetd (кажется, других-то тогда и не было в природе).
[...]
AP> Это должно передаваться как 0xff 0xff 0xf2. Последовательность
AP> 0xff 0xff (IAC IAC) воспринимается как один байт данных, а 0xf2
AP> не имеет никакой магической роли, если перед ним не стоит IAC.

Ты всё время говоришь про полноценный telnetd сервер.
А ведь так и не было сказано, что там такое у той железяки.
Может, она тупая. А протокол - типа POP3.

VN>> А как?  Я вот недавно нарвался - сервер отдаёт кусок текста в cp1251 -
VN>> "...""ят" - telnet это понимает как DATA MARK.  Как различать-то будем?
AP> Это должно передаваться как 0xff 0xff 0xf2. Последовательность

Не должно. Это был HTTP сервер, он ничего такого не должен.
А вот telnet клиент подумал, что это была DATA MARK. Хотя ничего подобного
не было. См. http://www.freebsd.org/cgi/query-pr.cgi?pr=52032 - где я
наоборот делаю из телнета тупой сетевой кидатель строками ;)

AP> Некоторые сервера имеют багу, а именно неправильно передают код 0xff
AP> (не вставляют перед ним IAC). Все более-менее современные вроде как
AP> этой баги не имеют. Софтверно различить их невозможно, и с этим
AP> придется жить :-(

С телнетом уже спокойно. С FTP неспокойно. Всё больше и больше клиентов
и серверов которые не соблюдают опции, удвоение IAC и тому подобное.
Вот с ними что делать? Различать программно - надо.

AP> Насчет аутентификации, я даже не знаю толком, что это такое,
AP> телнетовская аутентификация :-) Разве этим кто-то пользуется?
AP> По-моему, все используют стандартный login/password, которые
AP> вполне себе передаются в потоке данных, а не через команды.

Нет.

RCVD DO AUTHENTICATION

Это отдаёт telnetd. Пока не скажешь ему, что за аутентификация будет -
дальше не пойдёт.

Вот тебе telnet из FreeBSD со включённым SRA:

SENT WILL AUTHENTICATION
RCVD IAC SB AUTHENTICATION SEND KERBEROS_V4 CLIENT|MUTUAL KERBEROS_V4 CLIENT|ONE-WAY SRA CLIENT|ONE-WAY 
SENT IAC SB AUTHENTICATION IS SRA CLIENT|ONE-WAY KEY  <куча цифр>
[...]

А вот без SRA:

< 0x0   fffd25
RCVD DO AUTHENTICATION

Это отдаёт telnetd и жальше ждёт. Продолжение:

SENT WILL AUTHENTICATION
RCVD IAC SB AUTHENTICATION SEND KERBEROS_V4 CLIENT|MUTUAL KERBEROS_V4 CLIENT|ONE-WAY SRA CLIENT|ONE-WAY
SENT IAC SB AUTHENTICATION IS NULL CLIENT|ONE-WAY

Вот с этого момента заходит речь про login/password. Но формально
аутентификация, хоть и NULL, происходит.

Можешь получить такие результаты, сказав "set tracefile <куда-то>"
и "set options".


-netch-
--- ifmail v.2.15dev5
 * Origin: Dark side of coredump (2:5020/400)