운영

손경현·2024년 9월 26일

1. SSH 터널링

내 port와 DB 등 외부 서비스의 port 를 연결

  • sshpass 설치
    sudo apt-get install sshpass

  • ssh 명령어 환경변수 추가
    ~/.bashrc 또는 ~/.zshrc 파일에 환경 변수 추가

    alias sshpg='sshpass -p '\''[password]'\'' ssh -o StrictHostKeyChecking=no -L [localport]:[remote host name]:[remoteport] root(계정)@[ssh 터널 호스트 주소]'
  • bashrc 적용

    source ~/.bashrc
    
  • 설정한 명령어로 실행

    sshpg

1. bastion 서버 이용해 연결하기

  • 기본 터널링 명령어
ssh -i dpgtb.pem -L 5432:10.0.10.8:5432 ubuntu@10.0.1.36

[localport]:[DB IP(bastion에서 접속하는)]:[remoteport][bastion 계정]@[bastion 터널 ip]'

2. Postgresql 설정

  • postgresql.conf
    postgreSQL 서버가 어떤 IP 주소에서 들어오는 연결을 수신할지 설정하는 파일
    # - Connection Settings -
    listen_addresses = '*'
  • pg_hba.conf
    PostgreSQL 서버에 접근하는 클라이언트의 인증을 설정하는 파일
    host    all             all             10.0.1.36/32            scram-sha-256
    Address 부분에 bastion 주소를 넣어줬음 -> 변경
    연결이 잘 안되어서 0.0.0.0/0 으로 변경, 보안상 좋지않은 방법임

파일 위치는 내 경우에 /data/postgres/data/ 였다 (다를 수 있음)

  • postgresql 재시작
sudo systemctl list-units --type=service | grep postgresql
sudo systemctl restart postgresql-13.service

list 를 검색하고 그 결과를 restart 뒤에 그대로 넣어야 함

3. 테스트

telnet localhost 5432

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

요렇게 뜨면 잘 연결된거임

profile
개린이

0개의 댓글