Show Table of Contents
このページには機械翻訳が使用されている場合があります (詳細はこちら)。
第22章 PostgreSQL
PostgreSQL は、オブジェクト関係データベース管理システム (DBMS) です[19]。
Red Hat Enterprise Linux では、PostgreSQL は postgresql-server パッケージで提供されます。以下のコマンドを実行して、postgresql-server パッケージがインストールされているかどうかを確認してください。
~]# rpm -q postgresql-server
このパッケージがインストールされていない場合は、root で
yum
ユーティリティーを使用してインストールします。
~]# yum install postgresql-server
22.1. PostgreSQL と SELinux
PostgreSQL を有効にすると、デフォルトで制限のあるサービスとして実行されます。制限のあるプロセスはそれ自体のドメイン内で実行され、他の制限のあるプロセスとは分離されます。制限のあるプロセスが攻撃を受けると、SELinux ポリシー設定に応じて、攻撃側がリソースにアクセスして加えることができる被害は制限されます。以下に、PostgreSQL 自体のドメイン内で実行している PostgreSQL プロセスの例を示します。ここでは postgresql-server パッケージがインストールされていることを前提としています。
getenforce
コマンドを実行して、SELinux が enforcing モードで実行していることを確認します。~]$
getenforce
EnforcingSELinux が enforcing モードで実行している場合は、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 postmasterpostgresql
プロセスに関連する SELinux コンテキストはsystem_u:system_r:postgresql_t:s0
です。このコンテキストの最後から 2 番目の部分、postgresql_t
がタイプになります。タイプは、プロセスのドメインやファイルのタイプを定義します。この例の場合、postgresql
プロセスはpostgresql_t
ドメイン内で実行しています。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。