Chapter 19 TELNET and Rlogin
CONTENTS CONCEPT NETWORK VIRTUAL TERMINAL (NVT) NVT CHARACTER SET EMBEDDING OPTIONS OPTION NEGOTIATION SUBOPTION NEGOTIATION CONTROLLING THE SERVER OUT-OF-BAND SIGNALING
CONTENTS (Continued) ESCAPE CHARACTER MODE OF OPERATION EXAMPLES USER INTERFACE RLOGIN (REMOTE LOGIN) SECURITY ISSUE
TELNET and Rlogin are general-purpose client-server application programs.
19.1 CONCEPT
19.1 개념 시분할 환경 UNIX와 같이 시분할 환경에서 운영할 때 설계 다수의 사용자 지원 터미널을 통해 사용자와 컴퓨터간 상호 대화 키보드, 모니터, 마우스 등 시분할의 모든 처리는 주 컴퓨터로부터 이루어짐 각 사용자가 전용 컴퓨터를 갖는 것과 같은 환경 제공
19.1 개념 로그인[login] 시분할 환경에서 자원에 대한 접근 권한을 갖는 시스템의 일부 아이디(로그인 네임), 패스워드 사용 식별자, 로그인 네임을 가지고 등록 시스템에 접근하기 위해 인증되지 않은 가압자가 자원을 사용하지 못하도록 패스워드 검사
19.1 개념 로컬 로그인 사용자가 자신의 시분할 시스템에 등록하는 것 1. 터미널 또는 터미널 에뮬레이터가 동작하는 워크스테이션에서 입력 2. 터미널 드라이버에 의해 받아지고 3. 운영체제로 전달 4. 원하는 응용 프로그램이나 유틸리티 가 시작되도록 함
19.1 개념 원격 로그인 원격 장치에 위치한 응용프로그램이나 유틸리티에 접근하고자 할 때 수행 TELNET 클라이언트와 서버 프로그램이 사용
19.2 NETWORK VIRTUAL TERMINAL
19.2 네트워크 가상 터미널 원격컴퓨터에 접근하는 절차는 복잡하기 때문에 컴퓨터와 운영체제가 특별한 문자 조합을 토큰으로 받음 TELNET은 이 문제를 해결하기 위해 터미널(NVT) 문자 집합의 인터페이스 정의
19.3 NVT CHARACTER SET
19.3 NVT 문자 집합 데이터 문자 NVT ASCII사용 7개 하위비트 US ASCII와 동일 최상위 비트는 “0” “1”을 보낼 수 있지만, 서버와 클라이언트 사이에 옵션 협상을 통해 사전 동의 필요
19.3 NVT 문자 집합 제어 문자 두 컴퓨터간(클라이언트<->서버) 제어문자를 보내기 위해 최상위 비트가 1로 지정된 8 비트 문자를 사용
19.3 NVT 문자 집합 NVT 원격 제어 문자 character decimal binary meaning EOF 236 11101100 End of file EOR 239 11101111 End of record SE 240 11110000 Suboption end NOP 241 11110001 No operation DM 242 11110010 Data mark BRK 243 11110011 Break IP 244 11110100 Interrupt process AO 245 11110101 Abort output AYT 246 11110110 Ar you there? EC 247 11110111 Erase character EL 248 Erase line GA 249 1111001 Go ahead SB 250 1111010 Suboption begin WILL 251 1111011 Agreement to enable option WONT 252 11111100 Refusal to enable option DO 253 11111101 Approval to option request DON’T 254 11111110 Denial of option request IAC 255 11111111 Interpret(the next character) as control
19.4 EMBEDDING
19.4 끼워넣기 TELNET은 하나의 TCP연결을 사용 서버 23, 클라이언트 임시 포트 사용 데이터와 원격 제어 문자 전송 제어 문자들을 데이터 스트림에 끼워넣음 제어 문자는 IAC 특수 제어 문자 뒤에 놓음 <back space> 끼워넣기
19.5 OPTIONS
19.5 옵션 code option Meaning Binary Use 8-bit binary transmission 1 Binary Use 8-bit binary transmission 1 Echo Echo the data received on one side to the other 3 Supress go ahead Suppress go-ahead signals after data 5 Status Request the status of TELNET 6 Timing mar Define the timing marks 24 Terminal type Set the terminal type 32 Terminal speed Set the terminal speed 34 Line mode Change to line mode
19.6 OPTION NEGOTIATION
19.6 옵션협상 옵션들을 사용하기 위해 클라이언트와 서버 간 협상이 필요 character decimal Binary Meaning WILL 251 11111011 Offering to enable Accepting a request to enable WONT 252 11111100 Rejecting a request to enable Offering to disable Accepting a request to disable DO 253 11111101 Approving an offer to enable Requesting to enable DONT 254 11111110 Disapproving an offer to enable Approving an offer to disable Requesting to disable
19.6 옵션협상 옵션에 대한 활성화 서버와, 클라이언트에 의해 활성화 제안(offer),요청(request)에 의해 활성화 활성화를 위한 제안 권한이 있는 경우 옵션 활성화 제안 WILL – 제안, DO – 허용, DON’T – 거부
19.6 옵션협상 활성화 요청 승인, 거절될 수 있음 요청측 : 옵션 활성화 승인 요청 (DO) 수신측 : 허용(WILL), 거절(WONT)
19.6 옵션협상 옵션에 대한 활성화 해제 해제 제안 옵션 해제 제안을 거절 할 수 없음 WONT를 보내면 DON’T를 전송하여 더 이상 사용하지 않음
19.6 옵션협상 해제 요청 옵션 해제 요청을 거절 할 수 없음 요청측 : DONT를 보내 의사를 전달 수신측 : WONT를 보내 옵션을 사용하지 않음
19.6 옵션협상 에코 옵션 예제
SUBOPTION NEGOTIATION 19.7 SUBOPTION NEGOTIATION
19.7 서브 옵션의 협상 터미널 종류, 속도 등의 정의를 위한 부가적 정보 필요 character decimal binary Meaning SE 240 11110000 Suboption end SB 250 11111010 Suboption begin
19.8 CONTROLLING THE SERVER
19.8 서버에 대한 제어 몇 가지 제어문자는 원격 서버를 제어하는데 사용 프로그램 인터럽트 (Ctrl+C) 마지막 입력문자 삭제(delete, backspace) Char Dec Binary Meaning ----- ------ ----------- -------------------- IP 244 11110100 Interrupt process AO 245 11110101 Abort output AYT 246 11110110 Are you there? EC 247 11110111 Erase last character EL 248 11111000 Erase line
19.8 서버에 대한 제어 어플리케이션 프로그램 인터럽트 예제
OUT-OF-BAND SIGNALING 19.9 OUT-OF-BAND SIGNALING
19.9 대역외 신호 특별한 상황에서 제어 문자들 효과적으로 만들기 위해 사용 IAC뒤에 제어문자 위치 원격 프로세스 순을 따르지 않고 전송
19.10 ESCAPE CHARACTER
19.10 ESCAPE 문자 두가지 다른 인터럽트 클라이언트를 인터럽트 하는 문자를 원할때 Escape문자 ‘Ctrl+]’ (^])
19.11 MODE OF OPERATION
19.11 운영모드 문자모드 클라이언트에 입력되는 각 문자는 서버로 전송 서버는 클라이언트에 에코 문자 나타나도록 함 에코되는 문자는 전송이 오래 걸리면 지연됨 각 문자에 대한 3개의 TCP세그먼트가 전송 서버에 보내는 문자 서버가 수신된 문자 확인 응답, 에코문자를 하나의 세그먼트로 전송 클라이언트 – 에코된 문자의 수신을 확인 응답
19.11 운영모드 라인모드 기본모드,문자모드의 단점 해결을 위한 모드 클라이언트에 의해 라인 편집 가능 에코, 문자 지움, 라인 지움 클라이언트는 전체 라인을 서버로 전송 완전 이중 모드로 운영되어 GA문자 간섭 없이 전송 가능
19.12 EXAMPLES
In this example, we use the default mode 19.12 예제 Example 1 In this example, we use the default mode to show the concept and its deficiencies even though it is almost obsolete today. The client and the server negotiate the terminal type and terminal speed and then the server checks the login and password of the user. See Figure 19.16.
19.12 예제 예제 1
19.12 예제 Example 2 In this example, we show how the client switches to the character mode. This requires that the client request the server to enable the SUPPRESS GO AHEAD and ECHO options. See Figure 19.17.
19.12 예제 예제 2
19.13 USER INTERFACE
19.13 사용자 인터페이스 운영체제가 사용자 편의적 명령을 가진 인터페이스를 정의 Command Meaning Open Connect to a remote computer Close Close the connection Display Show the operating parameters Mode Change to line mode or character mode Set Set the operating parameters Status Display the status information Send Send special characters quit Exit TELNET
19.14 RLOGIN (REMOTE LOGIN)
19.14 원격 로그인 보편적인 원격 로그인 클라이언트/서버 응용 원격 장치에 대한 접근을 제공하도록 BSD UNIX에 서 설계 UNIX상에 간단한 원격 로그인 제공을 위해 만들어짐 옵션의 협상은 제공되지 않음
19.14 원격 로그인 TCP포트 하나의 TCP연결 사용 – 데이터 명령어 모두 사용 서버 – 포트 513번 사용, 클라이언트 – 임시포트 사용 처음 스트링 – 실제로 비어있는 널 문자 두번째 스트링 – 클라이언트 호스트상 사용자 로그인 네임 널 문자(/0)로 끝남 세번째 스트링 – 서버 호스트의 사용자 로그인 네임 널 문자로 끝남 네번째 스트링 – 사용자 터미널의 이름과 slash(/), 터미널 속도 로 이루어짐 서버는 하나의 널 문자로 응답
The Rlogin process uses the TCP port 513. 19.14 원격 로그인 The Rlogin process uses the TCP port 513.
19.14 원격 로그인 연결 수립
19.14 원격 로그인 흐름제어 로컬 흐름제어 서버에 의해 클라이언트로 보내지는 결과는 클라이언트 화면에 나타남 두가지 특수한 문자(stop, start)는 화면상의 결과 표시 제어 Start,stop키(Ctrl+s, Ctrl_q)는 클라이언트,서버에서 처리 로컬 흐름제어 Start, stop키는 클라이언트에서 처리 클라이언트는 두 문자를 전송하지 않음 사용자가 stop키를 누르면 서버로 부터 받은 결과를 화면상에 표시하는 것을 중지하고, 저장 Start 키를 누르면 저장된 데이터 표시
19.14 원격 로그인 흐름제어 원격 흐름제어 Start,stop은 서버에 의해 처리 클라이언트로 데이터 전송을 중지 Start를 수신 클라이언트로 데이터 발송 Stop키가 서버에 도착할 때이면 많은 문자를 클라이언트 스크린에 전송한 상태 일 수도 있음
19.14 원격 로그인 명령 Rlogin은 하나의 TCP연결 사용 데이터와 명령이 동일한 연결을 통해 전송 의미 명령과 데이터는 구분될 수 있어야 함 서버에서 클라이언트로 보내는 명령 4가지 명령 각 명령은 1바이트 서버에서 클라이언트로 보내어지는 데이터에 내장 서버가 명령을 전송할 때 긴급모드로 들어감 긴급 데이터의 마지막 바이트는 명령바이트 TCP세그먼트를 클라이언트가 수신하면 명령바이트 이전 데이터 저장후 명령을 먼저 처리후 저장된 데이터 처리
19.14 원격 로그인 명령(계속) 클라이언트에서 서버로 보내는 명령 데이터와 명령을 구분하기 위해 한 개의 명령만 정해 있음 명령은 FF16으로 시작 만약 두개의 FF16 으로 시작하는 데이터를 서버에 보내면 혼동함 발생확률 거의 없음 한 개의 명령만 정해 있음 SS(screen size:스크린 크기) – 화면 창 크기를 나타맨
19.14 원격 로그인 모드 문자모드로만 Rlogin동작 Escape문자 클라이언트에서 서버로 전송되는 데이터는 한번에 한 문자씩 각 문자는 사용자 터미널에 에코됨 Escape문자 사용자에 의해 입력되는 모든 문자는 데이터로 간주하고 서버에 전송 그러나 문자들이 서버 대상이 아닌 클라이언트에 의해 처리되려고 할때 사용 Escape문자 입력 ~(틸드)
19.14 원격 로그인 클라이언트에서 서버로 SS 명령 송신
19.14 원격 로그인 모드(계속) 인터럽트 Rlogin프로세서를 인터럽트 종료하기위해 Ctrl+C(인터럽트를) 서버에 보냄 인터럽트 문자가 서버에 도착했을떼 윈도우 크기내 데이터가 모두 클라이언트로 전송될 경우도 있음 더 좋은 해결책 클라이언트가 인터럽트 처리 사용자가 인터럽트를 입력하면 클라이언트가 저장장소 내의 모든것을 버리고 TCP연결 종료
19.15 SECURITY ISSUE
19.15 보안문제 브로드 캐스트 LAN에 연결되어있는 경우 Snoop 소프트 웨어 사용으로 도청 가능 로그인, 암호 알아낼 수 있음 TELNET의 경우 AUTHENTICATION옵션을 사용한 인증 가능 Kerveros v4, v5등 인증 알고리즘을 사용해 통신할 수 있음