반응형

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의 기본적인 사용법뿐만 아니라, 보안 관련 고급 설정과 최적화 방법에 대해서도 학습할 수 있습니다.


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

인캡슐레이션

오늘은 인캡슐레이션과 디캡슐레이션이 무엇인지 확인해 보는 시간을 가지도록 하겠습니다.

아주 쉽게 설명해드릴테니 아래 검색 결과를 읽다가 포기하지 말아 주세요!

인캡슐레이션과 디캡슐레이션을 인터넷에 검색해 보면 뭐라고 나오는지 한번 찾아볼까요?

 

인캡슐레이션
(Encapsulation)

 

인캡슐레이션은 상위 계층 -> 하위 계층으로 보내는 행위입니다.

네트워킹에서는 데이터 패킷이 전송 계층을 거치면서 헤더나 기타 정보가 추가되어 가는 과정이며,
데이터와 그 데이터를 처리하는 함수를 하나의 단위로 묶는 것을 의미합니다.

이는 주로 객체 지향 프로그래밍에서 볼 수 있는 개념으로,

데이터 구조와 데이터를 처리하는 방법들을 결합하여 데이터의 추상화,

정보 은닉 및 데이터 보호를 달성하는 기법입니다.

이렇게 해서 데이터는 다음 계층으로 넘어갈 준비가 됩니다.

 

계층이 무슨 말인지 잘 모르시겠다면

OSI 7 계층 레이어 글을 읽고 와주세요!

https://jdcyber.tistory.com/11

 

OSi 7계층 모델이란? (개념/이해/설명) TCP/IP Protocol suite

너무 말이 어렵게 느껴지더라도 조급해하지 마세요 그저 설명되어 있는 글을 읽고 아 그렇구나 하고 넘어가시면 됩니다. 하나하나 이해하려고 하면 할 수 없습니다. 시간이 지나며 차차 이해하

jdcyber.tistory.com


디캡슐레이션
(Decapsulation)

 

디캡슐레이션은 상위 계층 -> 하위 계층 즉 반대로 보내는 행위입니다.

마찬가지로 데이터를 전송하기 위해서 프로토콜 정보를 추가하는 패키지 과정이죠

디캡슐레이션은 인캡슐레이션의 반대 과정으로,

데이터 패킷에서 헤더나 추가된 정보를 제거하는 과정을 말합니다.

네트워킹에서는 패킷이 목적지로 전송되는 동안 각 계층에서 필요한 헤더나 정보가 제거되어 원래의 데이터만 남게 됩니다.

객체 지향 프로그래밍에서는 객체 내부의 데이터에 접근하거나 그 데이터를 조작하는 과정을 의미할 수 있습니다.

 

패킷과 헤더에 대해 궁금하시다면

아래 글을 읽어주세요!

https://jdcyber.tistory.com/12

 

패킷(Packet)이란? (쉬운 설명, 구조, 헤더, 인캡슐레이션, 핑, Ping)

패킷 (Packet) 이란 무엇일까요? 패킷은 패키지(package)와 덩어리를 뜻하는 버킷(bucket)의 합성어로 통신망을 통해 전송하기 쉽도록 데이터를 잘게 나눈 전송 단위입니다. 본래 패킷은 소포를 뜻하는

jdcyber.tistory.com


디캡슐레이션

뭐라고 하는 거예요?

 

네 쉽게 설명해 드리겠습니다.

인캡슐레이션 (Encapsulation)
상자에 물건을 넣고 그 위에 라벨을 붙이는 것과 비슷합니다.
프로그래밍에서는 데이터(물건)와 그 데이터를 다루는 기능(라벨)을 상자에 함께 넣는 것을 말해요.
이렇게 함으로써 데이터를 안전하게 보호하고, 필요할 때만 꺼내 쓸 수 있어요.
디캡슐레이션 (Decapsulation)
상자에서 물건을 꺼내는 것과 같습니다.
네트워킹에서는 데이터가 여행하는 동안 각 정거장에서 불필요한 라벨(정보)을 하나씩 제거해요.
결국 목적지에 도착했을 때, 원래의 데이터만 남게 되죠.

 

인캡슐레이션은 데이터를 캡슐화하여 보호하고,

디캡슐레이션은 그 캡슐을 제거하여 데이터에 접근하는 과정입니다.

 

여기서 우리는 프로토콜이라는 개념도 알아갈 필요가 있습니다.

프로토콜

프로토콜
(Protocol)

 

프로토콜은 데이터 전송 규약이라고도 불리는데요
네트워크 환경에서 데이터를 전송할 때 전송 방법을 정의하는 규칙입니다.
인캡슐레이션 디캡슐레이션 역시 데이터를 전송하는 방법이 기 때문에 프로토콜에 의해 만들어집니다.
용도에 따라 프로토콜도 종류가 많은데요

오늘은 프로토콜이 데이터 전송 규약이며 도구구나 정도만 알고 넘어가겠습니다.

조금 자세히 알고 싶으시면 위에 링크 남겨드린 OSI 7 레이어 글을 읽으시면 도움이 되실 거예요!

 


정리

인캡슐레이션은 네트워크 프로토콜 규칙에 따라 데이터를 캡슐화하는 과정이며,
디캡슐레이션은 도착지에서 그 캡슐을 제거해 원본 데이터를 복원하는 과정으로,
이 모든 것이 특정 프로토콜의 지침에 따라 이루어지며,
프로토콜은 컴퓨터나 네트워크 장비들이 서로 정보를 주고받을 때 지켜야 할 규칙이나 절차의 집합입니다.

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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

너무 말이 어렵게 느껴지더라도 조급해하지 마세요

그저 설명되어 있는 글을 읽고 아 그렇구나 하고 넘어가시면 됩니다.

하나하나 이해하려고 하면 할 수 없습니다.

 

시간이 지나며 차차 이해하시게 될 겁니다.

 

OSI 7 Layer Reference Model

(open system interconnection)

"한국말로 개방형 시스템"

 

OSI 7 계층이란 무엇일까요?

OSI 참조 모델이라고 불리는 이것은

모든 장치나 네트워크 통신장비를 만들고 구성할 때

이것을 보고 만들자라고 약속하고 정해놓은 기본이 되는 표준

 

, 기준인 7개의 레이어입니다.

 

쉽게 말해서 전세계에서 휴대폰 충전기를 만들 때

여러 회사에서 가지각색의 모양을 가진 수많은 충전기를 만들어내는 것이 아니라

라이트닝 단자로 만들자 혹은 C 타입 단자로 만들자라고 약속하고

일정한 모양을 규칙으로 정해놓고 혼선을 없애는 것과 같은 개념입니다.

 

만약 이러한 규칙이나 약속을 정해두지 않는다면 

수 많은 다른 모양의 충전기들이 나오고 수많은 휴대폰들이 다른 잭을 가지고 있게 되고

우리는 서로 충전기를 공유하지 못하고 매번 충전기를 사야 하는 어려움을 겪게 되겠죠??

 

그래서 필요한 것이 기준과 표준이며 네트워크 통신장비를 만들 때

이 OSI 7 계층이 바로 기준이 되었고 이 규칙은 1984년에 국제 표준화기구 (ISO)에서 발표되었습니다.

 

그렇다면 왜 7 계층이라는 단어를 쓰게 되었을까요?

 

(너무 어렵게 생긴 위 사진을 이해하려 하지 마세요)

쉽게 설명드리겠습다.

 

군대에서 상급자가 하급자에게 명령을 내릴 때 가장 아래 병사인 이등병까지

명령이 잘 전달되어야 임무를 수행하겠죠?

7 계층 역시 같은 구조입니다.

 

하지만 순서만 반대로 생각하시면 돼요

맨 아래 1에서부터 상위 6번까지 모든 것이 완벽하게 연결되어야 비로소 7이 동작하게 됩니다.

 

바로 이러한 모습이

완벽한 수직적 모습을 갖추고 있기 때문에 "계층"이라는 단어를 쓰게 되었습니다.

그래서 우리는 이것을 7 계층이라고 합니다.

 

이렇게 OSI 7 계층은 통신이 일어나는 과정을 총 7가지로 구분 지어놓고

단계별로 정의하여 네트워크를 구성하고 데이터의 흐름을 파악할 수 있도록 각각 고유한 형태를 이루고 있습니다.

각 계층은 독립되어 있으며 한 부분에서 문제가 생긴다면

빠르게 문제가 생긴 부분을 파악할 수 있고 그 부분을 보안할 수 있도록 모습이 고안되었습니다.

 

우리는 이미 이걸 이해하고 있을지도 모릅니다.

 

예를 하나 들어보도록 할게요

컴퓨터에서 인터넷이 갑자기 안됩니다.

왜 이러지? 인터넷 문제인가? 하면서 인터넷 선을 뽑았다 다시 꽂았다 하면서 확인하잖아요?

우리는 이미 OSI 7 계층에서의 3단계 네트워크 단계를 이해하고 있는 겁니다.

만약 접속이 문제가 아니라면 아래 물리계층 1단계 데이터 계층 2단계도 문제가 없는 것이니

4번 전송 계층부터 문제점을 확인해 나아가면 됩니다.

 

이해가 좀 되시나요?

 

오늘 이 글에서는 아래 내용만 기억하시고

넘어가시면 좋을 같습니다.

1. 모든 장치나 네트워크 통신장비를 만들고 구성할 때 기준으로 약속하고
모습을 정해놓은 7가지 약속이 있고 우리는 이걸 OSI 7계층으로 부르고 있다.


2. 7계층이라고 부르는 이유는 수직적으로 운용되기 때문이다.
(1이 되어야 2가 되고 모든 것이 순차적으로 완료되어야 7이 동작한다.)

3. 7계층은 각각 독립된 형태를 유지하고 있어 문제가 발생하면 파악도 빠르고 해결도 빠르다.

 

네트워크를 준비하시는 분들은 CCNA 시험에 대해서 궁금하실 것 같은데요

아래 자세히 설명해놨으니 참고해주시기 바랍니다.

https://jdcyber.tistory.com/47

 

CCNA란 무엇일까요? (소개, 시험, 덤프, 네트워크)

​ CCNA (Cisco Certified Network Associate)란 무엇일까요? CCNA는 네트워크 기술 능력을 검증하는 가장 기초적인 시험입니다. 여기서 C는 Cisco라는 미국 캘리포니아에 있는 네트워크 하드웨어, 보안 서비스

jdcyber.tistory.com


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형

+ Recent posts