Linux/리눅스 기본

Port forwarding

배고파.. 2019. 7. 25. 07:21

Port forwarding (일종의 터널링)

  • SSH Tunneling은 터널을 통해 데이터를 주고받으며, 연결, 통신은 모두 암호화되며 SMTP, IMAP 등 여러 가지로 사용될 수 있다.

  • Direct로 보내면 네트워크 층에서 수 많은 공격을 받을 수 있기 때문에 SSH를 통해 다른 Application에 연결하는 것이 안전.

Local port forwarding

 

ssh -L port1:host_name:port2 server_name

ex. 로컬에서 서버에 있는 MySQL과 SSH 연결을 한다고 가정.

  • Local port forwarding은 로컬에 설치된 MySQL 클라이언트의 3306 포트가 연결된 SSH Tunnel을 거쳐 서버에 있는 MySQL 서버의 3306 포트와 연결

  • 이를 통해 직접 서버의 데이터베이스에 안전하게 접근할 수 있으며 요청을 보내서 서로 데이터 송수신 가능

Remote port forwarding

ssh -R port1:host_name:port2 server_name

ex. 로컬에서 파이썬 웹 애플리케이션을 개발 중인데 외부에 공개 한다고 가정

  • 아직 고정 아이피가 없어 직접 연결을 못함

  • 라우터에서 NAT 구성을 하는 방법도 있지만 귀찮음

  • 먼저 port1의 서버에서 port2로 로컬 트래픽을 전달하는 SSH 터널을 생성

  • 로컬에서 port2의 서버에 연결하면 실제로 SSH 터널을 통해 데이터를 요청하는 것을 확인

 

'Linux > 리눅스 기본' 카테고리의 다른 글

숨긴 파일과 권한 설정  (0) 2025.01.16
OpenSSL을 이용한 암호화/복호화  (0) 2025.01.16
마운트 (Mount)  (0) 2019.07.25
디스크 관리  (0) 2019.07.25