평문 전송은 구체적으로 어떤 위험인가
텔넷 세션에서는 비밀번호를 포함한 입력과 출력이 암호화되지 않은 채 경로의 모든 장비를 지납니다. 같은 구간을 지나는 누구든 내용을 읽을 수 있다는 점이 핵심 위험이고, 서버 신원을 확인하는 절차도 없어 가짜 서버와 구별하기 어렵습니다. SANS Institute는 일반적인 상황에서 원격 로그인에 텔넷을 쓰지 말 것을 권고한다고 정리됩니다(위키백과 기준). 또 텔넷이 켜져 있는 사물인터넷 기기나 공유기, 모뎀은 설정이 잘못되면 악성코드의 표적이 되는 일이 흔하다고 알려져 있습니다. 이 글은 공격 절차를 다루지 않으며, 방어의 요점은 단순합니다. 필요 없는 텔넷 서비스는 끄고, 관리 접속은 SSH로 옮기고, 기기의 기본 계정은 반드시 바꾸고, 관리 포트를 인터넷에 불필요하게 열어 두지 않는 것입니다.
포트 테스트: 결과를 어떻게 읽을까 (가상 예시)
아래는 실제 서버 기록이 아닌 읽는 법을 위한 가상 예시입니다. 다른 포트에 telnet 클라이언트로 접속하면 텔넷 프로토콜이 아니라 순수 TCP 연결로 동작한다는 점(위키백과 기준)이 이 용법의 바탕입니다.
| 관찰된 결과 | 가능한 해석 | 다음에 볼 곳 |
|---|---|---|
| 연결되고 서버가 인사말을 보냄 | 포트가 열려 있고 서비스가 응답 중 | 서비스 자체의 동작 점검 |
| 연결되지만 아무 출력 없음 | 포트는 열려 있고 서비스가 먼저 말하지 않는 종류 | 해당 프로토콜 클라이언트로 재시도 |
| 즉시 거부됨 | 해당 포트에서 듣는 서비스가 없을 가능성 | 서비스 실행 여부, 리스닝 주소 |
| 한참 기다린 뒤 시간 초과 | 중간 방화벽이 패킷을 버리거나 경로 문제 가능성 | 방화벽 규칙, 보안 그룹, 라우팅 |
연결에 성공했다는 것은 TCP 연결이 맺어졌다는 뜻일 뿐, 그 위의 서비스가 정상이라는 보증은 아닙니다. 또 이 테스트는 내가 있는 위치에서 상대까지의 경로를 확인하는 것이므로, 다른 네트워크에서는 결과가 다를 수 있습니다.
더 나은 대안 도구
- 원격 관리: SSH를 사용합니다.
- Windows 포트 확인: PowerShell의
Test-NetConnection -ComputerName 호스트 -Port 포트번호는 텔넷 클라이언트를 설치하지 않고도 TCP 연결 성공 여부를 알려 줍니다. - macOS·리눅스:
nc -zv 호스트 포트번호(netcat)가 흔히 쓰입니다. 시스템에 따라 옵션이 다를 수 있습니다. - 내 서버 쪽 확인: 허락받지 않은 외부 서버의 포트를 반복 점검하는 행위는 삼가고, 본인이 관리하는 대상에만 사용합니다.
흔한 오해와 정정
- 오해: 텔넷은 완전히 사라진 기술이다. 실제: 로그인용으로는 거의 쓰이지 않지만, 장비 펌웨어나 레거시 시스템에 남아 있기도 하고 포트 진단용 클라이언트로 아직 쓰입니다.
- 오해: 텔넷이 연결되면 그 서버는 안전하다. 실제: 연결은 포트가 열려 있다는 사실만 알려 주며 서비스의 안전성과는 무관합니다.
- 오해: 사내망이니까 평문이어도 괜찮다. 실제: 같은 망 안의 단말이 감염되거나 잘못 구성되면 내부 구간에서도 내용이 노출될 수 있어, 내부망 전용 서비스도 암호화를 권장합니다.
- 오해: telnet 명령은 텔넷 프로토콜만 쓴다. 실제: 클라이언트는 다른 포트에서는 순수 TCP 연결로 동작해 SMTP, HTTP 같은 서비스를 직접 두드려 볼 수도 있습니다.
한계와 더 알아볼 점
포트 테스트는 TCP 연결 수준만 확인하므로 UDP 서비스(DNS, VoIP 등)에는 쓸 수 없습니다. 또 방화벽이 일부 출발지만 허용하는 환경에서는 테스트 위치에 따라 결과가 달라집니다. 텔넷 옵션 협상의 세부와 NVT 규칙은 RFC 854와 후속 RFC 문서를 직접 확인하세요. SSH 도입 시기처럼 이 글에서 확인하지 못한 연표는 다루지 않았습니다.
SSH의 원리가 더 궁금하다면
텔넷을 대체한 SSH가 어떻게 통신을 암호화하고 인증하는지 궁금하다면SSH(시큐어 셸) 프로토콜이란? 기초 개념 정리도 확인해보세요.
포트 자체에 대해 더 알고 싶다면
어떤 서비스가 어떤 포트 번호를 쓰는지 한눈에 보고 싶다면포트 번호 총정리도 참고해보세요.
자주 묻는 질문
텔넷으로 아직도 로그인해서 서버를 관리해도 되나요?
권장하지 않습니다. 텔넷은 로그인 정보를 포함한 모든 통신이 암호화되지 않은 평문으로 전송되기 때문에, 같은 네트워크의 누군가가 패킷을 가로채면 계정 정보가 그대로 노출될 수 있습니다. 원격 서버 관리에는 반드시 SSH를 사용해야 합니다.
텔넷 명령으로 포트 테스트를 했는데 연결이 바로 끊겨요.
연결 직후 곧바로 끊긴다면 포트는 열려 있지만 텔넷 프로토콜 자체를 이해하지 못하는 서비스(예: 웹 서버, 메일 서버 등)일 가능성이 높습니다. 이 경우에도 "연결 자체는 성공했다"는 점에서 해당 포트가 열려 있다는 사실은 확인된 것입니다.
텔넷 포트 23번을 인터넷에 열어 두어도 되나요?
특별한 이유가 없다면 열지 않는 것이 원칙입니다. 평문 프로토콜이고 인증이 약해 자동화된 접속 시도의 대상이 되기 쉽기 때문입니다. 장비 관리가 필요하면 SSH와 접속 IP 제한, VPN 같은 방법을 검토하세요.
텔넷과 SSH는 같은 기술의 다른 버전인가요?
아닙니다. 둘 다 원격 터미널 접속에 쓰이지만 별개의 프로토콜입니다. SSH는 암호화, 서버 인증, 사용자 인증을 처음부터 포함하도록 설계되어 텔넷의 약점을 보완하며 자리를 대체했습니다.
텔넷 연결이 성공했는데 웹사이트는 안 열려요.
TCP 연결은 되지만 그 위의 웹 서버 설정, 인증서, 애플리케이션 오류 등 다른 계층의 문제일 수 있습니다. 포트 테스트는 첫 번째 단계일 뿐이므로 서비스 로그나 브라우저 오류 메시지를 이어서 확인하세요.
이어서 읽어 보세요
- SSH 프로토콜 기초: 텔넷을 대체한 암호화 원격 접속
- 포트 번호 총정리: 서비스별 기본 포트
- 포트 스캔 기초: 열린 포트를 점검하는 개념
- 방화벽 기초: 연결이 막히는 이유를 읽는 법