코딩스토리/리눅스

오라클 리눅스 8 - PostgreSQL 13 외부 접속하기

Tech&Fin 2022. 2. 19. 00:42
반응형

지난 포스팅에서 리눅스 서버에 PostgreSQL 13 버전을 설치하고 설정하는 방법에 대해서 살펴 보았습니다.

 

이어서 이번 시간에는 방화벽 설정등을 마무리 짓고 DBeaver를 통해 외부에서 DB에 접속하는 방법에 대해서 살펴보겠습니다. 아직 설치 및 설정을 하지 못하신 분들은 아래 포스팅을 참고하여 설치 및 설정을 진행하시면 됩니다.

 

2022.02.07 - [코딩스토리/리눅스] - 오라클 리눅스 8 - PostgreSQL 13 데이터베이스 설치하기

 

오라클 리눅스 8 - PostgreSQL 13 데이터베이스 설치하기

이번 시간에는 앞으로 Tech&Fin에서 다루는 비트코인 자동매매 프로그램에서 사용할 PostgreSQL 데이터베이스 13버젼을 오라클 리눅스 8 환경에서 설치하는 방법에 대해서 살펴 보려고 합니다. Tech&Fin

technfin.tistory.com

 

2022.02.09 - [코딩스토리/리눅스] - 오라클 리눅스 8 - PostgreSQL 13 설정하기

 

오라클 리눅스 8 - PostgreSQL 13 설정하기

이번 시간에는 지난 포스팅에 이어 오라클 리눅스 8에 설치한 PostgreSQL의 DB를 설정하는 방법에 대해서 살펴 보겠습니다. 목차 - 클릭하면 이동합니다. PostgreSQL 설정하기 PostgreSQL을 설정하기 위해

technfin.tistory.com

 

 

목차 - 클릭하면 이동합니다.

     

    PostgreSQL 외부 접속 설정하기

    방화벽 개방하기

    PostgreSQL을 외부에서 접속하도록 하기 위해서는 방화벽을 개방해야 합니다. 방화벽은 오라클 클라우드 서비스에서 한번 허용해야 하고 그 다음은 서버 자체에서 한번 더 설정해야 합니다.

     

    아래 포스팅을 참고하여 5432번 포트를 개방합니다.

     

    2021.06.04 - [코딩스토리/클라우드 서버] - 오라클 클라우드 포트 개방하기

     

    오라클 클라우드 포트 개방하기

    이번 시간에는 오라클 클라우드 서버에서 접속 가능한 포트를 개방하는 방법에 대해서 알아보겠습니다. 오라클 클라우드 서버를 아직 만들지 않으신 분들은 아래 포스트를 참고 부탁

    technfin.tistory.com

     

    오라클 클라우드 서비스에서 5432번 포트가 개방되었으니 이제 서버에서 방화벽을 개방하도록 하겠습니다.

     

    sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp

    위의 명령어를 통해 5432번 포트를 개방합니다.

     

    sudo firewall-cmd --reload

    방화벽 설정을 다시 로드하여 적용합니다.

     

    sudo firewall-cmd --list-all

    --list-all 옵션을 사용하면 현재 방화벽에 개방되어 있는 포트를 확인할 수 있습니다. 5432번 포트가 정상적으로 개방 되어 있음을 확인할 수 있습니다.

     

    이제 리눅스 커널 보안을 담당하는 SELINUX 설정을 변경하겠습니다. SELINUX 설정이 강화되어 있으면 파일 보안이 강화되어 외부 접속이 어렵기 때문에 로그를 남기며 허용하는 정책으로 변경하겠습니다.

     

    sudo vi /etc/selinux/config

    /etc/selinux/config  파일을 열고 기존 enforcing으로 되어 있는 설정을 permissive로 변경합니다. 파일 편집은 vi 에디터를 사용하며 기본적인 vi 명령어를 아직 모르시는 분들은 아래 포스팅을 참고하시면 됩니다.

     

    2022.02.07 - [코딩스토리/리눅스] - 리눅스 VI 명령어 - VI에디터 기본 필수 명령어

     

    리눅스 VI 명령어 - VI에디터 기본 필수 명령어

    리눅스는 일반적으로 서버를 다루기 때문에 윈도우즈 OS와는 다르게 화면이 화려하지 않고 텍스트 기반의 형태로 되어 있습니다. 물론 리눅스도 윈도우즈와 비슷하게 GUI 환경을 설치하고 구동

    technfin.tistory.com

     

    sudo getenforce
    
    sudo setenforce 0
    
    sudo getenforce

    getenforce 명령어로 현재 SELINUX 상태를 조회할 수 있습니다. 환경파일을 변경했음에도 불구하고 여전히 Enforcing 상태로 되어 있는데요. 재부팅시 환경파일을 읽어서 설정을 하기 때문입니다.

     

    재부팅 없이 변경하려면 setenforce 0 명령어로 강제로 한번 변경해 주면 됩니다. 그 뒤로는 재부팅시에 환경파일을 읽어서 설정하게 됩니다.

     

    Listen Address 변경

    PostgreSQL에서 서버가 어떤 IP에서도 접속을 대기할 수 있도록 변경합니다.

     

    sudo vi /var/lib/pgsql/data/postgresql.conf
    
    listen_addresses = '*'

    위의 파일을 열어 listen_addresses = '*' 을 추가해 줍니다.

     

    접속 허용 IP 등록

    그 다음은 DBeaver를 이용해 접속할 PC의 IP를 추가해 주겠습니다.

     

    sudo vi /var/lib/pgsql/data/pg_hba.conf
    
    host    all             all             xxx.xxx.xxx.xxx/32       md5

    위의 파일을 열고 IPv4 섹션에 DBWeaver를 이용해서 접속을 진행할 PC의 IP를 입력합니다. 인증방식은 Password 기반인 md5로 합니다.

     

    사용하는 PC의 공인 IP를 모르신다면 네이버 검색창에 '내 IP 주소 확인'이라고 검색하면 본인의 IP를 확인할 수 있습니다.

     

    PostgreSQL 재시작

    sudo systemctl restart postgresql
    
    sudo systemctl status postgresql

    PostgreSQL 서버를 재시작하고 상태를 확인합니다. 정상적으로 active running 하고 있음을 알 수 있습니다.

     

    DB 및 계정 생성하기

    su - postgres

    postgres 계정으로 로그인 합니다. 계정 Password가 아직 설정 전이라면 비밀번호를 설정하면 됩니다. 비밀번호 설정 방법은 아래 포스팅을 참고 부탁 드립니다.

     

    2021.06.11 - [코딩스토리/리눅스] - 리눅스 사용자 계정 추가하기 - 오라클 리눅스8

     

    리눅스 사용자 계정 추가하기 - 오라클 리눅스8

    이번 시간에는 리눅스에서 사용자 계정을 추가하는 방법에 대해서 살펴 보겠습니다. 서버 생성 방법 및 PuTTY를 이용한 접속 방법은 아래 포스트를 참고 부탁 드리겠습니다. 2021.06.03 - [코딩스토

    technfin.tistory.com

     

    # DB 접속
    psql
    
    # DB 생성
    create database upbit_db;
    
    # 사용자 계정 생성
    create user upbit with password '비밀번호';
    
    # 인코딩/트랜잭션 처리방법 설정
    alter role upbit set client_encoding to 'utf8';
    alter role upbit set default_transaction_isolation to 'read committed';
    
    # 사용자에게 DB의 모든 사용권한 부여
    grant all privileges on database upbit_db to upbit;

    위의 명령어를 순차적으로 실행하여 새로운 DB 이름을 upbit_db로 생성하고 사용자 계정을 upbit로 생성한 후 권한을 부여해 줍니다.

     

    DBeaver 접속 설정하기

    DBeaver에서 플러그 모양의 아이콘을 클릭해서 새로운 데이터 베이스 연결을 설정합니다.

     

    PostgreSQL을 선택하고 다음을 클릭합니다.

     

    ① PostgreSQL 서버가 설치되어 있는 서버의 IP주소를 입력합니다.

    ② 조금전에 생성한 DB인 upbit_db를 입력합니다.

    ③ 조금전에 생성한 사용자 계정인 upbit를 입력합니다.

    ④ 설정했던 사용자 계정의 비밀번호를 입력합니다.

    ⑤ 접속 테스트를 실행합니다.

     

    집에 있는 PC(외부)에서 DBeaver를 이용해 정상적으로 서버에 설치된 PostgreSQL DB에 접속할 수 있게 되었습니다. 이제 테이블을 만들고 데이터를 저장하고 각종 전략에 맞는 SQL을 작성하여 로직에 반영할 수 있습니다.

     

    차후 포스팅에서 업비트 웹소켓을 이용한 현재가 데이터를 PostgreSQL에 적재하는 방법에 대해서 살펴보도록 하겠습니다.

     

    궁금한 점은 댓글로 부탁 드리며 글이 도움이 되셨다면 하단의 공감 버튼 클릭 및 댓글로 응원해 주시면 포스팅에 많이 도움이 될 것 같습니다. 블로그를 구독하면 소식을 조금 더 빨리 받아 보실 수 있습니다. 감사합니다.

    반응형