IT 그리고 정보보안/Knowledge base

SSH (Secure Shell)

plummmm 2021. 4. 19. 07:10
반응형

보안 텔넷이라고 불리는 SSH(Secure shell)에 대해서 알아보자.

SSH는 원격 접속할 때 쓰이는 프로토콜이다. rsh, telnet 등 여러가지가 있지만,

SSH가 안전하기 때문에.. 보통 보안텔넷이라 부르는 SSH를 사용한다.

호스트에 원격 접속하려면 OpenSSH를 설치해야 한다.

 

SSH는 터널링 기법을 사용하여 보안을 한다. 아래 그림부터 한번 보자.

 

 

안전하지 않은 기존의 TCP 연결을 안전한 SSH 연결로 변환하는 것이다.

서버와 클라이언트가 SSH를 사용하려면 일단 서버에는 SSH서버, 클라이언트에는 SSH 클라이언트가 설치되어 있어야 한다.

SSH 클라이언트로 SSH 서버로 접속하게 되면 이 둘이 연결이 되는데 

이 연결 통로를 만드는 것을 SSH 터널링(SSH Tunneling) 이라고 한다.

 

이렇게 만들어진 SSH 터널을 포트 포워딩을 이용 다른 어플리케이션 계층 프로토콜들이 SSH 보안 연결을 사용할 수 있다.

위 그림을 보면, 다이렉트로 tcp 통신을 할 수도 있지만, SSH를 이용하여 보안 통신을 할 수 있다.

 

포트 포워딩은 크게 Local port forwarding 과 Remote port forwarding 으로 이루어져 있다.

Local port forwarding 은 클라이언트가 지정한 로컬 포트로 Listen 상태로 있다가 

데이터가 오면 서버로 전달, 서버의 지정된 호스트로 전달하는 것이다.

 

Remote port forwarding 은 서버측에서 지정한 포트로 Listen 상태로 있다가

데이터가 오면 클라이언트로 전달, 클라이언트의 지정된 호스트로 전달하는 것이다.

 

예를 하나 들어서 SSH를 이해해 보도록 합시다. 로컬 포트포워딩에 대해 설명한다.

 

내부 사용자로 부터만 접속을 허용하는 POP3 서버가 있다. 이 서버를 SSH 터널링을 통해 외부로부터 접속하는 경우를 보자.

POP3의 클라이언트 포트는 11000번, 서버 포트는 110번이다.

 

 

1. 클라이언트가 SSH 체널을 생성한다.

2. SSH클라이언트는 로컬포트 11000번, 원격 포트 110번(pop3) 로 설정한다.

3. 어플리케이션 클라이언트가 11000번 포트로 연결하면 SSH 클라이언트는 SSH 서버로 포워딩한다.

4. SSH 서버는 다시 설정한 어플리케이션 서버의 원격포트 110번으로 데이터를 전달한다.

반응형