Ubuntu에서 PostgreSQL을 설치하고 외부 접속을 허용하려면 다음과 같은 단계로 진행하면 됩니다.
1. PostgreSQL 설치
sudo apt update
sudo apt install postgresql postgresql-contrib
설치 후 PostgreSQL 서비스가 자동 시작됩니다. 상태 확인:
sudo systemctl status postgresql
2. PostgreSQL 유저 및 DB 설정
PostgreSQL 설치 시 기본적으로 postgres라는 유저가 생성됩니다.
sudo -i -u postgres
psql
원하는 유저와 DB를 만들고 비밀번호 설정:
CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE DATABASE mydb OWNER myuser;
권한 부여:
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
PostgreSQL 셸 종료:
\q
exit
3. 외부 접속 허용 설정
A. postgresql.conf 수정
파일 위치는 보통 /etc/postgresql/<버전>/main/postgresql.conf입니다.
sudo nano /etc/postgresql/*/main/postgresql.conf
다음 줄을 수정:
# 기존:
# listen_addresses = 'localhost'
# 수정:
listen_addresses = '*'
B. pg_hba.conf 수정
sudo nano /etc/postgresql/*/main/pg_hba.conf
IPv4 접근 허용 추가 (CIDR은 네트워크 범위에 따라 조정):
# 예: 모든 IP 허용 (비추천, 테스트용)
host all all 0.0.0.0/0 md5
# 예: 특정 IP만 허용 (추천)
host all all 192.168.1.0/24 md5
4. 방화벽 설정 (UFW 사용 시)
PostgreSQL 기본 포트는 5432입니다.
sudo ufw allow 5432/tcp
방화벽 상태 확인 및 적용:
sudo ufw status
sudo ufw reload
5. PostgreSQL 재시작
sudo systemctl restart postgresql
6. 외부에서 접속 테스트
로컬 또는 다른 서버에서 접속 테스트:
psql -h <서버 IP> -U myuser -d mydb
또는 GUI 도구(PgAdmin, DBeaver 등)로 접속 확인.
보안 주의사항
- 실서비스 환경에서는 반드시 외부 접근을 제한하거나 VPN, SSH 터널링 등을 통해 보호해야 합니다.
- 비밀번호는 반드시 강력하게 설정하세요.
- 가능한 경우 SSL을 설정해 데이터 전송을 암호화하세요.