Product SiteDocumentation Site

5.10. 一般的な chroot および suid のパラノイア

chroot はデーモンやユーザやその他のサービスを制限するための 最も強力な可能性のひとつです。対象のまわりに檻があると考えてください。 対象はここから逃げることができません (ふつうはできませんが、このような 檻がら逃げだすことを可能にする条件はいくつもあります)。もしユーザを信用 しないのであれば、そのユーザのために chroot された環境を作ることができます。 檻の中にライブラリとともに必要な実行ファイルをすべてコピーしなければ ならないので、これはディスクスペースを大量に消費するかもしれません。 たとえそのユーザが何か悪事をはたらいても、被害の範囲はその檻に限定されます。
Many services running as daemons could benefit from this sort of arrangement. The daemons that you install with your Debian distribution will not come, however, chrooted[42] per default.
This includes: name servers (such as bind), web servers (such as apache), mail servers (such as sendmail) and ftp servers (such as wu-ftpd). It is probably fair to say that the complexity of BIND is the reason why it has been exposed to a lot of attacks in recent years (see 「BIND を安全にする」).
However, Debian does provide some software that can help set up chroot environments. See 「Making chrooted environments automatically」.
Anyway, if you run any service on your system, you should consider running them as secure as possible. This includes: revoking root privileges, running in a restricted environment (such as a chroot jail) or replacing them with a more secure equivalent.
しかし、chroot はそこで動いているユーザがスーパーユーザなら 破られる可能性があることに注意してください。だから、サービスは非特権ユーザと して動かす必要があります。環境を制限することによってそのサービスが アクセスできる、世界中から読める (または実行できる) ファイルを制限して いることになります。こうしてあなたのシステムにあるローカルのセキュリティ上の 脆弱性を使った、権限の昇進の可能性を制限するわけです。この場合でも、 かしこい攻撃者がこの檻を破る方法が全くないとは言えません。安全だという 評判があるサーバプログラムだけを使うのは安全のための追加の手段としてよいです。 オープンファイルハンドルのような非常に小さなセキュリティホールでも 熟練した攻撃者によってシステムを破るのに使われる可能性があります。 結局、chroot はセキュリティ関連の道具としてではなく試験用の 道具として設計されたのです。

5.10.1. Making chrooted environments automatically

There are several programs to chroot automatically servers and services. Debian currently (accepted in May 2002) provides Wietse Venema's chrootuid in the chrootuid package, as well as compartment and makejail. These programs can be used to set up a restricted environment for executing any program (chrootuid enables you to even run it as a restricted user).
Some of these tools can be used to set up the chroot environment easily. The makejail program for example, can create and update a chroot jail with short configuration files (it provides sample configuration files for bind, apache, postgresql and mysql). It attempts to guess and install into the jail all files required by the daemon using strace, stat and Debian's package dependencies. More information at http://www.floc.net/makejail/. Jailer is a similar tool which can be retrieved from http://www.balabit.hu/downloads/jailer/ and is also available as a Debian package.


[42] It does try to run them under minimum priviledge which includes running daemons with their own users instead of having them run as root.