Telnet 서버가 프로토콜을 통해 사용중인 클라이언트를 감지 할 수 있습니까?


답변:


14

User-Agent는 없지만 클라이언트 정보를 전송하기위한 몇 가지 Telnet 프로토콜 옵션이 있습니다.

  • TERMINAL TYPE– 사용 된 터미널 유형을 표시합니다 (예 : xterm, urxvt, screen-256color ...). NAWS창 크기 (열 x 행)를보고하는 것도 마찬가지입니다 .

  • OLD-ENVIRONNEW-ENVIRON- 일부 특정 환경 변수를 밝힐 수; 일부 클라이언트는 가짜 $ DISPLAY 변수로 FQDN을 공개합니다. 구성된 시스템 로케일 ($ LANG, $ LC_ *) 또는 시간대 ($ TZ)를 보내는 것도 드문 일이 아닙니다.

  • XDISPLOC – 위와 유사하게 일부 클라이언트는 FQDN을 X11 표시 위치로 보냅니다.

  • 인증 기능이 활성화되어 있으면 OS 사용자 이름을 공개 할 수 있습니다.

  • 마지막으로 인식되는 모든 옵션 세트는 구현마다 다르며 대략적인 Panopticlick 스타일 지문으로 사용될 수 있습니다.

frost $ echo $ DISPLAY
: 0

서리 $ 텔넷
telnet> 설정 옵션
옵션 처리를 보여줍니다.
telnet> open m-net.arbornet.org
162.202.67.157 시도 중 ...
m-net.arbornet.org에 연결되었습니다.
이스케이프 문자는 '^]'입니다.
미리 보냄
전송 된 터미널 유형
보냄
보내진 속도
전송 됨
전송 된 LINEMODE
새로운 환경을 보냈습니다
보냄 상태
XDISPLOC 전송
RCVD DO 인증
보낸 WONT 인증
RCVD는 계속 진행될 것이다
RCVD DO 터미널 유형
RCVD DO NAWS
SENT IAC SB NAWS 0 95 (95) 0 46 (46)
RCVD DO TSPEED
RCVD DO LFLOW
RCVD DO LINEMODE
전송 된 IAC SB LINEMODE SLC 동기화 지원 0; IP 변수 | 플러시 | 플러시 3; AO 변수 15; AYT NOSUPPORT 0; 가변 변수 | 플러시 | 플러시 28; EOF 변수 4; SUSP 변수 | 플러시 26; EC 변수 127; EL 변수 21; EW 변수 23; RP 변수 18; 다음 변수 22; XON 가변 17; XOFF 변수 19; FORW1 NOSUPPORT 0; FORW2 NOSUPPORT 0;
미리 보냄
RCVD DO NEW-ENVIRON
RCVD 상태
RCVD DO XDISPLOC
RCVD는 암호화 될 것이다
보내지 않은 암호화
RCVD DO OLD-ENVIRON 전송 
WONT OLD-ENVIRON
RCVD IAC SB 터미널 속도 전송
전송 된 IAC SB 터미널 속도는 38400,38400입니다.
RCVD IAC SB X- 디스플레이 위치 보내기
전송 된 IAC SB X-DISPLAY-LOCATION IS "frost.nullroute.eu.org:0"
RCVD IAC SB NEW-ENVIRON 전송 
전송 된 IAC SB NEW-ENVIRON IS VAR "DISPLAY"VALUE "frost.nullroute.eu.org:0"
RCVD IAC SB 터미널 유형 전송
보낸 IAC SB 터미널 유형은 "XTERM-256COLOR"입니다.
RCVD 마십시오 에코
WONT ECHO 보냄
RCVD는 에코
에코를 보냈습니다.
RCVD IAC SB 토글 유량 제어 OFF
RCVD IAC SB 토글 유량 제어 재시동 -XON
RCVD DONT LINEMODE
보낸 WONT LINEMODE
RCVD IAC SB LINEMODE SLC IP 변수 | ACK | FLUSHIN | FLUSHOUT 3; AO 변수 | ACK 15; 가변 변수 | ACK | 플러시 | 플러시 28; EOF 변수 | ACK 4; SUSP 변수 | ACK | 플러시 26; EC 변수 | ACK 127; EL 가변 | ACK 21; EW 변수 | ACK 23; RP 변수 | ACK 18; 다음 변수 | ACK 22; XON 가변 | ACK 17; XOFF 변수 | ACK 19;

FreeBSD / i386 (m-net.arbornet.org) (pts / 5)

로그인: 

2
훌륭한 답변. 내가 man telnet나열된 유일한 버그를 읽을 때 : The source code is not comprehensible. 누군가가 C 이외의 다른 최신 클라이언트를 작성했는지 궁금합니다.
Thufir

3
프로토콜 자체도 대부분의 서버와 마찬가지로 구식이기 때문에 그다지 쓸모가 없습니다 ... SSHv2는 현대의 대체품입니다. // 또한 "telnet"이라는 inetutils-telnet 및 netkit-telnet이라는 여러 클라이언트가 있습니다.
user1686

1
관련 메모에서 SSH 에는 사용자 에이전트 문자열이 있습니다.
user1686

1
@grawity telnet은 여전히 ​​진단과 같은 많은 용도를 사용합니다. TLS의 확산 (예 : OpenSSL을 선호)으로 인해 다소 흔하지 -connect는 않지만 텔넷이 아닌 서버에 대해 호출 할 때 텔넷이 제공하는 것처럼 합리적 텍스트 텍스트 연결에 여전히 유효한 용도가 많이 있습니다. 물론, 당신의 요점은 텔넷은 단순한 소프트웨어가 아니라 프로토콜이라는 것입니다. 웹 브라우저 HTTP를 호출하는 것과 비슷합니다.
CVn

1
@ MichaelKjörling 그러나 telnet 명령이 네트워크 통신 디버깅에 사용될 때 실제로는 telnet 프로토콜을 말하지 않습니다. 텔넷 클라이언트에서는 방금 포트 번호를 알려주는 방식으로 테스트하여 동작을 변경시킵니다.
kasperd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.