第10章 MySQL
MySQL プロジェクトページより抜粋:
原文: "The MySQL® database has become the world's most popular open source database because of its consistent fast performance, high reliability and ease of use. It's used on every continent -- Yes, even Antarctica! -- by individual Web developers as well as many of the world's largest and fastest-growing organizations to save time and money powering their high-volume Web sites, business-critical systems and packaged software -- including industry leaders such as Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube, and Zappos.com." (訳文: 安定した高速パフォーマンス、高い信頼性、 そしてその使いやすさで、 MySQL® データベースは世界でもっともポピュラーなオープンソースのデータベースとなりました。すべての大陸で (南極大陸をも含め!)、web 開発者そして急速な成長を遂げている世界でも有数の企業の多くにより (Yahoo、Alcatel-Lucent、Google、Nokia、YouTube、Zappos.com など) 、時間的、金銭的な効率性を高めながら大量の web サイト、ビジネスに不可欠なシステム、パッケージ化されたソフトウェアなどを供給するために利用されています。)
Red Hat Enterprise Linux では、 MySQL は mysql-server パッケージで提供されます。
rpm -q mysql-server
を実行して、 mysql-server パッケージがインストールされているか確認してください。 インストールされていない場合は、 root ユーザーで次のコマンドを実行してインストールを行ないます。
yum install mysql-server
10.1. MySQL と SELinux
MySQL を有効にすると、 デフォルトで制限のあるサービスとして実行されます。 制限のあるプロセスはそれ自体のドメイン内で実行され、 他の制限のあるプロセスとは分離されます。 制限のあるプロセスが攻撃を受けると、 SELinux ポリシー設定に応じて、 攻撃側がリソースにアクセスして加えることができる被害は限定されます。 以下に、 MySQL 自体のドメイン内で実行している MySQL プロセスの例を示します。 ここでは mysql パッケージがインストールされていることを前提としています。
getenforce
を実行して、 SELinux が enforcing モードで実行していることを確認します。$ getenforce Enforcing
SELinux が enforcing モードで実行している場合は、getenforce
コマンドを実行するとEnforcing
が返されます。- root ユーザーで
service mysqld start
を実行し、mysqld
を起動します。# service mysqld start Initializing MySQL database: Installing MySQL system tables... [ OK ] Starting MySQL: [ OK ]
ps -eZ | grep mysqld
を実行し、mysqld
プロセスを表示させます。$ ps -eZ | grep mysqld unconfined_u:system_r:mysqld_safe_t:s0 6035 pts/1 00:00:00 mysqld_safe unconfined_u:system_r:mysqld_t:s0 6123 pts/1 00:00:00 mysqld
mysqld
プロセスに関連する SELinux コンテキストはunconfined_u:system_r:mysqld_t:s0
です。 コンテキストの最後から 2 番目の部分、mysqld_t
がタイプになります。 プロセスのドメインやファイルのタイプを定義するのがタイプです。 この例の場合、mysqld
プロセスはmysqld_t
ドメイン内で実行しています。