본문 바로가기
웹 개발

[Postgres] pg_hba.conf 설정

by 자는게젤루좋아 2022. 5. 7.

 

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

 

  • TYPE : local, host, hostssl, hostnossl 중 하나를 설정합니다.
  • DATABASE : 연결할 수 있는 데이터베이스 이름을 지정합니다.
    • 복수 지정하는 경우는 쉼표 (,)로 구분하여 작성합니다.
  • USER : 연결할 수 있는 사용자 이름을 지정합니다. 
    • 복수 지정하는 경우는 쉼표(,)로 구분하여 작성합니다.
    • 특수한 값 all을 지정하면 모든 사용자를 의미합니다. 
  • ADDRESS : 연결할 수 있는 호스트 이름 또는 IP 주소 범위를 지정합니다.
  • TYPE 은 https://www.devkuma.com/docs/postgresql/pghba-conf-%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95/ 페이지를 참조하여 작성하시면 됩니다.

 

  • 자 그럼 이제 새로 생성한 h****계정으로 예제를 수행해보겠습니다.
# 아까 생성한 계정과 권한이 부여된 temp 데이터베이스로 접속해보겠습니다.
[vagrant@default /]$ psql -U h**** temp
Password for user h****:
psql (9.2.24)
Type "help" for help.
 
  • 접속이 잘 되는것을 확인했으니 설정을 수정해보겠습니다.
  • USER 에 all 로 되어있는 항목을 postgres로 수정하겠습니다.
  • 이 말은, localhost의 모든 데이터베이스에 접속하되, postgres 계정의 연결만을 허용하겠다는 의미입니다.
  • METHOD는 md5 방식의 암호 인증 방식을 사용하겠습니다.

 

sudo vi /var/lib/pgsql/data/pg_hba.conf
 
# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             postgres                                     md5

 

  • 서비스를 재시작 후 h**** 계정으로 로그인을 하면 다음의 SSL 에러로 접속이 불가한 것을 확인할 수 있습니다.
[vagrant@default /]$ sudo vi /var/lib/pgsql/data/pg_hba.conf
[vagrant@default /]$ sudo systemctl restart postgresql
[vagrant@default /]$ psql -U h**** temp
psql: FATAL:  no pg_hba.conf entry for host "[local]", user "h****", database "temp", SSL off
[vagrant@default /]$ psql -U postgres temp
Password for user postgres:
psql (9.2.24)
Type "help" for help.
  • 테스트가 잘 수행되는 걸 봤으니 pg_hba.conf 파일의 원래 설정으로 되돌리겠습니다.

 

  • 저는 주로 local(VM)이 아닌 외부 ip(Host)에서의 접속을 수행할 테니, host 설정을 다음과같이 해두겠습니다.
  • 참고로 0.0.0.0/0 은 어떤 ip와 port로 접속해도 접속이 가능하며, ::1/128은 localhost를 의미합니다.
  • 저는 vagrant를 통해 private ip를 사용하므로 0.0.0.0/0으로 열어두었지만, 만약 보안을 따로 설정해야 하는 상황이라면 ADDRESS와 METHOD를 다른 값으로 수정해야 합니다.
# TYPE  DATABASE        USER            ADDRESS                 METHOD
 
# "local" is for Unix domain socket connections only
local   all             all                                     md5                                                    
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

 

 

참고 : https://www.devkuma.com/docs/postgresql/pghba-conf-%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95/

 

'웹 개발' 카테고리의 다른 글

[Maria DB] 설치  (0) 2022.05.07
[Postgres] 설치  (0) 2022.05.07

댓글