Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

TELNET (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 23:11

TELNET

이름

TELNET

풀네임

Teletype Network

분류

네트워크 프로토콜

목적

원격 터미널 접속

기반

TCP

기본 포트

23

상태

구식 (보안 취약)

대체 프로토콜

SSH

기술 상세

표준

RFC 854

개발

1969년

작동 방식

클라이언트-서버 모델, 가상 터미널 개념 사용

특징

텍스트 기반, NVT (Network Virtual Terminal) 정의

보안 문제

데이터 암호화 없이 평문 전송

주요 옵션 협상

윈도우 크기, 터미널 타입, 에코 모드 등

사용 예시

원격 서버 관리, 레거시 시스템 접속

관련 명령어

telnet [호스트] [포트]

현대적 사용

네트워크 서비스 테스트 (포트 확인), 일부 내부망

1. 개요

TELNET은 TCP/IP 네트워크를 통해 원격 호스트에 가상 터미널 연결을 제공하는 네트워크 프로토콜이다. 사용자는 클라이언트 프로그램을 실행하여 네트워크 상의 다른 컴퓨터(서버)에 로그인하고, 마치 그 컴퓨터의 직접 연결된 터미널을 사용하는 것처럼 명령을 실행할 수 있다. 이 프로토콜은 인터넷의 초기부터 존재해 온 표준 프로토콜 중 하나로, RFC 854와 RFC 855에 공식적으로 정의되어 있다.

TELNET의 핵심 기능은 네트워크 가상 터미널(NVT) 개념을 기반으로 한다. NVT는 다양한 종류의 터미널과 운영 체제 간의 차이를 추상화하는 표준 장치를 정의한다. 클라이언트와 서버는 각자의 실제 터미널 특성을 이 가상 터미널 표준에 맞추어 변환함으로써, 서로 다른 시스템 간의 상호 운용성을 보장한다. 이를 통해 사용자는 다양한 하드웨어와 소프트웨어 환경에 원격으로 접속하여 작업할 수 있다.

주요 특징은 다음과 같다.

특징

설명

기본 포트

TCP 포트 23을 사용한다.

데이터 전송

모든 통신(명령, 비밀번호, 데이터)이 평문으로 전송된다.

프로토콜

클라이언트-서버 모델을 따르는 응용 계층 프로토콜이다.

주요 용도

역사적으로 원격 시스템 관리, BBS 접속, 데이터베이스 조회 등에 널리 사용되었다.

이 프로토콜은 설계 당시 네트워크 환경이 폐쇄적이고 신뢰할 수 있다고 가정하여 개발되었기 때문에, 본질적인 보안 메커니즘이 부재하다는 중대한 결함을 지니고 있다. 이로 인해 현대 인터넷 환경에서는 보안이 강화된 SSH 프로토콜이 그 대체제로 거의 완전히 자리 잡았다. 그러나 여전히 내부 네트워크나 보안이 중요하지 않은 특정 레거시 시스템 및 네트워크 장비의 진단 환경에서 제한적으로 활용되고 있다.

2. 역사와 배경

TELNET 프로토콜은 1969년에 개발되었다. 당시 ARPANET의 초기 네트워크 프로토콜 중 하나로서, 원격지의 컴퓨터를 마치 로컬 터미널처럼 사용할 수 있게 하는 것이 주목적이었다. 이는 당시 고가였던 컴퓨팅 자원을 여러 사용자가 공유하고, 지리적으로 분산된 연구자들이 원격으로 시스템에 접속하여 작업할 수 있는 환경을 제공하기 위함이었다.

초기 네트워킹에서 TELNET은 근본적인 역할을 수행했다. 네트워크를 통해 다른 호스트에 로그인하고 명령을 실행하는 표준 방법을 정의함으로써, 상이한 하드웨어와 운영체제를 가진 컴퓨터들 사이의 상호 운용성을 가능하게 했다. 이는 인터넷 프로토콜 스위트(TCP/IP)의 응용 계층 프로토콜로서, TCP 연결 기반의 신뢰성 있는 바이트 스트림을 제공하는 전송 계층 위에서 동작했다.

시기

주요 사건

1969년

TELNET 프로토콜 초기 명세가 정의됨[1]

1970년대

RFC 854와 RFC 855를 포함한 표준 명세가 공식화되며 널리 채택됨

1980년대

인터넷의 성장과 함께 원격 터미널 접속의 사실상 표준 프로토콜이 됨

이러한 발전은 분산 컴퓨팅과 원격 시스템 관리의 기초를 마련하는 데 기여했다. TELNET은 단순한 텍스트 기반 접속을 넘어, 터미널 유형과 기타 옵션을 협상하는 기능을 도입하여 다양한 터미널 에뮬레이션을 지원했다.

2.1. 개발 시기와 목적

TELNET 프로토콜의 개발은 1969년에 시작되었다. 이 프로토콜은 ARPANET의 초기 표준 네트워크 프로토콜 중 하나로, TCP/IP가 널리 채택되기 전인 NCP 시절에 구축되었다. 공식적으로는 1971년에 RFC 137 문서로 처음 명세가 제안되었고, 1973년 RFC 495를 통해 더욱 정교화되었다[2].

이 프로토콜의 주요 목적은 사용자가 지리적으로 떨어진 컴퓨터에 원격으로 접속하여, 마치 그 컴퓨터의 직접 연결된 터미널을 사용하는 것처럼 조작할 수 있게 하는 것이었다. 당시 대형 메인프레임 컴퓨터는 중앙 집중식으로 운영되었고, 사용자는 물리적으로 연결된 단말기를 통해 접속해야 했다. TELNET은 이러한 제약을 극복하고 네트워크를 통해 호스트 컴퓨터의 자원을 공유하며 시간과 공간의 효율성을 높이는 데 기여했다.

초기 개발 목표는 상호 운용성을 보장하는 것이었다. 서로 다른 제조사의 다양한 컴퓨터 시스템과 터미널이 혼재하는 네트워크 환경에서, TELNET은 네트워크 가상 터미널이라는 추상적인 장치 개념을 도입하여 호환성 문제를 해결하려 했다. 이는 네트워크 기술의 민주화와 개방성에 중요한 초석을 마련한 사건이었다.

2.2. 초기 네트워킹에서의 역할

TELNET은 ARPANET의 핵심 응용 프로토콜 중 하나로 개발되었다. 초기 네트워크의 주요 목적은 지리적으로 분산된 대학과 연구 기관의 컴퓨팅 자원을 공유하는 것이었으며, TELNET은 이를 실현하는 데 필수적인 도구였다. 사용자는 원격지의 메인프레임 컴퓨터에 로그인하여 마치 로컬 터미널을 사용하는 것처럼 프로그램을 실행하거나 데이터를 처리할 수 있었다. 이는 당시 귀중했던 컴퓨팅 파워와 특수 소프트웨어에 대한 광범위한 접근을 가능하게 했다.

이 프로토콜은 TCP/IP 프로토콜 스위트의 초기 구성 요소로서, 네트워크를 통한 상호작용의 표준 모델을 정립하는 데 기여했다. 특히 네트워크 가상 터미널(NVT) 개념을 도입하여 다양한 호스트 컴퓨터와 터미널 장치 사이의 호환성 문제를 해결했다. NVT는 서로 다른 데이터 표현 방식과 터미널 제어 코드를 중재하는 추상 장치 역할을 했다.

초기 네트워킹 커뮤니티에서 TELNET은 단순한 도구를 넘어 협력과 표준화의 상징이었다. 프로토콜의 명령 및 옵션 협상 메커니즘은 네트워크 참여자들이 새로운 기능을 동적으로 추가하고 테스트할 수 있는 플랫폼을 제공했다. 이는 이후 개발된 많은 인터넷 프로토콜의 설계 철학에 영향을 미쳤다.

시기

역할

중요성

1970년대 초 ~ 1980년대

ARPANET 상의 주요 원격 로그인 도구

분산 컴퓨팅 자원 공유 실현

TCP/IP 프로토콜 스위트의 초기 응용 계층 프로토콜

인터넷 프로토콜 생태계의 기반 마련

네트워크 가상 터미널(NVT) 개념 정립

이기종 시스템 간 호환성 문제 해결

3. 기술적 원리

TELNET은 클라이언트-서버 모델을 기반으로 동작한다. 사용자가 원격 호스트에 접속하기 위해서는 로컬 컴퓨터에서 TELNET 클라이언트 프로그램을 실행해야 한다. 이 클라이언트는 지정된 IP 주소와 포트 번호(기본값 23)를 사용하여 TELNET 서버 데몬이 실행 중인 원격 호스트에 TCP 연결을 설정한다. 연결이 수립되면, 클라이언트는 사용자의 키보드 입력을 서버로 전송하고, 서버는 응답을 사용자의 화면에 출력하는 방식으로 상호작용한다.

이 프로토콜의 핵심 개념은 네트워크 가상 터미널(Network Virtual Terminal, NVT)이다. NVT는 다양한 종류의 실제 터미널과 호스트 시스템 사이에서 표준적인 중간 인터페이스를 정의한다. 클라이언트와 서버는 각자의 로컬 터미널 특성을 NVT 형식으로 변환하여 전송하고, 수신 측에서는 이를 다시 자신의 로컬 형식으로 변환한다. 이를 통해 서로 다른 하드웨어와 운영체제를 가진 시스템 간에도 원격 터미널 접속이 가능해진다.

TELNET은 단순한 데이터 채널 이상의 기능을 제공하기 위해 명령 및 옵션 협상 메커니즘을 포함한다. 이는 제어 명령어를 통해 이루어진다. 모든 명령과 옵션 요청은 특별한 제어 신호인 Interpret as Command(IAC) 바이트(값 255)로 시작하는 특수한 바이트 시퀀스로 구성된다. 주요 협상 옵션에는 에코 모드 설정, 전송 속도 조정, 터미널 유형 통지 등이 있다.

협상 유형

설명

예시 명령

WILL/WONT

송신 측이 옵션 사용을 제안하거나 거부함

IAC WILL ECHO

DO/DONT

수신 측에게 옵션 사용을 요청하거나 중단을 요청함

IAC DO TERMINAL-TYPE

SB(Subnegotiation)

옵션에 대한 추가 매개변수를 협상함

IAC SB TERMINAL-TYPE SEND IAC SE

이러한 협상을 통해 클라이언트와 서버는 연결 세션의 동작 방식을 동적으로 결정한다. 데이터 전송은 기본적으로 평문으로 이루어지며, 제어 명령과 일반 데이터는 같은 연결을 통해 전송된다.

3.1. 클라이언트-서버 모델

TELNET은 전형적인 클라이언트-서버 모델을 따르는 애플리케이션 계층 프로토콜이다. 이 모델에서 클라이언트는 서비스를 요청하는 프로그램이고, 서버는 그 요청에 응답하여 서비스를 제공하는 프로그램이다. 사용자는 TELNET 클라이언트 소프트웨어를 실행하여 원격지의 TELNET 서버에 연결한다.

연결이 수립되면, 클라이언트는 사용자의 키보드 입력을 서버로 전송하고, 서버는 원격 시스템의 응답을 클라이언트의 화면에 출력한다. 이 과정은 사용자가 원격 컴퓨터의 가상 터미널 앞에 직접 앉아 있는 것과 같은 환경을 제공한다. 서버는 일반적으로 TCP 포트 23번에서 연결 요청을 수신 대기(listen)한다.

클라이언트-서버 간의 통신은 네트워크 가상 터미널 규약을 통해 이루어진다. 이는 서로 다른 터미널 타입과 운영체제 간의 차이를 흡수하여 상호 운용성을 보장한다. 클라이언트와 서버는 모두 자신의 로컬 장치를 NVT 형식으로 변환하여 송신하고, 수신한 NVT 형식 데이터를 다시 자신의 로컬 형식으로 변환하여 해석한다.

역할

설명

TELNET 클라이언트

사용자 인터페이스를 제공하며, 사용자 입력을 캡처하여 서버로 전송하고 서버로부터 받은 출력을 표시한다.

TELNET 서버

원격 호스트(서버)에서 실행되며, 클라이언트의 연결을 수락하고, 전송된 명령을 원격 시스템의 운영체제에 전달하며, 결과를 클라이언트로 되돌려보낸다.

3.2. 네트워크 가상 터미널(NVT)

네트워크 가상 터미널(Network Virtual Terminal, NVT)은 TELNET 프로토콜의 핵심 추상 개념이다. 서로 다른 하드웨어와 운영체제를 가진 컴퓨터들이 원격 터미널 접속을 가능하게 하기 위해 설계된 표준적인 가상 장치 인터페이스이다. NVT는 클라이언트와 서버 양측이 자신의 실제 터미널 특성을 이 가상 터미널의 규격에 맞추어 변환함으로써 상호 운용성을 보장한다.

NVT는 기본적으로 가상의 프린터(출력 장치)와 키보드(입력 장치)로 구성된다. 이 가상 장치는 가장 기본적인 공통 기능만을 정의한다. 예를 들어, NVT는 줄바꿈을 위해 CR(Carriage Return)과 LF(Line Feed)의 조합(CRLF)을 사용하며, 7비트 ASCII 코드를 표준 문자 집합으로 채택한다. 클라이언트 프로그램은 사용자의 실제 키보드 입력을 NVT 형식으로 변환하여 서버로 보내고, 서버에서 받은 NVT 형식의 데이터를 다시 사용자의 실제 터미널 화면에 맞게 출력한다.

NVT 개념

설명

NVT 프린터

서버가 데이터를 보내는 가상 출력 장치. 표준 7비트 ASCII 문자를 수신하며, CRLF는 새 줄 시작을 의미한다.

NVT 키보드

클라이언트가 데이터를 보내는 가상 입력 장치. ASCII 코드와 제어 명령(TELNET 명령)을 생성한다.

기본 모드

NVT의 기본 동작 상태. 줄 단위(Line-at-a-time) 또는 문자 단위(Character-at-a-time)로 데이터를 처리한다.

이러한 추상화는 네트워크 환경에서의 이질성을 해결하는 데 결정적 역할을 했다. 서버는 연결된 클라이언트의 실제 터미널 타입(예: VT100, ANSI)을 알 필요 없이 오직 NVT 규격에 맞는 데이터 스트림만을 처리하면 된다. 반대로 클라이언트도 서버의 시스템 종류와 무관하게 NVT 스트림을 해석하여 자신의 화면에 표시할 수 있다. 이 설계는 초기 인터넷과 ARPANET에서 다양한 호스트 간 원격 접속이 실용화되는 기반이 되었다.

3.3. 명령 및 옵션 협상

TELNET 프로토콜은 단순한 데이터 채널 이상으로, 클라이언트와 서버가 사용할 기능과 옵션을 동적으로 협상할 수 있는 메커니즘을 포함한다. 이 협상 과정은 네트워크 가상 터미널의 기본 동작 방식을 확장하거나 수정하기 위해 사용된다.

협상은 특수한 제어 명령어 시퀀스인 TELNET 옵션 협상을 통해 이루어진다. 주요 명령어로는 WILL, WONT, DO, DONT가 있다. 예를 들어, 클라이언트가 특정 옵션의 사용을 제안하려면 'DO' 명령을 보내고, 서버는 그 제안을 수락하면 'WILL'로, 거부하면 'WONT'로 응답한다. 반대로 서버가 옵션 사용을 시작하려고 제안할 수도 있다. 이 협상은 연결 수립 초기뿐만 아니라 세션 중 언제든지 발생할 수 있다.

협상 가능한 옵션에는 에코 모드, 전송 이진 모드, 줄 번호 지정, 터미널 유형 및 창 크기 협상 등이 있다. 각 옵션은 표준화된 숫자 코드로 식별된다. 옵션 협상의 존재는 TELNET을 매우 유연하게 만들었지만, 구현의 복잡성을 증가시키는 요인이기도 했다. 모든 옵션이 양측에서 지원되는 것은 아니므로, 한쪽이 이해하지 못하는 옵션에 대한 제안이 오면 'DONT' 또는 'WONT'로 거부하여 기본 NVT 모드로 되돌아가는 것이 일반적이다.

4. 프로토콜 세부사항

TELNET은 TCP/IP 프로토콜 스위트의 응용 계층 프로토콜로, 기본적으로 TCP 포트 번호 23번을 사용합니다. 클라이언트가 서버의 23번 포트로 연결을 시도하면, 서버의 TELNET 데몬이 연결을 수락하고 가상 터미널 세션을 시작합니다. 이 연결은 전이중 통신 방식을 지원하여 데이터를 동시에 주고받을 수 있습니다.

데이터 전송은 8비트 바이트 단위로 이루어지며, 기본적으로 ASCII 문자 집합을 기반으로 합니다. 전송되는 모든 데이터와 제어 명령은 평문으로 네트워크를 통해 흐르기 때문에, 패킷을 가로채면 내용을 쉽게 확인할 수 있습니다[3]]가 등장하는 주요 원인이 되었습니다.]. 데이터 스트림 내에는 특별한 의미를 가진 제어 명령어가 삽입되어 터미널 제어를 가능하게 합니다.

TELNET의 핵심은 제어 명령어입니다. 이 명령어들은 IAC(Interpret As Command, 값 255) 코드로 시작하는 특수 바이트 시퀀스로 구성됩니다. 주요 제어 명령어는 다음과 같습니다.

명령

코드(십진수)

설명

IAC

255

다음 바이트가 명령임을 알림

SE

240

하위 협상 매개변수 종료

NOP

241

아무 작업도 하지 않음

DM

242

데이터 마크

BRK

243

브레이크 신호

IP

244

프로세스 중단

AO

245

출력 중단

AYT

246

"Are You There" 테스트

EC

247

마지막 문자 삭제

EL

248

현재 줄 삭제

GA

249

"Go Ahead" 신호

SB

250

하위 협상 시작

WILL

251

옵션 사용 제안/수락

WONT

252

옵션 사용 거부

DO

253

상대방에게 옵션 사용 요청

DONT

254

상대방에게 옵션 사용 중단 요청

예를 들어, 클라이언트가 서버 측 에코를 요청하려면 IAC DO ECHO(255, 253, 1) 시퀀스를 전송합니다. 서버가 이를 수락하면 IAC WILL ECHO(255, 251, 1)로 응답합니다. 이러한 옵션 협상을 통해 터미널 유형, 전송 속도, 흐름 제어 등 다양한 세션 매개변수를 동적으로 조정할 수 있습니다.

4.1. 포트 번호(기본 23)

TELNET 프로토콜은 클라이언트가 서버에 접속하기 위해 TCP/IP 기반의 연결을 사용한다. 이 연결에 사용되는 포트 번호는 서비스의 표준화를 위해 IANA에 의해 할당된다. TELNET 서비스의 공식적인 잘 알려진 포트는 23번이다[4]. 따라서 클라이언트는 일반적으로 서버의 IP 주소와 포트 번호 23을 지정하여 TELNET 세션을 시작한다.

포트 번호 23은 TELNET 서버 데몬(예: telnetd)이 수신 대기하는 표준 포트이다. 그러나 이는 기본값일 뿐, 실제 운영에서는 보안이나 특수 구성에 따라 다른 포트에서 서비스를 제공하기도 한다. 예를 들어, 관리자가 기본 포트를 변경하여 단순한 포트 스캔 공격을 피하는 경우가 있다.

TELNET 클라이언트 소프트웨어를 사용할 때 사용자는 명시적으로 포트 번호를 지정할 수 있다. 대부분의 명령줄 클라이언트에서는 telnet 호스트명 포트번호 형식으로 실행한다. 포트 번호를 생략하면 자동으로 23번 포트로 연결을 시도한다. 이는 TELNET 프로토콜 자체가 특정 포트에 종속된 것은 아니며, 단지 23번 포트가 해당 서비스를 위한 관례적으로 널리 채택된 표준임을 보여준다.

프로토콜/서비스

기본 포트 번호

전송 계층 프로토콜

TELNET

23

TCP

SSH

22

TCP

HTTP

80

TCP

HTTPS

443

TCP

4.2. 데이터 전송 방식

TELNET은 TCP/IP 기반의 연결 지향적 프로토콜로, 기본적으로 TCP 포트 23번을 사용하여 통신을 수행한다. 데이터 전송은 바이트 단위의 스트림 방식으로 이루어지며, 모든 통신은 평문으로 전송된다는 특징을 가진다. 이는 사용자의 키보드 입력과 서버의 출력이 암호화되지 않은 채 네트워크를 통해 그대로 오가게 됨을 의미한다.

전송되는 데이터는 크게 두 가지 유형으로 구분된다. 하나는 사용자가 입력한 일반 텍스트 데이터이고, 다른 하나는 연결 제어를 위한 TELNET 제어 명령이다. 제어 명령은 Interpret as Command 시퀀스로 시작하는 특수 바이트 시퀀스로 구성되어, 화면 지우기, 커서 이동 등의 터미널 제어 기능이나 옵션 협상을 수행한다. 일반 데이터와 제어 명령을 구분하기 위해, 모든 제어 명령 앞에는 IAC(값 255) 바이트가 붙는다.

데이터 유형

설명

전송 방식

일반 데이터

사용자가 입력한 텍스트 또는 서버의 출력

평문 바이트 스트림

제어 명령

옵션 협상, 터미널 제어 등

IAC(255) 바이트로 시작하는 시퀀스

전송 과정에서 네트워크 가상 터미널은 중요한 중간 역할을 수행한다. 클라이언트와 서버는 각자 다른 터미널 타입을 사용할 수 있지만, NVT라는 표준적인 중간 형식으로 변환하여 데이터를 교환한다. 이를 통해 서로 다른 시스템 간의 호환성을 확보한다. 그러나 이 변환 과정과 평문 전송은 오버헤드를 발생시키고, 특히 보안상의 심각한 취약점으로 작용하게 되었다[5].

4.3. 제어 명령어

TELNET 프로토콜은 데이터 스트림 내에 특수한 제어 명령어를 삽입하여 세션을 관리한다. 이 명령어들은 IETF에서 정의한 TELNET 프로토콜 사양에 명시되어 있으며, 모두 ASCII 코드 값 255인 IAC(Interpret As Command) 문자로 시작한다. IAC 다음에 오는 바이트가 실제 명령 코드를 결정한다.

주요 제어 명령어는 연결 제어, 옵션 협상, 흐름 제어에 사용된다. 기본적인 명령어 세트는 다음과 같다.

명령

코드(10진수)

설명

IAC

255

다음 바이트가 명령임을 해석하도록 지시한다.

DONT

254

상대방에게 특정 옵션을 비활성화하도록 요청한다.

DO

253

상대방에게 특정 옵션을 활성화하도록 요청한다.

WONT

252

특정 옵션을 수행하지 않을 것임을 선언한다.

WILL

251

특정 옵션을 수행할 것임을 선언한다.

SB

250

옵션 협상을 위한 하위 협상(Subnegotiation) 시작을 나타낸다.

SE

240

하위 협상의 종료를 나타낸다.

IP

244

인터럽트 프로세스(Interrupt Process) 명령이다.

AO

245

출력 중단(Abort Output) 명령이다.

AYT

246

상대방이 살아있는지 확인하는 Are You There 명령이다.

EC

247

마지막 문자를 지우는 Erase Character 명령이다.

EL

248

현재 줄을 지우는 Erase Line 명령이다.

GA

249

데이터 전송을 계속하도록 지시하는 Go Ahead 신호이다.

NOP

241

아무 작업도 하지 않는 No Operation 명령이다.

이 명령어들은 주로 DO, DONT, WILL, WONT의 조합으로 이루어진 옵션 협상에 사용된다. 예를 들어, 클라이언트가 에코(Echo) 옵션을 요청하려면 IAC, DO, ECHO 코드 순서의 세 바이트를 전송한다. 서버는 이를 수락(IAC, WILL, ECHO)하거나 거절(IAC, WONT, ECHO)할 수 있다. IP나 AYT 같은 명령은 사용자가 터미널에서 특정 제어 키를 누를 때 클라이언트가 생성하여 원격 애플리케이션에 신호를 보내는 데 사용된다.

5. 보안 문제점

TELNET 프로토콜은 설계 당시 인터넷이 폐쇄적이고 신뢰할 수 있는 환경이라는 가정 하에 개발되었다. 이로 인해 가장 근본적인 보안 문제는 모든 통신이 평문으로 전송된다는 점이다. 사용자 이름, 비밀번호를 포함한 모든 키 입력과 서버의 응답은 네트워크를 통해 암호화되지 않은 상태로 오간다. 이는 패킷을 감청할 수 있는 공격자에게 세션 정보를 노출시키며, 이를 통해 중간자 공격이나 세션 하이재킹이 가능해진다.

인증 메커니즘이 취약하거나 존재하지 않는 경우도 많다. 많은 레거시 TELNET 서버는 단순한 ID/비밀번호 검증만을 수행하며, 이 정보 자체가 평문으로 전송되므로 의미가 퇴색된다. 강력한 다중 인증이나 공개키 기반 인증과 같은 현대적인 보안 체계를 지원하지 않는다. 또한, 프로토콜 자체에 데이터 무결성 또는 기밀성을 보장하는 암호화 계층이 전혀 없어, 전송 중 데이터 변조를 탐지할 방법이 없다.

이러한 보안 결함은 로컬 영역 네트워크 내부에서조차 위험을 초래한다. 특히 공용 또는 신뢰할 수 없는 네트워크를 경유하는 접속은 극도로 위험하다. 공격자는 비교적 간단한 패킷 스니퍼링 도구를 이용해 TELNET 세션을 쉽게 탈취할 수 있으며, 이를 통해 시스템에 대한 완전한 제어권을 얻을 수 있다. 이는 SSH와 같은 대체 프로토콜이 등장한 주요 동기가 되었다.

5.1. 평문 전송의 취약성

TELNET의 가장 근본적인 보안 취약점은 모든 데이터를 평문으로 전송한다는 점이다. 이는 사용자가 입력하는 모든 명령어와 서버가 응답하는 모든 출력 데이터, 그리고 가장 중요한 인증 정보(사용자 ID와 비밀번호)가 네트워크를 통해 암호화되지 않은 상태로 전송됨을 의미한다.

이러한 통신은 패킷 스니핑 도구를 사용하는 공격자에게 매우 취약하다. 공격자가 TELNET 세션이 통과하는 네트워크 구간에 접근할 수 있다면, 쉽게 전송되는 데이터를 가로채어 볼 수 있다. 결과적으로 로그인 자격증명이 노출되어 시스템에 대한 무단 접근이 발생하거나, 전송 중인 기밀 정보가 유출될 수 있다. 이 취약점은 특히 공용 네트워크나 신뢰할 수 없는 네트워크를 통해 TELNET을 사용할 때 심각한 위협이 된다.

취약점 요소

설명

결과적 위험

인증 정보 노출

로그인 아이디와 비밀번호가 암호화 없이 전송됨

시스템에 대한 완전한 무단 접근 및 권한 탈취

세션 데이터 도청

입력 명령어와 출력 결과가 도청 가능함

기밀 정보 유출, 관리자 행동 감시

데이터 변조

전송 중인 데이터의 무결성을 보장할 수 없음[6]

명령어나 응답 데이터가 중간에서 변조될 위험

이러한 평문 전송의 취약성은 TELNET을 현대의 인터넷 환경에서 사용하기에 부적합하게 만들었다. 이 문제를 해결하기 위해 개발된 SSH는 강력한 암호화를 통해 통신 채널 전체를 보호하여, 도청과 데이터 변조를 근본적으로 차단한다.

5.2. 인증 및 암호화 부재

TELNET 프로토콜은 설계 당시 네트워크 보안이 주요 고려사항이 아니었기 때문에, 사용자 인증과 데이터 암호화에 관한 메커니즘이 전혀 포함되어 있지 않았다. 이로 인해 네트워크를 통한 모든 통신이 평문으로 전송되어 중간에서 쉽게 가로챌 수 있는 심각한 취약점을 안고 있다.

사용자 인증 과정에서 아이디와 비밀번호를 포함한 모든 정보가 암호화되지 않은 채 전송된다. 이는 동일한 네트워크 세그먼트에 접근할 수 있는 공격자가 패킷 스니핑 도구를 이용해 로그인 자격증명을 쉽게 획득할 수 있음을 의미한다. 획득한 자격증명으로 공격자는 동일한 시스템에 무단으로 접근하거나, 사용자가 다른 서비스에서 재사용한 동일한 비밀번호를 악용할 수 있다.

데이터 암호화의 부재는 단순히 로그인 정보뿐만 아니라 세션 동안 주고받는 모든 데이터에 영향을 미친다. 원격으로 실행되는 명령어, 그 결과 출력, 편집 중인 파일의 내용 등 모든 것이 노출된다. 이는 기밀 정보가 유출될 뿐만 아니라, 세션 하이재킹 공격에도 취약하게 만든다. 공격자는 횡득한 세션 정보를 바탕으로 사용자의 명령을 가로채거나 변조할 수 있다.

이러한 근본적인 보안 결함을 해결하기 위한 몇 가지 확장 시도가 있었으나, 표준화되지 않았고 널리 채택되지 못했다. 결과적으로, 공개 네트워크나 신뢰할 수 없는 네트워크에서 TELNET 사용은 보안상 매우 위험한 행위로 간주된다.

6. 대체 기술

TELNET의 주요 보안 결함, 특히 모든 데이터를 평문으로 전송한다는 점은 암호화된 대체 프로토콜의 개발을 촉진했다. 이 중 가장 널리 채택된 것은 SSH(Secure Shell)이다. SSH는 1995년 타투 울레뇌가 TELNET의 보안 문제를 해결하기 위해 개발했으며, 강력한 암호화, 공개키 기반의 호스트 및 사용자 인증, 데이터 무결성 검증을 제공한다. SSH는 기본적으로 TELNET과 유사한 원격 터미널 접속 기능을 수행하지만, 모든 통신 세션을 암호화하여 도청과 세션 하이재킹을 방지한다. 이로 인해 SSH는 현대의 인터넷 환경에서 원격 시스템 관리를 위한 사실상의 표준 프로토콜이 되었다.

SSH 외에도 특정 환경이나 요구사항에 맞는 다른 암호화 원격 접속 도구들이 존재한다. 예를 들어, 마이크로소프트 윈도우 환경에서는 RDP(원격 데스크톱 프로토콜)가 그래픽 사용자 인터페이스(GUI) 기반의 원격 제어에 널리 사용된다. RDP는 화면 이미지, 입력 장치 정보, 오디오 등을 암호화된 채널을 통해 전송한다. 또한, VPN(가상 사설망)을 구축한 후 내부 네트워크의 TELNET 서비스에 접속하는 방법도 간접적인 대체 수단으로 활용된다. VPN은 사용자와 사내 네트워크 사이에 암호화된 터널을 생성하여, 그 안에서 이루어지는 TELNET 트래픽을 외부로부터 보호한다.

대체 기술

주요 특징

일반적인 사용 포트

SSH(Secure Shell)

강력한 암호화, 공개키 인증, 터미널 접속 및 파일 전송(SCP/SFTP) 지원

22

RDP(원격 데스크톱 프로토콜)

그래픽 사용자 인터페이스(GUI) 원격 제어, 윈도우 시스템에 최적화

3389

VPN + TELNET

VPN 터널 내에서 TELNET 사용, 레거시 시스템 접근 시 네트워크 구간 암호화

다양함 (VPN 구성에 따름)

이러한 대체 기술들의 등장으로, 공용 네트워크를 통한 평문 TELNET 사용은 보안 정책상 거의 금지되었다. 그러나 SSH나 RDP와 같은 프로토콜이 설치되지 않은 매우 오래된 레거시 시스템이나 특정 임베디드 시스템 장비를 관리할 때는 여전히 제한된 네트워크 환경 내에서 TELNET이 사용되기도 한다.

6.1. SSH(Secure Shell)

SSH는 TELNET의 보안 취약점을 해결하기 위해 개발된 암호화된 네트워크 프로토콜이다. 1995년 핀란드의 타투 울레넨에 의해 설계되었으며, 원격 시스템에 안전하게 접속하여 명령을 실행하거나 파일을 전송하는 데 사용된다. SSH의 핵심 목표는 평문으로 통신하는 TELNET 및 rsh, rcp 같은 기존 도구들을 대체하여, 도청, 세션 하이재킹, 패킷 조작 등의 공격으로부터 통신을 보호하는 것이다.

SSH는 기본적으로 공개키 암호화 방식을 사용하여 클라이언트와 서버를 인증하고, 이후의 모든 통신 세션을 암호화한다. 주요 구성 요소로는 원격 쉘 접속을 제공하는 SSH 클라이언트와 SSH 데몬, 그리고 안전한 파일 전송을 위한 SCP와 SFTP가 있다. SSH는 일반적으로 TCP 포트 22번을 사용한다.

특성

TELNET

SSH

보안

평문 전송, 보안 취약

종단 간 암호화, 강력한 보안

인증

기본적인 패스워드 인증(평문)

공개키/패스워드 인증(암호화)

데이터 무결성

보장되지 않음

메시지 인증 코드(MAC)로 보장

주요 용도

레거시 시스템, 내부 네트워크 테스트

현대적인 보안 원격 접속 및 관리

SSH는 버전 1과 2로 구분되며, SSH-2는 보안과 기능 면에서 상당히 개선되어 현재 사실상의 표준으로 자리 잡았다. SSH-2는 더 강력한 키 교환 프로토콜, 호스트 기반 및 사용자 인증의 분리, 그리고 알고리즘 협상 기능을 제공한다. 이로 인해 SSH는 시스템 관리자, 개발자, 네트워크 엔지니어에게 없어서는 안 될 필수 도구가 되었다.

6.2. 기타 암호화 원격 접속 도구

SSH가 가장 널리 사용되는 TELNET의 대체재이지만, 특정 환경이나 요구사항에 따라 다른 암호화 원격 접속 도구들도 활용된다. RDP는 마이크로소프트 윈도우 환경에서 그래픽 사용자 인터페이스 원격 접속을 위한 사실상의 표준 프로토콜이다. 초기에는 암호화가 약했으나, 후속 버전에서는 강력한 보안 기능을 통합하여 원격 데스크톱 세션을 안전하게 전송한다.

다양한 운영체제 간의 원격 접속에는 VNC가 자주 사용된다. VNC는 플랫폼 독립적인 원격 프레임버퍼 프로토콜로, 서버의 화면을 클라이언트에 전송한다. 기본 VNC는 암호화를 제공하지 않으나, SSH 터널을 통해 전송하거나 TLS 암호화를 지원하는 VNC 변종(예: TightVNC, TigerVNC)을 사용하여 보안을 강화할 수 있다. 또한, HTTPS를 통해 웹 브라우저만으로 접속할 수 있는 웹 기반 콘솔 솔루션들도 등장했다.

다음은 주요 대체 암호화 원격 접속 도구들의 특징을 비교한 표이다.

프로토콜/도구

주요 사용 목적

기본 암호화

주요 특징

SSH

명령줄 접속, 파일 전송(SFTP, SCP), 터널링

있음

강력한 인증 및 암호화, 포트 포워딩 지원

RDP

윈도우 그래픽 원격 데스크톱

있음(버전에 따라 다름)

원활한 GUI 경험, 로컬 자원 리디렉션

VNC

크로스 플랫폼 그래픽 원격 데스크톱

없음(별도 구성 필요)

플랫폼 독립적, 클라이언트 구현체 다양

Mosh[7]

모바일/불안정한 네트워크 환경의 SSH 대체

있음

로밍 지원, 네트워크 끊김 복원력 우수

이러한 도구들은 TELNET이 가진 평문 전송의 근본적 취약점을 해결하면서, 사용자에게 명령줄뿐만 아니라 그래픽 환경까지 안전한 원격 접속 경험을 제공한다.

7. 현대적 활용

TELNET은 보안 취약성으로 인해 일반적인 원격 접속 용도로는 거의 사용되지 않는다. 그러나 특정 분야에서는 여전히 제한적으로 활용된다.

가장 대표적인 활용처는 레거시 시스템 관리이다. 오래된 산업 제어 시스템, 의료 장비, 금융 거래 메인프레임 등은 SSH를 지원하지 않는 경우가 많다. 이러한 시스템을 유지보수하거나 데이터를 추출해야 할 때, TELNET은 호환성을 보장하는 유일한 원격 접속 수단이 될 수 있다. 이는 보안이 철저히 통제된 폐쇄망 환경에서 이루어진다.

또한 네트워크 장비의 초기 설정이나 디버깅 목적으로도 사용된다. 많은 라우터와 스위치는 아웃오브밴드 관리 콘솔 포트를 통해 TELNET 서비스를 기본적으로 제공한다[8]. 네트워크 엔지니어는 장비에 IP 주소가 아직 할당되지 않았거나 운영체제가 완전히 부팅되지 않은 상태에서 로컬 콘솔을 통해 TELNET 서버를 활성화하고 기본적인 문제를 진단한다.

활용 분야

설명

주의사항

레거시 시스템 관리

SSH를 지원하지 않는 오래된 하드웨어나 소프트웨어와의 호환성 유지

반드시 외부 인터넷과 차단된 폐쇄망에서 사용해야 함

네트워크 장비 디버깅

라우터, 스위치 등의 초기 설정 및 복구 모드 접근

기본 설정 상태에서는 인증 정보가 평문으로 전송됨

교육 및 프로토콜 학습

네트워크 프로토콜의 동작 원리를 이해하기 위한 실습 도구

실제 운영 환경에서의 사용은 권장되지 않음

현대에는 이러한 활용도 점차 줄어드는 추세이다. 신규 장비들은 SSH를 기본 지원하며, 레거시 시스템도 점차 교체되거나 VPN과 결합된 보안 터널 안에서만 TELNET 접속을 허용하는 구조로 전환되고 있다. 따라서 TELNET은 역사적 중요성을 인정받는 프로토콜이지만, 현재는 매우 특수한 상황에서만 고려되는 도구이다.

7.1. 레거시 시스템 관리

TELNET은 현대적인 보안 기준에서는 심각한 취약점을 지니지만, 여전히 특정 분야에서 운영 및 유지보수 목적으로 사용된다. 가장 대표적인 활용처는 레거시 시스템 관리이다. 이는 새로운 프로토콜을 지원하지 않는 오래된 메인프레임, 산업 제어 시스템(ICS), 의료 장비, 또는 특수 목적의 임베디드 장비에 대한 원격 접속이 필요할 때 발생한다. 이러한 시스템들은 SSH와 같은 암호화된 프로토콜을 구현할 수 있는 하드웨어 성능이나 소프트웨어 지원이 부족한 경우가 많다. 따라서 시스템을 교체하거나 업그레이드하기 전까지는 보안상의 위험을 인지하면서도 TELNET을 통한 접근이 유일한 방법으로 남아 있다.

이러한 환경에서 TELNET 사용은 철저히 통제된 조건 하에서 이루어진다. 일반적으로 사설 네트워크나 방화벽으로 외부 접근이 완전히 차단된 네트워크 세그먼트 내부에서만 사용된다. 네트워크를 물리적으로 격리하거나, 가상 사설망(VPN)을 통해 안전한 터널을 구축한 후 내부에서 TELNET을 사용하는 방식이 일반적이다. 이는 평문으로 전송되는 자격 증명과 데이터가 외부에 노출되는 것을 방지하기 위한 최소한의 조치이다.

관리자들은 레거시 시스템에 TELNET을 사용할 때 다음과 같은 보완책을 마련한다.

* 네트워크 분리: 레거시 시스템을 공용 네트워크와 완전히 격리한다.

* 접근 제어: 접근 가능한 IP 주소를 엄격하게 제한하고, 강력한 인증 정책을 적용한다.

* 모니터링: 모든 TELNET 세션 로그를 집중적으로 수집하고 이상 징후를 감시한다.

* 점진적 대체: 장기적으로 해당 시스템을 SSH를 지원하는 플랫폼으로 교체하는 계획을 수립한다.

결국, TELNET의 현대적 활용은 기술적 제약으로 인한 임시 방편에 가깝다. 보안을 최우선으로 하는 현대 네트워크 환경에서는 그 사용이 점차 사라지고 있지만, 특정 산업이나 조직 내에서 오래된 기술 자산을 유지해야 하는 현실적인 필요에 의해 아주 제한적으로 명맥을 유지하고 있다.

7.2. 네트워크 장비 디버깅

TELNET은 네트워크 장비의 구성, 모니터링, 문제 해결을 위한 기본적인 진단 도구로 여전히 활용된다. 특히 라우터, 스위치, 방화벽과 같은 장비의 콘솔 포트에 직접 접근하지 않고도 원격으로 명령줄 인터페이스(CLI)에 접속할 수 있게 해준다. 이는 물리적 접근이 어려운 데이터센터나 원격지에 위치한 장비를 관리할 때 유용하다.

많은 네트워크 장비는 기본 관리 인터페이스로 TELNET 서비스를 지원하며, 초기 설정이나 간단한 상태 확인에 자주 사용된다. 예를 들어, 장비의 IP 주소 설정, 라우팅 테이블 확인, 인터페이스 상태 점검, 기본적인 핑(ping) 또는 트레이스루트(traceroute) 테스트 등을 수행할 수 있다. 네트워크 엔지니어는 문제가 발생한 장비에 TELNET으로 접속해 실시간 로그를 확인하거나 구성 명령어를 입력하여 문제를 진단한다.

활용 사례

설명

초기 구성

DHCP를 통해 IP를 할당받은 장비에 최초 접속하여 고정 IP 설정을 변경할 때 사용한다.

상태 모니터링

show interface, show version, show running-config 등의 명령어로 장비의 현재 상태와 구성을 확인한다.

기본 연결 테스트

장비 자체에서 다른 호스트로의 네트워크 연결성을 테스트하는 명령어를 실행할 수 있다.

로그 확인

실시간 시스템 로그 메시지를 확인하여 장비 오류 또는 경고 메시지를 분석한다.

그러나 보안상의 심각한 취약점으로 인해, 현대 네트워크 관리에서는 SSH(Secure Shell)가 TELNET을 거의 대체했다. SSH는 모든 통신을 암호화하여 스니핑 공격을 방지한다. 따라서 외부 네트워크나 보안이 중요한 환경에서는 TELNET 사용이 엄격히 제한되거나 비활성화된다. TELNET의 디버깅 활용은 주로 폐쇄된 실험실 환경, 일부 레거시 장비, 또는 내부 신뢰 구간에서의 임시 진단으로 한정되는 경우가 많다.

8. 관련 문서

  • Wikipedia - 텔넷

  • 나무위키 - 텔넷

  • IETF - RFC 854: TELNET Protocol Specification

  • Microsoft Learn - Telnet: 자주 묻는 질문

  • KISA - 텔넷 서비스 보안 가이드

  • IBM Documentation - Telnet 개요

  • Oracle Help Center - Solaris 시스템에서의 Telnet 사용

리비전 정보

버전r1
수정일2026.02.14 23:11
편집자unisquads
편집 요약AI 자동 생성