hoonii2

[SpringBoot] Local Spring Boot 에서 SSH Tunneling 을 통한 원격 서버 MariaDB 접근 본문

개념 공부/(개발) 02. Spring Boot

[SpringBoot] Local Spring Boot 에서 SSH Tunneling 을 통한 원격 서버 MariaDB 접근

hoonii2 2023. 2. 10. 16:11

 

1. 환경

  • 원격 서버
    • Open 된 포트는 SSH 만 허용 ( Maria DB 는 외부에 Open 되거나 Port Forwarding , NAT 등의 설정이 되어있지 않음 )
    • SSH 접근은 RSA 방식으로만 접근이 가능하도록 설정된 상황
    • Docker 를 통해 MariaDB 구성 상태
  • Local 서버
    • Spring Boot 에서 위 원격서버의 MariaDB 에 접근하고 싶음

 

2. SSH Tunneling 사용 이유

  - 원격 서버로 SSH Local Tunneling 방식을 사용하여 MariaDB 접근

    - SSH 패킷 안에 MariaDB 접근 ( 3306 ) 을 감싸 통신이 가능하도록 수행

    - 외부에 MariaDB 를 접근가능하게 설정되지 않고 SSH 인증이 우선 수행되어야 하므로 보안성 강화

 

 

3. 사용 방법

  - "-p" = ssh 접근이 허용된 포트번호 작성 ( 기본인 22를 사용한다면 작성 X )

  - "-L" = Local SSH Tunneling 방식 사용 ( Remote 방식도 있는데 , 제가 이해하기론 SSH 접근한 서버의 서비스를 이용하고자 하는 경우 Local 사용 )

  - "9091:127.0.0.1:3306" = localhost:9091 접근을 SSH 터널링으로 감싸 원격 SSH 서버의 localhost:3036 서비스에 연결 수행

  - 그 뒤는 SSH 접근 정보를 작성해줍니다.

 

 

4. 결과

  - SSH Tunneling Session 활성화 유지

 

  - Spring Boot 에서 mariadb 접근 시 아래와 같이 확인 가능

  ( 외부에 Open 되지 않은 서비스이고 RSA Key 를 갖고 Tunneling 을 수행해야만 접근이 가능하기에 공개되어도 무관 )

  - 정상 접근 및 JPA 를 통한 Table 생성 확인

 

Comments