6.6. 인증된 로컬 사용자에 대한 액세스를 제한하여 PostgreSQL 보안
PostgreSQL은 개체 관계형 데이터베이스 관리 시스템(DBMS)입니다. Red Hat Enterprise Linux에서 PostgreSQL은 postgresql-server
패키지에서 제공합니다.
클라이언트 인증을 구성하여 공격의 위험을 줄일 수 있습니다. 데이터베이스 클러스터의 데이터 디렉터리에 저장된 pg_hba.conf
구성 파일은 클라이언트 인증을 제어합니다. 호스트 기반 인증을 위해 PostgreSQL을 구성하려면 절차를 따르십시오.
절차
PostgreSQL을 설치합니다.
# yum install postgresql-server
다음 옵션 중 하나를 사용하여 데이터베이스 스토리지 영역을 초기화합니다.
initdb
유틸리티 사용:$ initdb -D /home/postgresql/db1/
-D
옵션이 있는initdb
명령은 해당 디렉터리가 아직 존재하지 않는 경우 지정한 디렉터리를 생성합니다(예:/home/postgresql/db1/
). 그러면 이 디렉터리에는 데이터베이스에 저장된 모든 데이터와 클라이언트 인증 구성 파일도 포함됩니다.postgresql-setup
스크립트 사용:$ postgresql-setup --initdb
기본적으로 스크립트는
/var/lib/pgsql/data/
디렉터리를 사용합니다. 이 스크립트는 시스템 관리자에게 기본 데이터베이스 클러스터 관리를 지원합니다.
인증된 모든 로컬 사용자가 사용자 이름이 있는 모든 데이터베이스에 액세스할 수 있도록
pg_hba.conf
파일에서 다음 행을 수정합니다.local all all trust
이 문제는 데이터베이스 사용자를 생성하고 로컬 사용자가 없는 계층화된 애플리케이션을 사용할 때 문제가 될 수 있습니다. 시스템의 모든 사용자 이름을 명시적으로 제어하지 않으려면
pg_hba.conf
파일에서로컬
행 항목을 제거합니다.데이터베이스를 다시 시작하여 변경 사항을 적용합니다.
# systemctl restart postgresql
이전 명령은 데이터베이스를 업데이트하고 구성 파일의 구문도 확인합니다.