될때까지

((SSH)) SSH, SSH Tunneling, Local Port Forwarding, Remote Port Forwarding 본문

학습/개념정리

((SSH)) SSH, SSH Tunneling, Local Port Forwarding, Remote Port Forwarding

랖니 2022. 11. 11. 09:37
728x90

💎 SSH란

SSH는 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜이다. 관련 설명을 보면서 왜 이 단어가 낯익나 싶었는데 생각났다!! 윈도우에서 putty라는 걸 이용해서 막 엄청난 명령어들를 입력하고 서버를 구동했던 기억이 있는데 그게 이 작업이였구나....!!! 그때는 이해못하고 따라치기만 했는데 이제는 이해해보자.

SSH는 Secure Shell로 보안을 중요시한 프로토콜이다. SSH 외에도 Telnet같은 프로토콜이 존재하는데 SSH가 생긴 이유는 무엇일까?
Telnet 프로토콜을 사용하면 보낸 데이터들이 암호화되지 않고 그대로 전송된다. 하지만 SSH 프로토콜을 사용하면 암호화된 통신을 함으로 정보가 탈취당해도 쉽게 해석하지 못하도록 보안성을 향상시킬 수 있다.

 

💎 SSH Tunneling이란

  • SSH는 기본적인 원격 터미널 접속 외에도 'SSH 포트 포워딩' or 'SSH 터널링 기능'을 제공한다(두 용어는 같은 뜻)
  • 보안상의 이유로 외부에서 들어오는 요청을 방화벽으로 막아둔 경우가 있다. 방화벽에서 막아둔 포트 말고 다른 번호를 사용할 수도 있지만 보통 운영에 필요한 SSH 22번 포트 빼고 모두 막은 경우도 있다. 이럴 때 SSH 터널링을 사용하면 된다.
  • SSH 클라이언트와 SSH 서버가 연결이 되면 통로가 생기는 데 이를 터널링이라고 한다.
  • 저번에 Proxy에 대해 정리했는데 SSH 터널링을 통해 전달되는 모든 데이터는 '암호화'된다는 것만 빼면 약간 Proxy와 비슷하군
  • Local Port Forwarding, Remote Port Forwarding, Dynamic Port Forwarding이 있다.
  • SSH 기반이라 암호화 통신이 가능하지만 대규모 트래픽에는 적합하지 않다고 한다.(느리다고 함)

 

💎 Local Port Forwarding

  • SSH Client -> SSH Server로 연결. 서버의 포트를 이용하는 방법
 ssh -L [출발포트]:[접속할 곳] [SSH 서버 주소]
 // 로컬 클라이언트의 포트번호 / 실제 접속해야할 서버의 IP주소 / SSH 서버 IP주소

from https://hbase.tistory.com/328

 

💎 Remote Port Forwarding

  • SSH Server -> SSH Client로 연결. 클라이언트의 포트를 이용하는 방법
  • 외부에서 서버로 들어오는 모든 요청을 막아둔 경우(22번포트까지 firewall에 의해 막혀있는 상태인 경우) 사용할 수 있다.
 ssh -R [출발포트]:[접속할 곳] [SSH 클라이언트 주소]
 // 로컬 클라이언트의 포트번호 / 실제 접속해야할 서버의 IP주소 / SSH 클라이언트 IP주소

from https://hbase.tistory.com/328

 

* 참고자료

https://www.ssh.com/academy/ssh/tunneling-example

https://www.hanbit.co.kr/network/category/category_view.html?cms_code=CMS5064906327 

https://hbase.tistory.com/328

https://jootc.com/p/201808031460

https://www.youtube.com/watch?v=AtuAdk4MwWw&t=9s 

https://blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=alice_k106&logNo=221364560794 

 

728x90