평생 무료로 사용 중인 오라클 compute instance 에서 postgresql 셋팅에 대해 간단하게 정리한다.
현재 시점 (2024/08/26) 기준이며 Oracel cloud UI, postgresql version 등에 따라 동작이 달라질 수 있지만 기본적인 틀은 크게 바뀌지 않을 거라고 생각한다.
나는 기본 포트 쓰는걸 보안적으로 가장 취약한 방안 중 하나로 생각하기 때문에 postgresql 기본 포트인 5432 포트 대신 25432 로 우회해서 사용하려 한다. 이것도 만약 전체 포트스캐닝에 감지되면 5432 포트와 유사성이 있어 취약할 수 있기 때문에 아예 다른 포트로 사용하는게 좋긴하다.
1. Compute Instance 에 security group 에 postgresql 에서 사용할 Port 를 오픈한다.
이동 경로는 "인스턴스 상세 정보 -> VNIC -> 서브넷 (XXX) -> 보안 목록" 리스트의 항목을 선택하면 된다.
Oracle instance 는 보안그룹 정책을 VNIC 서브넷의 보안 목록이 자동 적용된다고 한다.
* 소스 IP 를 만약 자신의 공인 IP 를 알고 있다면 입력해서 접근 제한을 좁히는게 좋다.
2. Postgresl 설치 및 설정
나는 ubuntu 24 이미지로 postgresql 을 설치하여 사용했다.
설치는 간단하게 아래 명령어로 가능하다.
sudo apt update
sudo apt install postgresql
이후에는 다음 경로의 파일들의 내용을 수정한다.
sudo vi /etc/postgresql/16/main/postgresql.conf
listen_address 는 '*' 로 설정하고 port 는 앞서 얘기한 25432 포트를 사용한다.
sudo vi /etc/postgresql/16/main/pg_hba.conf
위 한 줄을 추가하여 접근 가능한 host 에 전체 IP 접근이 가능하도록 설정한다. 여기서도 앞선 보안그룹 설정과 마찬가지로 자신의 공인 IP 를 안다면 해당 IP 로 설정이 가능해 보인다.
모든 설정을 마치고 postgresql 을 재시작한다.
sudo systemctl restart postgresql
netstat -nltp | grep 25432
재시작 후 netstat 명령어로 port 를 확인해보면
위와 같이 뜬 것을 확인해볼 수 있다.
3. iptables 에 port 추가
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 25432 -j ACCEPT
sudo netfilter-persistent save
열려 있는 25432 포트를 linux 자체에서도 열려있음을 알 수 있게 iptables 에도 추가해 주어야 한다. 실제 이 부분에서 애먹었기에 이 글을 남긴다.
이후 PC 에서 telnet 명령으로 테스트 시 port 가 정상으로 열려 있음을 확인할 수 있다.
위 설정 중에 1, 3번은 기본적으로 Oracle compute instance 의 port 오픈 방법이기에 알아두면 좋다.
'개발 노트 > Etc.' 카테고리의 다른 글
[Docker] Windows 에서 Docker Engine 만 설치 (w/o Docker Desktop) (1) | 2024.02.25 |
---|---|
[프로그램] 키즈노트 백업 프로그램 (31) | 2024.02.25 |
[Docker] Windows 에서 Docker Engine 설치 방법 (w/o Docker Desktop) (0) | 2024.02.22 |
[OS] Windows 캡처 및 스케치 알림오지 않을 때 조치 방법 (0) | 2023.09.22 |
[개발환경] 오라클 자율운영 DB 접속 (w/ SQL Developer) (0) | 2022.09.25 |