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


답변:


14

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

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

  • OLD-ENVIRON와 NEW-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.