Plesk12から実装されている-chrootについて

2016年1月12日
ブログ

こんにちは、ぷれつくのすしぱくです。('A')ノ

先日、ぱくたそのサーバーを新しくしまして、CentOS7+Plesk12で運用していたところ、DNSの再起動コマンドが通らなくて困っておりました。

Pleskで定期的にDNSを再起動してリスク回避

システムのNSさんに確認したところ、-chroot の推奨が行われているとのことで、僕のように影響をうける人もいるかと思い補足を書いてみました。
以下、NSさんからのご連絡をまとめたものです。

 

-chrootで変わるPlesk管理


-chroot とは、

"chroot - Wikipedia ”chrootとは、UNIXオペレーティングシステムにおいて、現在のプロセスとその子プロセス群に対してルートディレクトリを変更する操作である。ルートディレクトリを別のディレクトリに変更されたプロセスは、その範囲外のファイルにはアクセスできなくなるため、この操作をchroot監獄などとも呼ぶ。"chroot" は chroot(2) システムコールおよび chroot(8) コマンドを意味する。"
 

ドキュメントルートとは、各ドメイン(ホスト)のドキュメント(コンテンツ)を入れていくルートに当たるディレクトリのことを指します。このドキュメントルートを分けることで1つのサーバーで複数のドキュメント(WEBサイト)を表示できるように作ってあり、WEBサーバーは先んじでchroot(チャンネルの切り替え)が整っているのですね。

WEBサーバーだと、まず、ドキュメントルートをchroot環境化したことで、ホスト毎のルートディレクトリ環境を実現できるんですね。それ以外に、Pleskでは、そのような環境を整備することでより柔軟な設定ができるようになっています。

例えば、PHP.iniの設定をドメインごとにいじったり、httpd.confや、nginx.confもホスト毎にいじれますよね。これらの設定ファイルは、全部 /var/www/vhosts/ドメイン名/conf/ いかに収容されてて、ほかドメインのディレクトリ環境からは覗けないようにしてあるんですね。

Plesk11あたりから結構小さなところまで管理されるようになって、革命的でした。
すべてドメイン単位で個別に指定、設定できるようになりましたからね。10までのPleskでは、PHPの設定は1つしか持てず、替えるには、.htaccessや、ちょっと特殊なことをしなくては、ドメインごとの設定は不可能でした。 11からドメインごとにPHPもいじれるようになって、これはホスティング業者にしたら、オリジナルでコンパネ作る意味をなくすほど革命的なんですね。12では、サブドメイン単位でもいじれるようなったので、多くのホスティング業者が衝撃を受けたわけです。

WEBにおけるchrootの代表的な例でいえばこのような形です。


それでは、さきほどコマンドが違うと書かれていた、DNSサーバーを例にしてみましょう。 今までchrootがない環境下では、設定ファイルは /etc/named.conf これは、今でもありますが、実はその中には何も記述されてないはずです。 実際のドメインの設定などは、今までは、/etc/named/named.ドメイン名 というファイルにありました。 これがダメということはありません。namedを動かすとき、namedサーバーが動いているユーザで、/etcディレクトリを見るっていう行為につながるので、セキュリティ的にどうなのかという観点になるのです。

もっと踏み込んでいくと、namedは、おそらく、namedという一般ユーザで動いています。

ということは、もし、何かの拍子にnamedユーザが乗っ取られたら /etc ディレクトリにあるファイルは見放題になる可能性があるのです。なぜなら、一般ユーザで、閲覧できる権限を与えておかないと、namedユーザ が/etcにアクセスできないということになるからですね。

それでは、確認してみましょう。 /etcには、何がありますか?

結構大事なファイルありますよね。 たとえば、SSHの設定ファイルとか。 rootのパスワードファイル、Pleskのadminのパスワードファイル(こちらなど暗号化されてもいない)がそのまま置いてあります。一般ユーザの何かが、なんかの拍子に乗っ取られたら、それこそ終わりなわけです。

そういうことがあり得るので、chrootの登場です。本来なら、そこに存在しているのですが、chroot環境では、そのサーバーだけの仮想的なディレクトリ環境を作ってそこをルートディレクトリとみなして設定します。


/var/named/ ここをchrootと指定した場合、namedの中でいう / ルートディレクトリは、 /var/named/ ということになり、今までの、/etc/named.confは、/var/named/etc/named.conf に存在することになります。
上記のように起動停止スクリプトも、今後はちょっと危ないからchroot環境が採用されたのが理由です。 おそらくこの流れでは、この先Pleskも積極的にchroot環境を取り入れてきそうなので、根本としてのchrootは理解しておかれた方がいいと思います。ただし、何かが変わったわけではないので、焦らなくても大丈夫です。namedから見たらどこまで行っても/var/named というディレクトリがシステムルートディレクトリなので、井の中の蛙状態、まさに監獄。

 


新着・更新情報
ブログ/お知らせ
Pleskについて
Pleskの便利な機能
Pleskを導入しよう
DNSを理解しよう
Webサイトの設定
サイトをチェックしよう
ターミナルを使おう
メールの設定をしよう
データベースを使おう

Moveble Typeの導入

便利な機能、テクニック

インフォメーション


Pletkの管理人ことすしぱくです。PAKUTASO/ぱくたそ無料写真サイトなんかを運営しています。