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 패키지가 설치되어 있다고 가정합니다.
- getenforce 명령을 실행하여 SELinux가 강제 모드로 실행 중인지 확인합니다.
~]$ getenforce Enforcing
명령은 SELinux가 강제 모드에서 실행 중일 때Enforcing
(강제)을 반환합니다. - 다음 명령을 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
- 다음 명령을 입력하여
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
도메인에서 실행됩니다.