반응형

Telenet이란?

 

Telnet이란? 1969년 개발된 Telnet은 초기 인터넷 표준 중 하나로,

네트워크를 통해 원격 컴퓨터에 로그인하고 명령을 실행할 수 있는 클라이언트-서버 프로토콜입니다.

사용자는 Telnet 클라이언트 소프트웨어를 통해 서버에 접속하며,

이때 네트워크를 통해 전송되는 명령어와 데이터는 모두 평문으로 처리됩니다.

세션은 TCP/IP 연결을 기반으로 하며, 일반적으로 23번 포트를 사용합니다.

사용자가 Telnet 클라이언트를 통해 입력한 명령은 서버로 전송되고,

서버에서 해당 명령을 실행한 후 결과를 사용자에게 다시 전송합니다.

이 과정은 네트워크 지연이나 대역폭 제한과 같은 요소에 영향을 받을 수 있으나, 기본적으로 실시간으로 이루어집니다.

 

보안 문제로 인한 Telnet의 한계
  1. 데이터 암호화 부재: 모든 통신 내용이 암호화되지 않고 네트워크를 통해 전송되어, 중간자 공격에 취약합니다.
  1. 취약한 인증 과정: UNIX 시스템의 예를 들면, 해커가 Telnet 데몬을 조작하여 인증 과정 없이 원격 쉘 접근을 허용할 수 있습니다.

 

Telnet의 가장 큰 보안 취약점은 모든 통신 내용이 평문으로 전송된다는 점입니다.

이는 사용자 이름, 비밀번호, 그리고 전송되는 모든 데이터가 네트워크상에서 제3자에 의해 쉽게 가로채질 수 있음을 의미합니다.

특히, 공용 Wi-Fi와 같이 보안이 취약한 네트워크 환경에서는 중간자 공격(Man-In-The-Middle, MITM)에 매우 취약하며,

공격자는 이를 이용해 민감한 정보를 획득하거나 세션을 하이재킹 할 수 있습니다.

또한, Telnet 서버 취약점을 이용한 공격으로, 공격자가 서버에 무단으로 접근하거나 악성 코드를 심을 수도 있습니다.


SSH란?

 

SSH(Secure Shell Protocol)란? 보안 문제를 해결하기 위해 개발된 SSH는 Telnet의 대안으로,

Public Network를 통한 컴퓨터 간 통신 시 데이터 전송과 원격 제어를 안전하게 할 수 있는 프로토콜입니다.

SSH는 데이터 전송 전에 안전한 채널을 구성하여 모든 통신 내용을 암호화함으로써, 높은 수준의 보안을 보장합니다.

이로 인해 사용자 인증 정보와 기타 민감한 데이터가 제3자에게 노출되는 것을 효과적으로 방지할 수 있습니다.

 

SSH 사용의 중요성 Telnet 대신 SSH를 사용하는 주된 이유는 "보안"입니다.

SSH를 통해 안전한 채널을 구성하면, 민감한 정보가 네트워크를 통해 안전하게 전송될 수 있으며,

이는 정보 보안을 유지하는 데 필수적입니다.

현대의 네트워킹 환경에서는 대부분의 시스템과 서비스가 높은 보안 기준을 요구하기 때문에,

SSH는 Telnet보다 훨씬 권장되고 널리 사용됩니다.


암호화 메커니즘

 

SSH(Secure Shell)는 데이터를 암호화하여 전송하는 프로토콜로,

공개 키 암호화와 대칭 키 암호화 기술을 모두 사용합니다.

초기 핸드셰이크 과정에서 클라이언트와 서버 간에는 공개 키 암호화 방식을 통해 안전하게 대칭 키를 교환합니다.

이 대칭 키는 세션 동안 데이터 암호화에 사용되며, 세션 종료 시 폐기됩니다.

이 과정은 데이터의 기밀성을 보장하며, 동시에 디지털 서명을 통해 데이터의 무결성 검증도 수행합니다.


인증방법

 

SSH는 다양한 인증 방식을 지원합니다.

가장 흔히 사용되는 방식은 비밀번호 기반 인증과 공개 키 기반 인증입니다.

비밀번호 기반 인증은 사용자 이름과 비밀번호를 통해 이루어지며,

공개 키 기반 인증에서는 사용자가 사전에 서버에 등록한 공개 키와 매칭되는 개인 키를 이용하여 인증합니다.

또한, 두 단계 인증(2FA)과 같은 다중 인증 방식도 점차 널리 사용되고 있습니다.


SSH 포트포워딩 터널링

 

SSH 포트 포워딩(또는 SSH터널링)은 안전하지 않은 네트워크 상에서 안전한 통신 채널을 구축하는 기술입니다. 이 기능을 통해, 사용자는 로컬 컴퓨터의 특정 포트와 원격 서버의 포트 사이에 안전한 SSH 연결을 통한 터널을 생성할 수 있습니다. 이를 통해, 로컬 시스템에서 원격 서비스에 안전하게 접근할 수 있으며, 데이터가 암호화되어 전송되기 때문에 중간자 공격으로부터 보호됩니다. 포트 포워딩은 원격 데이터베이스 접근, 서버 관리, 그리고 내부 네트워크 서비스에 대한 안전한 접근 등에 널리 사용됩니다.


SSH 구현과 활용

 

SSH는 다양한 운영 체제에서 널리 지원되며, Linux와 macOS, Windows 등

대부분의 시스템에서 쉽게 설정하고 사용할 수 있습니다.

서버 측에서는 SSH 서버를 구성하고, 클라이언트 측에서는 SSH 클라이언트를 통해 서버에 안전하게 접속할 수 있습니다.

사용자는 SSH 클라이언트를 통해 파일 전송(예: SCP, SFTP), 원격 명령 실행,

그리고 포트 포워딩 등 다양한 작업을 수행할 수 있습니다.

실제 환경에서는 시스템 관리자가 원격 서버의 유지보수를 위해 SSH를 사용하거나,

개발자가 서버에 안전하게 코드를 배포하기 위해 SSH를 사용하는 등 다양한 용도로 활용됩니다.

SSH의 구현을 위해서는 서버와 클라이언트 양쪽에서 적절한 설정이 필요합니다.

예를 들어, 서버에서는 SSH 데몬(ssh daemon)을 실행하고 적절한 보안 정책을 구성해야 하며,

클라이언트에서는 서버의 공개 키를 신뢰하는 과정, 즉 호스트 키 검증을 수행해야 합니다.

이 과정을 통해, 클라이언트는 서버의 정체성을 확인하고, 서버는 클라이언트의 인증 정보를 검증합니다.

SSH의 사용은 단순히 원격 접속에 국한되지 않습니다.

예를 들어, SFTP(Secure File Transfer Protocol)는 SSH를 기반으로 한 파일 전송 프로토콜로, 안전한 파일 전송을 보장합니다.

또한, SSH를 통해 가상 사설 네트워크(VPN)와 유사한 환경을 구축할 수도 있습니다.

이러한 고급 기능들은 SSH가 단순한 원격 터미널 접속 프로토콜을 넘어서,

네트워크 보안의 핵심 도구 중 하나로 자리 잡게 한 요인입니다.

SSH 구현과 활용에 관한 추가 학습을 위해서는 SSH의 공식 문서,

오픈 소스 커뮤니티에서 제공하는 가이드, 그리고 네트워크 보안에 관한 전문 서적이나 온라인 코스를 참조하는 것이 좋습니다.

이를 통해 SSH의 기본적인 사용법뿐만 아니라, 보안 관련 고급 설정과 최적화 방법에 대해서도 학습할 수 있습니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형

+ Recent posts