SSH 터널링

무지성개발자·2023년 10월 20일
0

SSH

SSH(Secure Shell)는 네트워크 보안에 있어 대중적이고 강력한 접근 방식을 제공하기 위해 만들어진 프로토콜로 SSH 클라이언트와 SSH 서버가 있다.

SSH 보안

  • 인증(Authentication) : SSH 서버에 접속하려면 인증 된 사용자여야 하는데 패스워드 방식 또는 RSA, DSA 같은 공개키 방식도 지원한다.
  • 암호화(Encryption) : SSH는 네트워크를 통해 전달되는 데이터를 암호화한다. 대칭키 방식의 암호화 방식을 제공하며 직접 암호화 방식을 만들어 추가 할 수도 있다.
  • 무결성(Integrity) : MAC(Message Authentication Code)을 통해 네트워크를 통해 받은 데이터가 변경되지 않았음을 보장한다.
  • 압축(Compression) : SSH 연결을 통해 보낸 데이터를 압축 할 수 있다.

SSH 터널링

그림과 같이 SSH 클라이언트와 SSH 서버를 연결하는 것을 터널링이라고 한다. port를 forward하는 방식이여서 port forwarding이라고도 한다.

리눅스/유닉스 환경은 SSH클라,서버가 설치되어 있지만 window의 경우 PuTTY같은 Tool을 이용한다.

Local port forwarding

  • SSH 클라이언트가 SSH 서버로 포워딩한 Port를 Listen하고 있음.
  • Listen 중인 Port로 데이터를 전송하면 SSH 서버로 전송.
  • SSH 서버는 연결된 Application에 데이터 전송.

Remote port forwarding

Local port forwarding와 반대로 작동한다.

  • SSH 서버가 SSH 클라이언트과 연결된 Port를 Listen하고 있음.
  • Listen 중인 Port로 데이터를 전송하면 SSH 클라이언트로 전송.
  • SSH 클라는 연결된 Application에 데이터 전송.

한 줄평 : SSH 터널링은 TCP위에서 작동한다.

profile
no-intelli 개발자 입니다. 그래도 intellij는 씁니다.

0개의 댓글