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)