Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

21장. PostgreSQL

PostgreSQL은 DBMS(Object-Relational Database Management System)입니다.[19]
Red Hat Enterprise Linux에서 postgresql-server 패키지는 PostgreSQL을 제공합니다. 다음 명령을 입력하여 postgresql-server 패키지가 설치되어 있는지 확인합니다.
~]# rpm -q postgresql-server
설치되지 않은 경우 yum 유틸리티를 root로 사용하여 설치합니다.
~]# yum install postgresql-server

21.1. PostgreSQL 및 SELinux

PostgreSQL이 활성화되면 기본적으로 제한된 상태로 실행됩니다. 제한된 프로세스는 자체 도메인에서 실행되며 다른 제한된 프로세스와 분리됩니다. SELinux 정책 구성에 따라 공격자가 제한된 프로세스가 손상되면 공격자가 리소스에 대한 액세스와 가능한 손상을 제한합니다. 다음 예제에서는 자체 도메인에서 실행되는 PostgreSQL 프로세스를 보여줍니다. 이 예제에서는 postgresql-server 패키지가 설치되어 있다고 가정합니다.
  1. getenforce 명령을 실행하여 SELinux가 강제 모드로 실행 중인지 확인합니다.
    ~]$ getenforce
    Enforcing
    
    명령은 SELinux가 강제 모드에서 실행 중일 때 Enforcing (강제)을 반환합니다.
  2. 다음 명령을 root 사용자로 입력하여 postgresql 을 시작합니다.
    ~]# systemctl start postgresql.service
    서비스가 실행 중인지 확인합니다. 출력에는 아래 정보가 포함되어야 합니다(시간 스탬프만 다릅니다).
    ~]# systemctl start postgresql.service
    postgresql.service - PostgreSQL database server
       Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled)
       Active: active (running) since Mon 2013-08-05 14:57:49 CEST; 12s
    
  3. 다음 명령을 입력하여 postgresql 프로세스를 확인합니다.
    ~]$ ps -eZ | grep postgres
    system_u:system_r:postgresql_t:s0 395 ?    00:00:00 postmaster
    system_u:system_r:postgresql_t:s0 397 ?    00:00:00 postmaster
    system_u:system_r:postgresql_t:s0 399 ?    00:00:00 postmaster
    system_u:system_r:postgresql_t:s0 400 ?    00:00:00 postmaster
    system_u:system_r:postgresql_t:s0 401 ?    00:00:00 postmaster
    system_u:system_r:postgresql_t:s0 402 ?    00:00:00 postmaster
    
    postgresql 프로세스와 연결된 SELinux 컨텍스트는 system_u:system_r:postgresql_t:s0입니다. 컨텍스트의 두 번째 마지막 부분인 postgresql_t 는 유형입니다. 유형은 프로세스 및 파일의 유형에 대한 도메인을 정의합니다. 이 경우 postgresql 프로세스는 postgresql _t 도메인에서 실행됩니다.


[19] 자세한 내용은 PostgreSQL 프로젝트 페이지를 참조하십시오.