3.8. SSH 터널(tunnel)를 사용한 안전한 TCP/IP 접속
사사: 1999-09-08 에 Gene Selkov,Jr.( <selkovjr@mcs.anl.gov >)이 Eric Marsden 의 질문에 대한 답변으로 적은 email 로부터 아이디어(idea)를 얻었다.
ssh를 클라이언트(client)와 Postgres 서버(seaver) 간의 통신을 암호화 하기 위해 사용할 수 있다.제대로 사용한다면, 이것만으로 충분히 안전한 네트워크 접속을 할 수 있다.
먼저 ssh 서버(seaver)가 Postgres 와 동일한 머신(machine) 에서 잘 동작하고 있고, 사용자가 ssh 를 통해 로그인할 수 있는지 확인한다. 이것이 가능하다면 다음 명령어로 클라이언트 머신에서 안전한 통로를 통해 접속이 가능해 져야 한다.
> ssh -L 3333:foo.com:5432 joe@foo.com
-L 인자의 1번째의 숫자,3333,은 터널(tunnel)의 로컬(local) 측의 포트(port) 번호로 ,자유롭게 선택한 것이 가능합니다. 2번째의 숫자 5432는 터널(tunnel)의 리모트(remote) 측의 back-end가 사용하고 있는 포트(port) 번호입니다. 2개의 포트(port) 번호간의 이름 혹은 어드레스(address)는 ,접속하고자 하는 데이터베이스 서버(seaver)의 호스트(host)이름 입니다. 이 터널(tunnel)를 사용하고 데이터(data) 베이스(bass) 서버(seaver)에 접속하기 위해서는,로컬(local) 머신(machine)의 포트(port) 3333에 접속합니다.
psql -h localhost -p 3333 template1
데이터(data) 베이스(bass) 서버(seaver)에 있어서는,유저(user)가 실제로 joe@foo.com인 것처럼 보이고,인증 절차(procedure) 가 이 유저(user)(joe@foo.com)를 위해 발행한 증명서를 사용합니다. 터널(tunnel)의 확립이 성공하기 위해서는,ssh 을(를) 사용하고 단말 세션(session)를 확립한 것과 같이, 유저(user) joe@foo.com 가 ssh 를 통하여 접속한 것이 허가되고 있지 않으면 잘 하지 않습니다.
Tip: 여기에서 설명해 왔던 개념을 닮았던 절차를 사용하다,안전한 터널(tunnel)를 준비할 수 있는 제품이 제품이 그 밖에도 몇개인가 존재합니다.
|