はじめに
以前の記事で紹介したサーバーカーネルとデスクトップカーネルの比較は、実は完全には終わっていませんでした。そこで、本稿では以前の記事を完結させ、さらにUbuntuサーバーに含まれているサービスと、いくつかの興味ぶかい問題点、適している用途について説明します。Ubuntuは結局のところCanonicalの高性能サーバーを稼働させるためのものなのか、それとも本当に役に立つものなのかといった点を検証していきます。
CPUファミリ
サーバーカーネルはCONFIG_M686=yを使用し、デスクトップカーネルはCONFIG_M586=yを使用します。これは、サーバーカーネルはPentium Pro命令セット用に最適化されており、デスクトップカーネルは586および686 CPUファミリ全体が対象であることを意味します。一般的な486カーネルであっても最新のコンピュータ上で動作するため、このことに大きな意味はありません。カーネルをコンパイルする場合、実際にパフォーマンスを向上するには、CPUに適したCPUオプションを選択します。これにより、CPUの命令セットが完全にサポートされます。
リークがあるIPC名前空間
仮想化の大流行を迎えるまでは、カーネルでは、あらゆる場面でプロセス間通信(IPC)オブジェクト(共有メモリセグメント、メッセージキュー、セマフォ)の単一セットが使用されていました。しかし、仮想環境では、各自のIPCを各自のコンテナに制限する必要があります。どこででもリークさせるわけにはいきません。そこで、IPC名前空間、つまり仮想IPCが作り出されました。これは、サーバーカーネルで有効であり(CONFIG_IPC_NS=y、CONFIG_UTS_NS=y)、デスクトップカーネルでは有効ではありません。このことは、デスクトップカーネルにおける仮想環境ではリークが発生し、安全でないことを意味するのでしょうか。どうもそのようです。おそらく誰か優秀な人が詳しく説明してくれることでしょう。
注目すべき最後の相違は、サーバーカーネルでは複数のIPv6ルーティングテーブルがサポートされますが、デスクトップカーネルではサポートされないことです。
付属パッケージ(確認できたもの)
「Ubuntu Server Edition」のページには、次のような記述があります。
約15分で...LAMP(Linux、Apache、MySQL、PHP)サーバーが起動し、使用できる状態になります。これはUbuntu Server Editionだけの機能であり、インストール時に有効です。
実際には、これはUbuntu Server Editionに限った機能ではありません。さまざまな既成のLinux LAMPスタックがあり、たとえばXAMPP for Linuxは非常に包括的で多機能なLAMPサーバーです。同じページでは、ディスクレス方式の優秀なシンクライアントサーバーであるLinux Terminal Serverのすばらしさについても強調しています。しかし、どういうわけかこれはUbuntuサーバーには含まれていません。
私は、リリースノートまたはそれに類するものでパッケージリストを確認しようと考えましたが、どこにも見つけることができませんでした。それどころか、Ubuntuサーバーに付属するものの詳細な説明すら見つかりませんでした。そこで、テストシステムにUbuntuサーバーをインストールし、すべてのパッケージグループをインストールしてみました。そして、dpkg -lを実行して完全なパッケージリストを作成しました。Ubuntuサーバーにはコンパクトな優れた355のパッケージがあり、すべてを選択すると899 MBになります。
また、Ubuntuサーバーには、2.6.22-14カーネル、Apache 2.2.4、MySQL 5.0、PostgreSQL 8.2、PHP 5.2、Perl 5.8、Python 2.5から成るLAMPスタックが含まれることがわかりました。つまり、LAMPにはいくつかのオプションがあり、データベースとしてはMySQLまたはPostgreSQLを選択でき、スクリプトとしてはPHP、Perl、またはPythonを選択できます。
不可解な誇大広告はさておき、UbuntuサーバーではSambaを利用してプラットフォーム間のネットワーク認証、ファイル共有、プリンタ共有を実現できます。ntfs-3gを使用して、Windows NTFSファイルシステムへの読み取り/書き込みアクセスさえ可能です。また、優れたSMTP/POP3/IMAPメールサーバーであるPostfixとDovecotがあり、印刷にはCUPS、ネームサービスにはBINDを使用でき、AppArmorでセキュリティを強化できます。イーサネット、ダイヤルアップ、ワイヤレスをサポートするネットワーキングパッケージもほどほどに揃っており、一般的なネットワーキングユーティリティも基本的に揃っています。シリアルコンソールもサポートしていますが、Ubuntuでは旧式のSys-V initではなくUpstart initシステムが使用されているため、/etc/inittabではなく/etc/event.d/ ttyS*で構成されます。
インストール
インストールの最中は、1つずつ質問に応答することが求められます。これは、最初にすべての質問を行い、後は席を離れてもかまわないUbuntuデスクトップの場合とは異なります。しかし、インストールは短時間で終わるので、それほど問題ではありません。
MySQLをインストールすると、既定のMySQLパスワードを変更するかどうかについて確認を求められます。既定のパスワードの内容は表示されず、新しいパスワードを入力する機会が1回与えられるだけなので、あらかじめパスワードをきちんと考えておく方がよいでしょう。
インストーラはDHCPサーバーを参照し、静的IPアドレスを明示的に設定する機会は与えられません。できれば、静的アドレスを後で設定するのではなく、インストール中に静的アドレスを設定するオプションがほしかったところです。
消えたsudoユーザーとrootユーザー
私が実際にインストールしたときには、非特権ユーザーを1人だけ作成するよう要求されました(これはUbuntuの標準です)。通常、このユーザーはすべての管理権限を持つsudoユーザーになるはずですが、そうはなりませんでした。私のユーザーは普通の非特権ユーザーで、/etc/sudoersにはいませんでした。そのため、サーバーでどうすることもできない状態でした。レスキューCDでブートし、rootパスワードをリセットして修正するまで、その状態が続きました。
いずれにしても、「本当」のrootユーザーが常に必要です。sudoでは動作しないコマンドもあります。ext3ファイルシステムはrootユーザー用に5%を確保しているため、ユーザープロセスがおかしくなってファイルシステムを占有した場合でも、rootユーザーが救ってくれます。
セキュリティ
Debianと同じように、Ubuntuも、インストール直後にサービスを開始します(rootとしてnetstat -untapを実行すると、開いているポートを確認できます)。つまり、導入後すぐに動き出します。しかし個人的には、アクセスコントロールを設定して、サービスを開始する準備が整うまで、何も始まらない方がよかったのにと思います。計画どおりの設定ができるまで、十分な注意が必要です。
AppArmorは、SELinuxよりも現実的だと考えられています。残念ながら、既定のAppArmor構成についての説明は一切なく、その変更方法についての説明もありません。
もちろん、Linuxの場合と同様、iptablesでパケットフィルタリングを実行できます。
Ubuntuは、Debian Testing、Unstable、そしてExperimentalのパッケージも利用しています。これらは、Debianセキュリティチームでサポートされていないものです。これに加えて、既定のリポジトリ(/etc/apt/source.list)にあるUniverseとMultiverseには、次の恐ろしいメッセージが記載されています。
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team..software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team.....
まとめ
長いレビューとなったので、総括しましょう。最初は、Ubuntuの利点です。インストールは1枚のCDで簡単に行うことができます。コンパクトで必要最小限のパッケージが用意されており、余分なものは含まれていません。あちこちを調べて削除する必要があるものを判断するより、必要なものを追加する方が簡単であるため、私にとってこれは望ましい状態です。
Ubuntuサーバーに過度な期待を抱き、Ubuntuデスクトップのように簡単だと思っているユーザーがいるようですが、それは違います。親切なメッセージが表示されることはなく、自分が行っている操作は自分で把握する必要があります。Ubuntuサーバーは、X WindowやGUIツールなどのない、本物のサーバーです。なお、リモート管理を通じてGUIを使用することは可能です。たとえば、Webminは、高品質で人気のある、サーバー用のリモートGUI管理ツールです。
次に、Ubuntuの欠点です。Ubuntu固有のカスタマイズに関するドキュメントが不足しています。ダウンロード前に、含まれている内容を確認するのは困難です。テスト段階のパッケージバージョンはサーバーにとって危険であり、セキュリティに問題があるAppArmorのようなものをシステムに配置することには疑問を感じます。慎重にパッケージを選択し、セキュリティパッチに十分配慮しても、LAMPセキュリティは非常に困難です。品質制御には、何らかの品質制御が必要なようです。
Ubuntuの背後にある資金援助、リソース、商用願望といったものを考えれば、Ubuntuには卓越した品質、セキュリティ、および安定性と、すべてに関する優れたドキュメントを期待したいところです。Debianは、資金援助をほとんど受けずにそのすべてを成し遂げました。DebianとFedoraは、リリースノートのあるべき姿を示しています。
Ubuntuサーバーの基本コンセプトはすばらしいものです。十分な配慮の下に選ばれた軽量のパッケージ群は起動も実行も高速で、必要に応じて簡単に追加できます。UbuntuサーバーをLANサーバーやトレーニングサーバーとして使用するのは有用ですが、インターネットに開放するのは問題だと考えます。



























