9) オープンソース導入事例2
第9回は、オープンソース導入事例の2回目として、サーバー群の構築についてご紹介します。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供
サーバー群の構築
インターネット・サービス
インターネット向けサービスでのDNS、mail serverに関しては、ある程度の専門的前提知識や詳細な解説が必要となるため、Webサーバー構築に焦点を絞り、関連サービスを含めたインストール、アップデート、セキュリティー、環境設定を中心に解説します。
OSのインストール
OSインストールは、標準インストールを選択し、ウィザードに従って作業を進めます。
但し、インストール先設定を「TFDisk」に変更し、パーティションタイプは、最新ディストリビューションでの標準ファイルシステムである「ext3」を指定します。
ext3を採用する理由は、ext2ファイルシステムに対してジャーナリング機能が追加され、マシントラブルからの復旧に要する時間が短いとされているためです。
また、構築サーバー用途別に、システム領域破損時等からの復旧を想定した適切なパーティション設定iを行います。
容量80GBのRAID5にて構成されるHDD群を搭載するWebサーバーのパーティション設定例を表9.1.に示します。
まず、起動ファイル領域の「/boot」を設置します。swap領域は経験上、複数に分割することでパフォーマンスが向上するため2個所設定しています。
引き続き、アプリケーションを追加インストールする領域としての「/usr」、システムのテンポラリー領域としての「/tmp」、市販パッケージのインストール領域としての「/opt」、ユーザー利用領域としての「/home」、そして、Webホームページ、CGI、データベース、各種データ、添付ファイル等々の保存領域としての「/var」を設定します。
また、各領域の確保容量は同表に示す通りです。

表9.1.パーティション設定例
インストール・タイプは「インターネットサーバー」とし、ユーザー設定はデフォルトで設定されるrootユーザーの他、ネットワーク経由でのシステム管理を行うための管理ユーザー・アカウントを設定します。
また、セキュリティー・レベル設定は「カスタム」を選択し、「httpd, proftpd, sshd, webmin」の各サービスを指定してインストール作業を終了します。
SSHの設定
SSH(Secure Shell)iiは,TelnetをはじめFTP、 SMTP、POP3を暗号化し、アプリケーション層レベルで動作するプロトコルであり、ホストの認証、パスフレーズによる暗号化、通信の暗号化、ポートフォワーディング等、サーバーを管理・運用してゆく上で、必須な通信手段です。
SSH設定ファイルである「/etc/ssh/sshd_config」中のListenAddressは、「ListenAddress 192.168.0.100」のようにclient PCのIPアドレスを設定した後、「service sshd restart」により設定を有効にします。
但し、セグメント単位でのアクセス制御を行なう場合には、TCP Wapperを利用します。
Webminの設定
一般にLinuxのシステム環境設定は、「/etc」以下の各種テキスト設定ファイルを編集することで行われます。
これらのシステム環境設定は、各種設定ファイルを直接編集することなく,GUIを用いて行うことのできるパッケージとしてWebminiiiが提供され、システム構築・設定・運用管理iv負荷を軽減できる様になりました。
そこで、システム管理者がイントラネット上の管理用PCからWebminを利用できる環境を設定します。
設定手順は、X windowにてWebブラウザーを起動し、URLに「https://localhost:10000」と入力することで、サーバー・ローカル上にWebminが起動されます。
次に、「IPアドレスの制御」を選択し、 IPアドレスを設定することで当該client PCの遠隔操作が許可vされます。
設定終了後、「Log Out」を選択し、設定を有効にします。
その後、設定された管理者PCの Webブラウザーにて、URLに「https://(サーバIPアドレス):10000」を入力することでWebminの利用が可能となります。
FTPの設定
引き続き、ホスト間ファイル転送のためのTCP/IPアプリケーションであるFTP(File Transfer Protocol)を設定します。
「/etc/proftpd/proftpd.conf」を以下の通り編集した後、「service proftpd restart」にて再起動します。

但し、設定するIPアドレスは各々のネットワーク環境に従い、適切に設定します。この例は、192.168.0.10のIPアドレスを持つclient接続を許可しています。
FTPは、通信を暗号化しないため、セキュリティー上、SSHプロトコルによるSCP、SFTP暗号化通信の活用を推奨します。Windows PCからftpによる暗号化通信を行うには、WinSCPviを利用します。
セキュリティー設定
インターネット・サービスに際し、クラッカー防御を万全にする必要があります。攻撃の対象の70%が80ポートを使うHTTPプロトコルであると言われvii、SQL injection、 cross site scripting、 parameter falsify、 buffer overflowからシステムを防御する仕組みを構築する必要があります。
なお、この具体的な設定方法は、システム環境設定方法にて解説します。
ここではセキュリティーホールを塞ぐための修正プログラムを適用viiiしますix。引き続き、不要なサービスの停止設定、「xinetd,TCP Wrapper」によるアクセス制御、「iptables」によるIPパケット・フィルタリングの手段を用いて、必要なパケット以外は全てを遮断する設定を行います。
Webサーバーの構築
以上の環境設定の下で、Webサーバーを構築xします。
Webサービスは、httpd起動設定を行うことで自動起動されます。一方、「service」コマンドを用いた手動による制御も可能です。
ネットワーク上のclient PCへの閲覧・検索・情報入力・通信等々のサービスを提供するめには、公開すべき情報をWebサーバー上の「/var/www/html/」ドキュメントルートに、CGIスクリプトを「/var/www/cgi-bin/」にそれぞれ設置することで可能となります。
さらに、公開情報の改竄やサーバー奪取操作を防止するため、あらかじめWeb管理ユーザー「webadmin」を設置した上で、下記の設定を行います。

この設定により、Web管理ユーザーにフルアクセス権が与えられ、それ以外は、htmlファイルの読出し権とcgiスクリプトの実行権のみが与えられます。
次回は、オープンソース導入事例の3回目として、イントラネット・サービスについて取り上げます。
- Red Hat Linux 9インストールガイド. “システムパーティションの設定”. (online) available from <http://www.jp.redhat.com/manual/Doc9/rhl-ig-x86-ja-9/s1-diskpartitioning.html>, (accessed 2003-12-29).
- 宗近龍一郎. “sshでセキュアネットワーク構築”. (online), available from <http://211.4.250.170/flinux/special/ssh/ssh.html>, (accessed 2003-12-29).
- 千葉,福井. webmin大全. ローカス. p.13-47.
- Jamie Cameron.”webmin”. (online), available from <http://www.webmin.com/>, (accessed 2003-12-29).
- 木田. “Webminのセキュリティレベルを上げたい~SSLアクセス&IPアドレス制限~”. (online), available from <http://www.itmedia.co.jp/help/tips/linux/l0454.html>, (accessed 2004-1-9).
- 田淵.”WinSCP”. (online) available from <http://www.tab2.jp/~winscp/>,(accessed 2003-12-29).
- “ポート80はこう守れ”,Nikkei Internet Solutions, 2003.7, p.76-87.
- Turbolinux. ”turbopkgコマンドを使用するためのパッケージアップデートの方法について”. (online), available from <http://www.turbolinux.co.jp/download/zabom.html>, (accessed 2003-12-29).
- Turbolinux. “RPMパッケージのアップデート”. (online), available from <http://www.turbolinux.co.jp/knowledge/public/52.html>, (accessed 2003-12-29).
- サーバ構築研究会編著. TURBOLINUX8で作るネットワークサーバ構築ガイド. 秀和システム. p.100-123, p.496-553.


