원격 접속 프로토콜
인터넷 브라우저를 통해 검색, 쇼핑, 게임하는 것 모두 원격 접속이라 할 수 있다.
현실에서 직접 해당 사이트를 운영하는 서버장치에 연결해서 사용하지 않고 집이나 PC방 같은 떨어져있는 위치에서 서버가 제공하는 서비스를 이용.
- 주의 사항
- 접속하려는 장비나 내가 사용하고 있는 장비에 둘다 게이트웨이가 있는지 확인.
(다른 네트워크 대역에서 원격 접속할 때 필요)
- 원격 접속 타입과 포트가 보안에 차단되는지 확인. (접속하려는 대상과 내가 사용하는 대상 모두 확인 필요)
- 보안을 위해 보안키를 사용하는 경우가 있다 보안키가 필요한지 확인.
Telnet (텔넷)
사용자의 컴퓨터에서 네트워크를 이용하여 원격지에 떨어져 있는 서버에 접속하여 자료를 교환할 수 있는 프로토콜
인터넷 사용자는 텔넷을 이용하여 전세계의 다양한 온라인 서비스를 저공받을 수 있다.
(다른 컴퓨터에 접속하려면 컴퓨터를 사용할 수 있는 사용자 번호와 비밀번호를 알고 있어야 한다)
특징
- tel(통신) + net(네트워크)
- Port: 23
- 클라이언트-서버 프로토콜로 신뢰할 수 있는 연결 지향적 전송에 기초.
- 원격 컨트롤 보다는 단순히 통신 가능 여부를 확인하는 목적으로 많이 쓰인다.
- 텍스트 기반
- 대부분 유닉스 계열의 운영체제를 지원하는 시스템에서 서비스를 지원.
- 원격지에 있는 호스트 컴퓨터를 이용하기 위해 원격지에서 로그인 기능을 제공하는 프로토콜
- 대부분 대학이나 공공기관들 사이의 네트워크에 이용
장/단점
- 장점
- 거리에 관계없이 쉽게 원격시스템에 접속할 수 있다.
- 텔넷으로 스위치를 관리하게 되면, 스위치에 연결된 수백대의 컴퓨터를 ip, 맥 주소를 원격에서 관리하기 용이해지기 때문에 텔넷을 사용합니다. 제 pc로 직원들의 네트워크를 관리할 수 있게되고, 스위치 장비의 설정을 할 수 있으니 네트워크 관리가 용이해집니다.
- 단점
- 보안상 문제가 때문에 텔넷 대신 SSH를 많이 사용한다.
기본적으로 연결을 통해 전송되는 비밀번호를 포함한 데이터를 암호화하지 않으므로, 통신을 도청하고 나중에 악의적인 목적으로 비밀번호를 사용하는 것이 가능한 경우가 많다. 텔넷이 사용되고 있는 두 호스트 사이의 네트워크에 위치한 라우터, 스위치, 허브 또는 게이트웨이에 대한 액세스 권한을 가진 사람은 누구나 지나가는 패킷을 가로채서 패킷 분석기로 입력된 로그인, 암호 등을 얻을 수 있다.
사용
https://mpjamong.tistory.com/125
https://sosopro.tistory.com/119
https://solbel.tistory.com/969
사용자는 원격 시스템에서 명령 프롬프트를 열고 텔넷이라는 단어와 원격 시스템의 이름 또는 아이피 주소를 입력할 수 있으며, 텔넷 연결은 포트를 ping하여 열려 있는지를 확인할 수 있다. 열린 포트는 빈 화면이 표시되며, 포트가 연결 중이라는 오류 메시지는 닫혔다는 것을 의미한다
SSH
secure shell의 약어로 공개 키 방식의 암호 방식을 사용하여 원격지 시스템에 접근하여 암호화된 메시지를 전송할 수 있는 시스템이자 보안을 중점으로한 프로토콜
기존 원격 접속으로 많이 사용하던 텔넷은 암호화를 제공하지 않기 때문에 WireShark 같은 패킷 분석 프로그램을 이용하면 누구나 쉽게 원격 접속 과정에서 데이터를 탈취할 수 있다.
따라서 이를 암호화하는 SSH가 등장했고 현재 원격 접속 보안을 위한 필수 요소로 자리잡았다.
클라우드 서비스에서 제공하는 서버는 기본적으로 원격 접속을 해서 접근하고 사용한다
따라서 NBP, AWS 같은 Cloud service provider에서 서버 생성시 필수적으로 SSH 보안 과정을 거치는 것
작동 원리
KEY를 사용하여 안전하게 데이터를 주고 받는다.
KEY = 대칭키, 비대칭키 (또는 공개 키)
- 사용자(클라이언트)와 서버(호스트)는 각각의 키를 보유하고 있으며 이 키를 이용하여 연결 상대를 인증하고 안전하게 데이터 공유
- 비대칭키(두 개의 키를 사용하여 증명)
- 사용자와 서버가 서로의 정체를 증명
: 비대칭키 방식 사용 ( 서버 또는 사용자가 Key Pair(공개 키와 개인 키의 두 가지로 이루어진 한 쌍) 생성 )
- 사용자 키 페어 생성
- 공개키를 서버에 전송 ( 공개키는 누구나 가질 수 있기 때문에 유출되어도 크게 문제가 되지 않는다 )
- 서버는 공개 키를 받아서 해당 공개키로 만들어진 랜덤한 값을 생성. 이 값은 사용자가 올바른 키 페어를 가지고 있는지 시험하는 일종의 시험지와 같다
- 랜덤값을 받는 사용자는 가지고 있는 개인 키를 이용해 이 랜덤값을 푼다. ( 개인 키는 공개되서는 안된다 ) ( 공개 키와 랜덤 키는 하나의 쌍이기 때문에 다른 공개키나 개인키를 이용해서 풀어낼 수 없다. 오직 키 페어 생성시 함께 생성된 개인 키와 공개 키만 서로 해석이 가능하다.)
- 랜덤키와 개인키를 비교하여 나온 값을 사용자는 다시 서버에 전송한다.
- 서버는 사용자로부터 전송받은 값을 자신이 처음 낸 값과 비교한다. 이 두 값이 같으면 접속 허용
- 최초 접속 시 사용자와 서버 간의 인증 절차가 비대칭키 방식을 통해 완료.
- 대칭키 (한 개의 키만 사용)
- 정보 공유 (주고 받음): 정보를 주고 받는 과정에서 정보가 새어나가지 않게 정보를 암호화하여 주고 받는다.
- 사용자와 서버가 하나의 대칭키를 만들어서 서로 공유.
- 공유된 대칭 키를 이용해 정보를 암호화하면 받은 쪽에서 동일한 대칭키로 암호를 풀어 정보를 습득한다.
- 정보 교환이 완료되면 교환 당시 썼던 대칭키는 폐기, 나중에 다시 접속할 때마다 새로운 대칭키를 생성하여 사용한다.
FTP
SFTP
RDP
HTTP
HTTPS
winterm
참고
https://leejoongwon.tistory.com/52
http://wiki.hash.kr/index.php/%ED%85%94%EB%84%B7
https://jootc.com/p/201808031460