Linux-VServerのインストール方法Linux Hacks(1/2 ページ)

BSDのjail機構とほぼ同様の機能をLinux上で実現するLinux-VServerを紹介しよう。システムのリソースをグループ化し、プロセスは所属するグループ内で動作するためサービス運用妨害攻撃に対する耐性を高めることができる。

» 2006年06月27日 09時33分 公開
[Sukrit-Dhandhania,Open Tech Press]
SourceForge.JP Magazine

 BSDのjail機構をご存じだろうか。リソースをグループ化し、グループ内外で動作するサービス間に論理的な障壁を作る仕組みである。これを利用すると、セキュリティを改善することができる。Linuxの場合はLinux-VServerというアプリケーションがほぼ同様の機能を提供している。システムのリソース――CPU、メモリ、ハードディスク、ネットワーク――をグループ化、プロセスは所属するグループ内で動作するためサービス運用妨害攻撃に対する耐性が高くなる。こうした理由も手伝って、ホスティング企業の多くが仮想サーバを導入している。

 Linux-VServerを使うと、1台のコンピュータ上に複数の仮想Linuxサーバ(VServer)を立ち上げることができる。VServerは通常の Linuxサーバと同じように動作するが、オーバーヘッドは少なく、相互に独立しながら同時に動くため、仮想プライベートサーバやセキュリティ強化領域として使える。オペレーティング・システム・レベルでの仮想化であるため、リソースをグループ化し分離できるからである。SSH、電子メール、 Web、データベースなどのサービスは、VServer上で、そのまま修正なしに通常通り起動することができる。従って、メールサーバとWebサーバを同じマシン上で動作させても、Webサーバを生かしたまま、メールサーバをリブートすることができる。固有のIPアドレス、ハードドライブスペース、ユーザー・アカウント・データベース、rootパスワードを持ち、VServer同士が干渉することはない。

 仮想サーバは、ホストシステムとゲストシステムという2種類のシステムから構成される。ホストシステムは仮想サーバが載っている物理的なサーバであり、ゲストシステムは、ホストOSの上に載って動作する仮想サーバ・オペレーティング・システムである。

基本システムの準備

 ここでは、CentOSバージョン4.2を使って手順を説明することにする。Linux 2.6が動作するLinuxディストリビューションであれば、どれでも大差ないはずだ。FedoraUbuntuの場合は、Web上に若干の解説がある。

 まず、CentOS 4.2を新規にインストールする。ホストシステムは小さければ小さいほどよく、通常は、SSHとiptablesがあれば十分だ。

 CentOS 4.2の1枚目のCDを使ってシステムをブートする。Linuxをインストールした経験があるなら、このインストールは比較的簡単だろう。大きな /vserversパーティションを作り、パッケージはDevelopment Packagesを選択すること。ほとんどのサービスはゲストシステムで動かすことになるため、このシステムに多くはいらない。インストールが完了したら、インターネットの接続といったサービスが正常に動作していることを確認する。

 次に、rootでログインし、upgradeして、セキュリティ更新を含むすべてのパッケージを最新バージョンに更新する。

yum -y upgrade


 更新が終わったらSELinuxを無効にする。つまり、/etc/selinux/configファイル中のSELINUXエントリを次のように変更する。

SELINUX=disabled


 次に、ホストシステムで運用するサービスを最小限にする。理由は2つ。1つは、使いもしないサービスを動かしてCPUサイクルを浪費しないため。もう1つは、動作中のサービスが少ないほど、セキュリティが脆弱な個所も少なくなるからだ。

 現在動作中のサービスを調べるには、まずrunレベルを知る必要がある。

# runlevel


 rootでログインしているので、ほとんどの場合、3という数字が戻るはずだ。ブート時に実行されたサービスは、次のコマンドで分かる。

# chkconfig --list | grep "3: on"


 どのパッケージかを知るには、パッケージごとに次のコマンドを実行する。

# rpm -qi package_name


 不要なサービスがあった場合は、ntsysvツールを使ってブート時に起動されないようにする。リブートして、この設定を適用する。

 例えば、このサーバでは次のパッケージは不要だろう。

パッケージ 説明
autofs ファイルシステムを自動的にマウントするデーモン
apmd Advanced Power Managementデーモンを制御するプログラム。現在発売されているほとんどのノートPCに搭載されているユーティリティ
pcmcia どれかのパッケージに含まれているモジュール
cups Common Unix Printing System
xinetd inetdのセキュリティ強化版
gpm テキストベースのLinuxアプリケーションのためのマウスサポート
kudzu ブート時に起動されるハードウェアアナライザで、ハードウェアの追加と削除を監視する
iptables ファイアウォール。セットアップ時にインストールを省略できるが、実際にはインストールされ、単にconfigファイルが空になるだけ
anacron 指定日数間隔でコマンドを実行する定期コマンドスケジューラ。cronとは異なり、途中でシステムの運転が止まってもよい
isdn ISDN接続をしなければ不要
nfs TCP/IPネットワーク上でファイルを共有するサーバ機能
netfs すべてのネットワーク・ファイル・システムとSambaマウントポイントをマウントしたりアンマウントしたりする。リモート・ファイル・システムを自動マウントする必要がなければ不要
nfslock TCP/IPネットワーク上でファイルを共有するサーバ機能
atd atコマンドの制御。コマンドのスケジュールで使用
rpcgssd / rpcsvcgssd / rpcidmapd ネットワーク・ファイル・システムのデーモン。NFSを使わないのであれば不要
cpuspeed 必要とされる処理能力に応じてCPUの速度を動的に変更する。ノートPCでなければ不要
mdmonitor ソフトウェアRAIDの管理。ここでは、ハードウェアRAIDを使用
HALdaemon / DBUS デスクトップのためのサービス

関連キーワード

カーネル | Linux | 運用管理 | 仮想化


       1|2 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ