Live CD起動のサーバ向け軽量ディストリビューション「Devil-Linux」試用記

  Devil-Linux は、Live CD用のLinuxディストリビューションだ。Devil(悪魔)という恐ろしげな名前とは裏腹に、サーバ向けの様々なニーズを満たす機能を満載している。元々はルータ/ファイアウォール用ディストリビューションとして開発されていたが、次第に機能拡張が進んだ。現在では、サーバに求められるサービスのほとんどを装備しており、LDAPサーバ、VPNサーバ、メールサーバ、ファイルサーバなどの用途で利用できる。

 ドキュメントにも説明があるように、Devil-Linuxは、CD-ROMまたはDVD-ROMから直接起動して使用する。ハードディスクへのインストールは一切不要だ。設定ファイルはフロッピーディスクかUSBドライブに保存でき、再起動時には自動的に読み込まれる。Live CDは読み取り専用なので、ルートキットなどの不正なソフトウェアをディストリビューションに組み込むことは不可能だ。

 Devil-LinuxはLinux From Scratch(LFS)のビルドシステムを利用しており、カスタマイズしやすい。最新バージョンは1.2.15だ。2.4.36.6という古い系統のカーネルを使っているが、ルータ、ファイアウォール、サーバの各サービスはおおむね最新版だ。ファイアウォールは、一般的なiptablesとNetfilterを利用し、ルーティング・プロトコルは、RIP(Routing Information Protocol)、BGP(Border Gateway Protocol)、OSPF(Open Shortest Path First)などをオープンソースのサービスでサポートしている。このほか、IPv6(Internet Protocol version 6)用のサービスや、ファイアウォールのポリシー設定を支援するFirewall Builderも装備。さらに、セキュリティ強化のために、ディストリビューションのカーネルを保護するgrsecurityパッチも利用している。

 Devil-Linuxは、ルータ/ファイアウォール機能に加えて、サーバ機能向けのサービスとして、ファイルサーバのSamba、HTTPサーバのApache、メールサーバのPostfixなどを装備している。Devil-Linuxは軽量さを重視しているため、GUIやX Window Systemは搭載していないが、設定の助けとなるグラフィカル・スクリプトがあるし、各プログラムのmanページも役に立つので、あまり心配はいらない。

 CD-ROMからの起動のほか、ブート可能なUSBフラッシュ・ドライブにDevil-Linuxをインストールすることも可能だ。インストールには、Devil-Linuxのダウンロード・ファイルの中にあるinstall-on-usbというスクリプトを使用する。

 ハードディスクは、インストール用としては不要だが、ファイルサーバのストレージなど、インストール以外の用途で使用することは可能だ。Devil-Linuxは軽量設計のため、ハードウェア要件はかなり低い。最小構成なら、Intel 486プロセッサ、32MBのRAM、IDEまたはSCSIのCD-ROMドライブ、フロッピーディスク・ドライブまたはUSBフラッシュ・ドライブ、10/100MbpsのNIC(ネットワーク・インタフェース・カード)があればいい。実際は、稼動するサーバ・アプリケーションによって要件は変わってくるが、基本的なルータ/ファイアウォールとしての利用であれば、最小要件でも十分に事足りる。したがって、古くなったマシンの再利用も可能だ。

起動から設定まで

devil1_thumb.png
Devil-Linuxのログイン・プロンプト

 Devil-Linuxを使用するには、まず最新バージョンの.tarパッケージ(220MB)をダウンロードし、フォルダに解凍する。この中には、ディストリビューションのISOイメージ、定義済みの設定ファイルとスクリプト、HTMLヘルプ・ドキュメントが入っている。このISOイメージをCDかDVDに焼けば、そのまま起動できる。私の場合は、仮想マシン環境で試用してみた。CPUは2.6GHzで、512MBのメモリと10GBのハードディスク領域を割り当てている。設定の保存は、フロッピーディスクとUSBドライブの両方で試してみることにした。

 起動メニューはシンプルで、画面の解像度の選択と、メモリチェックツールMemtest86+で最初にメモリをテストするかどうかの選択しかない。起動処理の中で、フロッピーディスクとUSBドライブの存在が検出される。いずれかのドライブに設定ファイルがある場合はその内容が自動的に読み込まれ、ない場合はデフォルトの設定となる。どちらのドライブも見つからない場合は、設定ファイルの保存メディアなしで処理を継続してよいかどうかを問い合わせるメッセージが表示される。

 起動処理が完了すると、ログイン・プロンプトが表示される。ユーザ名"root"、パスワードなしでコンソールに入る。

devil2_thumb.png
Devil-Linuxのsetupスクリプト

 私は最初の起動時に、rootのパスワード変更とネットワークの設定を行い、必要なルータ/ファイアウォール、ゲートウェイ、サーバのサービス(Samba、MySQL、Snort、IPSEC VPN、OpenVPNなど)を起動した。設定を簡単に行うなら、setupコマンドによるグラフィカルな設定を利用できる。その中では、rootのパスワード設定と、ネットワークの詳細情報(ホスト名、IPアドレス、ドメインなど)の変更を行える。NICのセットアップでは、適切なNICモジュールを自分で一覧から選択しないと、NICが正しく読み込まれない。この点は、NICを自動で検出するように改良してもらえたらと思う。私が試用した環境には、WAN用とLAN用の2つのNICがある。私は両方に静的アドレスを割り当て、LANのNICでDHCP(Dynamic Host Configuration Protocol)サービスを有効にした。さらに、DHCPサーバの設定として、DHCPで割り当てるIPアドレスの範囲、DNSサーバ、ドメインなどを指定した。

 Devil-Linuxでは、ADSL(Asymmetric Digital Subscriber Line)接続、IPSec(Internet Protocol Security)、VPN(Virtual Private Network)、PPTP(Point-to-Point Tunneling Protocol)接続など、豊富なサービスを利用できる。さらに、Snortなどの侵入検出プログラム、SpamAssassinなどのスパムフィルタ、Nagiosなどのネットワーク監視ツール、LDAP(Lightweight Directory Access Protocol)、MySQLなど、サーバ関連のツールやサービスも多種多様だ。ハードウェア要件を低くし、かつセキュリティの脆弱性を減らすという観点から考えて、必要なサービスだけを取捨選択して使用するのがよいだろう。稼動するサービスが増えるほど、開いているポートの数が増え、脆弱性も増すことになるからだ。サービスを選択したら、メインの設定メニューに戻り、フロッピーディスクかUSBディスクに設定を保存する。

 私の場合は、まずファイアウォール・サービスのiptablesとNetfilter、およびFirewall Builderを有効にした。ルーティング・プロトコルでは、RIP、OSPF、BGPの各サービスを選択。さらに、DHCPサービス、Snort、ntop、MRTG(Multi Router Traffic Grapher)、SSH(Secure Shell)、SSL(Secure Sockets Layer)、およびSambaも選択した。Sambaを有効にしたのは、設定ファイルや、ディストリビューション内で利用したいその他のパッケージを、Devil-Linuxのローカル・ハードディスクに簡単に移せるようにするためだ。Sambaの活用法としては、ディストリビューション内にBitTorrentクライアントをインストールし、Webインタフェースを介してリモートから管理して利用するという方法もある。その他、ディストリビューションのセットアップに関して疑問がある場合は、オンラインのドキュメントを参照してほしい。

 私はルータとファイアウォールの主な機能の動作確認のために、OpenVPNを使ったVPN機能を試してみた。VPNで接続してみたところ、きちんとつながり、VPNトンネルの両側のネットワークが通信できた。これで、ルーティングとVPNの両方が動作していることがわかった。さらに、別のネットワーク・セグメントに属する外部のコンピュータからアクセスしてみたところ、プライベート・ネットワークには接続できなかった。ファイアウォールのルールで、ネットワーク外からのアクセスを認めないよう定義していたからだ。Firewall Builderによるiptablesの設定は正常に動作していた。また、ntopとMRTGで、動作状況の基本的な監視も行えた。

感想

 Devil-Linuxには、WLANのサポート、ネットワーク監視ツール、VPN接続など、様々な機能が豊富に搭載されている。だが、設定スクリプトなしでの設定作業は厄介だ。残念なことに、すぐに使える設定スクリプトはsetupしかなく、ネットワークおよびファイアウォールの一部設定とサービスの有効化しか実行できない。大半のサービスは、設定ファイルを手動で編集して設定する必要がある。サービス自体にもともとスクリプトが用意されているものなら、多少は楽に設定できるかもしれないが、Devil-Linux自身が用意したサービス設定用スクリプトは見当たらなかった。ドキュメントにも、個別のサービス用のスクリプトについては言及がない。使用経験があるサービスを使う目的であれば、Devil-Linuxはニーズにうまく合うはずだ。低スペックのPCを生かして、ルータやファイアウォールを立ち上げたり、BitTorrentを利用した自動ダウンロード機能を導入したり、ファイルの保存に使ったり、Sambaを利用してファイルに簡単にアクセスしたりできる。

 全体としては、Devil-Linuxは様々な用途で役立ちそうだ。ただしそれには、コマンドライン環境でのサービスの使い方や設定方法を理解できることが前提となる。設定ファイルの編集やコマンドの実行を避けたいのなら、GUI環境に対応したディストリビューションを検討する方がよいだろう。たとえば、近くGUIが搭載されるVyatta Community Edition 4などだ。

Linux.com 原文(2008年9月26日)