Comments
Description
Transcript
c00 : 2002/6/7
c00 : 2002/6/7 (15:47) c00 : 2002/6/7 (15:47) 商標 UNIX オペレーティングシステムは、The Open Group がライセンスしている米国なら びに他の国における登録商標です。 そのほか、本文で使用するシステム名、製品名は一般に各開発メーカーの登録商標です。 なお、本文中では、TM 、コピーライト表示は明記しておりません。 c00 : 2002/6/7 (15:47) 3 はじめに 本書は 1999 年に刊行された『 PC サーバ化計画 Red Hat Linux5.2』が出発点で すが、その後 Linux Magazine の特集などを経て 2000 年に初版が単行本として 刊行されました。つねにそのときどきで可能なかぎり最新のバージョンを取り上 げてきましたが、時流にあわせて今回は部分的にはすべて書き直すといった、大 きな改訂を行いました。それというのも、Linux を取り巻く環境の流れの速さに ほかなりません。 Linux 界の動きは早く、本書の前身から考えると安定版カーネルは 2.0 、2.2 系 を経て、現在は 2.4 系となっています。次期の 2.6 を見据えた開発版である 2.5 も すでにリリースされています。 開発における活発な動きと同時に Linux を取り巻く環境もずいぶんと変わりま した。大手ベンダ、特にサーバ部門での Linux サポート、Linux 対応ハードウェ アの増加など、目をみはるものがあります。 変化の大きな Linux ですが、サーバ関連のアプリケーションに関してもセキュ リティや機能向上のためのバージョンアップが継続されています。しかし、設定 (ファイル)自体の変更はそれほどではありません。最初は難解に思える部分もあ るかもしれませんが、いったんコツをつかんでしまえば、将来的なアップグレー ドに関して必要な労力はどんどん少なくなっていくはずです。 本書では大部分のディストリビューションに含まれている( あるいはデフォル トでインストールされる)一般的なサーバアプリケーションに関して、基本的な 設定方法の解説に注力しました。 ところで、多くのディストリビューションには汎用的なサーバアプリケーショ ンが収録されています。メールサーバを例にとると sendmail がインストールさ れるケースが半分程度あります。しかし、メールサーバとして sendmail が適当か というと少々疑問があります。小規模サイトでの使用や、メールサーバをはじめ て構築するといったスキルを考慮すると、Postfix や qmail という選択肢があるは ずです。 このようなポリシーや今後主流となりそうなアプリケーションを考慮し、かつ c00 : 4 2002/6/7 (15:47) はじめに 「 Linux サーバ入門」という観点も考えあわせて、最新の情報を取り上げるよう に努めました。したがって、ブートローダ GRUB 、メールサーバとして Postfix 、 FTP サーバとして ProFTPD 、Apache 2.2 、このほかサーバのハードウェア的な 情報の取得についても紹介しています。 しかしながら、利用できるアプリケーションの解は唯一ではありません。ここ で紹介するものが自分のサイトの要求に見合ったものであるかどうかをみきわめ る必要も出てくるでしょう。インターネット上に豊富に蓄積されているドキュメ ントや情報を使って、ベストフィットと思われるアプリケーションを捜してみて ください。 Linux の大きなメリットは構築しやすいということにあります。豊富な関連ド キュメント、書籍、メーリングリストなど Web 上の情報などを活用することで、 じっくりと取り組めば新しい発見があったり、問題点が解決したりするでしょう。 ところで、最近大きな問題として頻繁に取り上げられるセキュリティに関する 情報すべてを含めることは困難です。セキュリティに関する情報は拙著『 Linux セ キュリティ入門』 ( ISBN4-7561-3821-7、アスキー刊)に詳しく紹介していますの で、参考にしていただければ幸いです。 サーバのバックボーンとなる常時接続については、現時点のベストが半年後の ベストといえる状況ではなくなっています。ADSL の高速化とともに、本命とも 思われる光ファイバなどのサービスが利用できる地域が徐々に広がっています。 このような状態ですので、現状ベストソリューションと呼べるものを選択するの はむずかしいでしょう。フリーである Linux のメリットを生かしつつ、なるべく コストパフォーマンスの高い「 ベター」な環境構築を念頭におくとよいかと思い ます。 本書執筆にあたっては、特にご尽力いただいた書籍編集部の小島範幸様に感謝 いたします。 2002 年 4 月 著者 c00 : 2002/6/7 (15:47) 5 目次 はじめに ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・3 第1章 PC を本格サーバにできる Linux 11 1.1 Linux サーバ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・11 1.2 Linux とは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・12 1.3 オープンソースとしての Linux ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・13 1.4 Linux のディストリビューションパッケージ ・・・・・・・・・・・・13 1.5 ディストリビューションと本書での対応 ・・・・・・・・・・・・・・・・・・15 1.6 サーバ構築のうえでの選択肢 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・16 1.7 常時接続サービス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・17 第2章 Linux サーバ運用の基礎知識 19 2.1 はじめに知っておきたいこと ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・19 2.1.1 Linux の起動と終了 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・19 2.1.2 ユーザアカウントとグループ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・22 2.1.3 ファイル属性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・24 2.1.4 ディスクのマウント ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・25 2.1.5 /etc/hosts ファイル ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・27 2.1.6 Linux のディレクトリ構成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・28 2.1.7 システムとハードウェア情報の読み取り ・・・・・・・・・・・・・・・・・30 2.1.8 メモリ・ハードディスクの使用状況 ・・・・・・・・・・・・・・・・・・・・・・・33 c00 : 6 2002/6/7 (15:47) 目次 2.1.9 ランレベル ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・34 2.1.10 各ランレベルでのサービスの起動 ・・・・・・・・・・・・・・・・・・・・・・・37 2.2 X Window System について ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・39 2.2.1 サーバマシンでの X Window System ・・・・・・・・・・・・・・・・・・39 2.2.2 グラフィカルツール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・39 2.3 さまざまな管理、設定ツール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・40 2.3.1 setup と周辺ツールの使い方 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・40 2.4 ネットワークツール linuxconf と Webmin ・・・・・・・・・45 2.4.1 linuxconf ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・45 2.4.2 Webmin ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・47 2.5 アプリケーションの追加と削除 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・51 2.5.1 RPM パッケージ( バイナリパッケージ)・・・・・・・・・・・・・・・・51 2.5.2 SRPM パッケージ(ソースパッケージ)のインストール ・・・55 2.5.3 tar.gz( tar.bz2 )ファイルのインストール ・・・・・・・・・・・58 2.6 ブートローダ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・60 2.6.1 LILO ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・60 2.6.2 GRUB ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・61 第3章 ネットワークアプリケーションの設定 3.1 UNIX のファイル共有 67 NFS ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・67 3.1.1 NFS とは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・67 3.1.2 NFS サーバの設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・69 3.1.3 NFS サーバの起動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・71 3.1.4 NFS クライアント側の設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・72 3.2 Macintosh のファイル/プリンタ共有 netatalk ・・・75 3.2.1 netatalk とは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・75 3.2.2 netatalk の入手とインストール ・・・・・・・・・・・・・・・・・・・・・・・・・・76 c00 : 2002/6/7 (15:47) 目次 3.2.3 コンフィギュレーションファイルの設定 ・・・・・・・・・・・・・・・・・76 3.2.4 ファイル共有の開始と確認 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・82 3.3 Windows のファイルサーバ Samba ・・・・・・・・・・・・・・・・・84 3.3.1 Samba とは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・84 3.3.2 Samba のインストール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・87 3.3.3 Samba の設定ファイル ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・87 3.3.4 smb.conf 設定例 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・91 3.3.5 パスワードファイルの作成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・92 3.3.6 コンフィギュレーションファイルのチェック ・・・・・・・・・・・・93 3.3.7 Samba の起動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・94 3.3.8 ファイル共有の確認 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・94 3.3.9 Windows 側の設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・96 3.3.10 Samba サーバにアクセスする ・・・・・・・・・・・・・・・・・・・・・・・・・・97 3.3.11 SWAT の使用 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・100 3.4 プリンタサーバの設定 lpr ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・102 3.4.1 Linux 上でのプリンタの設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・102 3.4.2 プリンタの設定ファイル /etc/printcap ・・・・・・・・・104 3.4.3 プリンタ設定ツール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・105 3.4.4 プリンタのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・107 3.4.5 プリントジョブのコマンド ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・107 3.4.6 UNIX 間でのプリンタ共有 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・108 3.4.7 Samba を利用したプリンタの共有 ・・・・・・・・・・・・・・・・・・・・・109 3.4.8 netatalk を利用したプリンタの共有 ・・・・・・・・・・・・・・・・・・・・110 3.5 ネームサーバ BIND ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・113 3.5.1 ネームサーバとは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・113 3.5.2 BIND の設定ファイル ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・115 3.5.3 DNS 検索順の設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・124 3.5.4 DNS の動作確認 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・126 7 c00 : 8 2002/6/7 (15:47) 目次 3.6 メールサーバ Postfix ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・128 3.6.1 メールサーバの構成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・128 3.6.2 メールサーバの種類 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・129 3.6.3 Postfix とは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・130 3.6.4 メール配送方針の決定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・131 3.6.5 Postfix の入手とインストール ・・・・・・・・・・・・・・・・・・・・・・・・・・131 3.6.6 Postfix の設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・132 3.6.7 Postfix の起動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・134 3.6.8 mail による動作確認 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・134 3.6.9 不正中継拒否設定の確認 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・135 3.6.10 ほかのドメインのメールの送信 ・・・・・・・・・・・・・・・・・・・・・・・・136 3.6.11 POP サーバのインストール ・・・・・・・・・・・・・・・・・・・・・・・・・・・137 3.6.12 スーパーサーバの設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・138 3.6.13 POP サーバの動作確認 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・139 3.7 Web サーバとプロキシサーバ 3.7.1 Web サーバの定番 Apache 、Squid ・・140 Apache ・・・・・・・・・・・・・・・・・・・・・・・・140 3.7.2 Apache の設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・141 3.7.3 サーバの基本動作の設定 ( Section 1: Global Environment )・・・・・・・・・・・・・142 3.7.4 メイン・サーバ機能設定前半 ( Section 2:’Main’ server configuration )・・・・・144 3.7.5 アクセス制御の設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・146 3.7.6 モジュール、ディレクトリに関する機能の設定 ・・・・・・・・148 3.7.7 Apache の動作確認 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・152 3.7.8 プロキシサーバ Squid ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・153 3.7.9 Squid のインストール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・154 3.7.10 Squid の設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・154 3.7.11 Squid の起動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・160 3.7.12 Web ブラウザの設定と動作確認 ・・・・・・・・・・・・・・・・・・・・・・160 3.7.13 キャッシュマネージャの設定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・161 c00 : 2002/6/7 (15:47) 目次 3.8 データベースサーバ PostgreSQL ・・・・・・・・・・・・・・・・・・・163 3.8.1 PostgreSQL とは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・163 3.8.2 PostgreSQL のインストールと初期化 ・・・・・・・・・・・・・・・・・164 3.8.3 PostgreSQL の設定と起動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・165 3.8.4 データベースの作成とチェック ・・・・・・・・・・・・・・・・・・・・・・・・・・166 3.8.5 データベースファイルの読み込み ・・・・・・・・・・・・・・・・・・・・・・・169 3.9 DHCP サーバ dhcpd ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・170 3.9.1 DHCP サーバとは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・170 3.9.2 コンフィギュレーションファイルの設定 ・・・・・・・・・・・・・・・171 3.9.3 DHCP サーバの起動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・173 3.9.4 DHCP サーバの利用 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・173 3.9.5 IP アドレスをスタティック( 静的)に割り当てるには ・ 175 3.10 FTP サーバ ProFTPD ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・176 3.10.1 FTP サーバとは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・176 3.10.2 ProFTPD とは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・176 3.10.3 ProFTPD の入手 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・177 3.10.4 ディレクトリ公開ポリシーの決定 ・・・・・・・・・・・・・・・・・・・・・177 3.10.5 ProFTPD 設定の概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・178 3.10.6 ProFTPD の設定例 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・183 3.10.7 ProFTPD の起動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・184 3.10.8 動作( ログイン)テスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・186 第4章 サーバ構築後のメンテナンス 189 4.1 ネットワーク関連コマンド ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・189 4.1.1 telnet ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・189 4.1.2 rlogin ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・190 4.1.3 ping ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・191 4.1.4 traceroute ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・191 9 c00 : 10 2002/6/7 (15:47) 目次 4.1.5 ifconfig ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・192 4.1.6 netstat ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・193 4.1.7 nslookup ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・193 4.2 ログのチェック ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・194 4.2.1 ログチェックとは ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・194 4.2.2 syslog ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・194 4.2.3 /var/log ディレクトリ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・195 4.2.4 ログのローテーション ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・199 4.2.5 ログ管理ツール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・200 4.3 セキュリティについて ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・201 4.3.1 セキュリティの必要性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・201 4.3.2 ポートのチェック ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・202 4.3.3 スーパーサーバ inetd/xinetd ・・・・・・・・・・・・・・・・・・・・・・・・・203 4.3.4 inetd( +TCP Wrapper )・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・204 4.3.5 xinetd ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・205 4.3.6 シャドウパスワード ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・206 4.3.7 PAM による認証 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・207 4.4 サーバのバックアップ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・208 4.4.1 バックアップの必要性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・208 4.4.2 バックアップメディア ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・209 4.4.3 ファイルシステムの構築 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・211 4.4.4 バックアップに利用するツール ・・・・・・・・・・・・・・・・・・・・・・・・・212 4.4.5 バックアップの自動化 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・216 索 引 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・219 c01 : 2002/6/7 (15:47) 11 C H A P T E R 1 PC を本格サーバにできる Linux 1.1 Linux サーバ Linux は 1999 年頃からコンピュータ専門誌以外にも一般的な雑誌、新聞などに も頻繁に登場するようになりました。専門誌や関連書籍も増え、各種の調査結果 でも利用されている OS として大きな柱のひとつとなっています。以前はフリー ( オープンソース)ソフトウェアということで敬遠されていた部分もありますが、 現在では中小ベンダからコンパックや IBM 、富士通などの大手有力ハードウェア ベンダまで、そのサーバ製品群のなかで Linux をサポートするようになっていま す。たとえば、IBM やデルはサーバ製品シリーズで Linux をフルサポートすると いった事例も登場しています。 これというのも、Linux が実績のあるハードウェア上で安定して稼動すること が認められ、Linux の OS における地位が向上したからにほかなりません。 一昔前ならば Windows で利用するには少々古くなったマシン、パーツを使っ てファイルサーバやインターネット関連のサーバを構築するといった比較的個人 用途に近い使い方が多かったかもしれませんが、現在では業務用のサーバ製品と しても認められています。さらに Linux 上で動作するオフィススイートも徐々に 開発・登場しており、デスクトップ機としても広く利用されるようになってきま した。 c01 : 12 2002/6/7 (15:47) CHAPTER 1 PC を本格サーバにできる Linux Linux 自体は無料であるがゆえに、きちんとしたサポートが受けられないので はという不安などから、ミッションクリティカルな業務には敬遠されることもあ るかもしれませんが、一般的な WWW サーバや小規模レベルのサーバであれば問 題はないといってもよいでしょう。現実的に商用データベースの雄である Oracle もオラクル製品に特化した Linux ディストリビューションを発表していますし、 このような動きはますます増えていくものと思われます。 Linux の今後の動きには、注目すべきものがあります。 1.2 Linux とは Linux は、フィンランドのヘルシンキ大学の学生であった Linus Torvalds 氏が 既存の UNIX のコードを使用せずにフルスクラッチ、つまりゼロから書き起こし た UNIX 互換の OS です。新しいがゆえに過去の遺産にとらわれることなく、メ モリプロテクト、真のマルチタスクやマルチスレッド、マルチプロセッサ、リアル 32 ビットを実現したオペレーティングシステムです。1994 年にバージョン 1 が 公開された新しい OS ですが、カーネルの改良は現在も進められています。また、 カーネル以外の部分は GNU のフリーソフトウェアと無数の開発貢献者によって 支えられており、ソースコードを含めてフリーとして配布されています。 ただしフリーといっても著作権は放棄されておらず、GNU General Public License( GPL )に基づいた自由配布が認められています。 Linux は POSIX という OS 標準規格に準拠し、各種の拡張機能を取り込んでい るために、ほかの UNIX 用ソフトウェアの大部分を移植して利用できます。そし て星の数ほど出る多種多様なハードウェア、また複数の CPU アーキテクチャに対 応すべくさまざまな機能が取り込まれ続けています。 Linux のバージョンは現在 2.x.y という形で示されますが、 「 2 」はメジャーバー 「 y 」はマイナー ジョンで、 「 x 」は偶数が安定版、奇数が開発途中版を示します。 バージョンです。したがって、たとえば 2.2.16 は安定版、2.3.99 は先進の機能を実 験的に取り込んだバージョンという意味になります。 最近の動きでは、Intel 次期 64 ビットプロセッサ「 IA-64 」にいちはやく対応を 開始しています。Turbolinux や Red Hat Linux などが IA-64 用バージョンをリ リースしており、カーネルコンパイラなども各所から GPL に沿ってリリースされ ています。 「 Itanium 」の主要なターゲットは Linux となるかもしれません。 c01 : 2002/6/7 (15:47) 1.4 Linux のディストリビューションパッケージ 1.3 オープンソースとしての Linux Linux はフリーソフトウェアです。フリーというと無料というイメージが先行 しがちですが、無料であるということよりも OS やドライバの開発、改良などが 自由(フリー)であるということのほうが重要です。それらが可能なのも、ソース コードが公開されているからです。ソースが公開されていることから、現在では 「オープンソース」と呼ばれるようになっています。オープンソースソフトウェア には、自分の責任においてソフトウェアを作成し、改良し、利用する自由があり ます。メーカのお仕着せではなく、自分の必要とする環境を自由に構築すること もできます。電子メールを配送するサーバプログラムを例に取ると、sendmail、 qmail 、postfix などいくつもの選択肢のなかから自由に選んで、カスタマイズす ることもできます。 一方、商用ソフトウェアも増えてきています。おなじみのところで ATOK や Wnn といった Input Method から、バックアップやサーバアプリケーションの設 定ツールなども増えています。商用データベースなども Linux 版が発売されてい ます。また最近では、ほとんどのベンダがサーバとして Linux をサポートしてい ます。 1.4 Linux のディストリビューションパッケージ 厳密にいえば、Linux は OS 本体(カーネル)のみを指し、カーネルとあわせて 各種のソフトウェアやインストーラをまとめた「ディストリビューションパッケー ジ」がいくつも発表されています。ディストリビューションの多さが Linux をわ かりにくくしているという指摘もありますが、パッケージの作りやすさとその自 由度がまた Linux の裾野を広げている要因でもあります。 ディストリビューションによって、ファイル構成や収録ソフトウェアなどにそ れぞれ個性があります。ここ数年は数多くのディストリビューションが次々とリ リースされており、百花繚乱といった感があります。以前から日本では次の 4 つ がよく利用されてきました。 13 c01 : 14 2002/6/7 (15:47) CHAPTER 1 PC を本格サーバにできる Linux ディストリビューション 概要 Slackware すべて自力で選択・環境構築したい人向け。自由度大 Red Hat Linux パッケージ管理機能 ( RPM ) で有名。日本語環境も充実し てきた Debian GNU/Linux 最大の収録パッケージ数を誇る。ややインストーラが難 解か Turbolinux Red Hat Linux ベースの最先発日本語化商用パッケージ すなわち Linux では Slackware 系、Red Hat 系、Debian 系と大きく分けて 3 つの系統が見られます。Slackware 系はもっともベーシックなタイプで、ソフト ウェアのソースコードやマニュアルなどが tar ボール( 複数の必要なファイルを ひとまとめにしたもの)の形で提供されます。たいていは tar ボールを伸長してか ら、指示に従ってコンパイルし、インストールします。 一方、Red Hat 系と呼ばれるディストリビューションでは、ソフトウェアは拡張 子の最後に rpm がつく RPM というパッケージで提供されます。RPM は Red Hat 社が開発したパッケージ管理システム( Red Hat Package Manager )であり、現 在もっとも広く利用されています。Turbolinux や SuSE Linux なども Red Hat 系に属します。 Debian は提供されるソフトウェアパッケージの拡張子の最後に deb がついて いることから判別できます。Debian オリジナル のインストーラはややわかりず らさがあるものの、apt などのパッケージ管理システムによって、新しいソフト ウェアへのバージョンアップがきわめて簡単に行えます。 現在では日本語化された国産のディストリビューションも増ています。次のよ うなディストリビューションをよく目にします。 ディストリビューション 概要 Kondara MNU/Linux 最新のパッケージをいちはやく取り入れ、デスクトップ からサーバまでさまざまなパッケージが用意されている Vine Linux 特に日本語環境が充実。独自ツールを多く搭載し、日本 語用途向け LASER5 Linux 日本語 Red Hat Linux から分かれ、豊富な日本語ツール を誇る c01 : 2002/6/7 (15:47) 1.5 ディストリビューションと本書での対応 ディストリビューション 概要 Plamo Linux 非 商 用 で Slackware を ベー ス に 日 本 語 化 。NEC 社 の PC-98 シリーズをサポートする Open Linux 米 Caldera System 社よりリリース。Red Hat ベース ARMA aka Omoinane GNU/Linux 比較的少ない Debian ベース。独自の GUI インストーラ・ デスクトップ環境を用意 HOLON LINUX 独自のインストーラを用意し豊富なパッケージを誇る このほかにもたとえば、フランス製ディストリビューション( Linux Mandrake ) を日本語環境に対応するように作られた Meister Linux Mandrake( 発売はレー ザーファイブ株式会社) 、ドイツ製でいち早く新しいソフトウェアパッケージを採 用する SuSE Linux 、Caldera 社の OpneLinux などが発売されています。 さらに Red Hat Linux 、Kondara MNU/Linux、Turbolinux、LASER5 Linux 、 Miracle Linux 、HOLON Linux などはデスクトップ用途以外にもサーバ専用の ディストリビューションを別途発売しています。これらは GUI によるサーバアプ リケーション設定ツール、バックアップツール、クラスタリングソフトウェアな ど、バンドルソフトウェアとサポート体制でそれぞれ特長をだしています。 1.5 ディストリビューションと本書での対応 本書では Linux をインストールした IBM PC/AT 互換機( PC サーバ)を中心 に、マシンが数台程度接続された小規模なネットワークを想定して各種サーバア プリケーションを紹介します。 同様に本書ではいわゆる「 RPM 」ベースと呼ばれるディストリビューションを 主な対象にはしていますが、できるだけ汎用性を持たせるように( ソースからビ ルドした場合の構成もある程度考慮して)記述しています。 RPM は 「 Red Hat 」ベースと換言することもできます。例として Red Hat Linux 、 Vine Linux 、Turbolinux、Open Linux 、SuSE Linux 、LASER5 Linux 、Kon dara MNU/Linux などがこれにあたります。 ただし、ディストリビューションによってディレクトリ構成や、バイナリファ イルの置かれる位置の若干の違いなどがあるので注意してください。 また管理・設定ツールについては、linuxconf などの GUI ツールを利用する方法 15 c01 : 16 2002/6/7 (15:47) CHAPTER 1 PC を本格サーバにできる Linux もありますが、本書ではできるだけ汎用性を持たせるために、コンフィギュレー ションファイルを直接修正する方法を中心に解説します。 NOTE サーバインストールにあたって RPM 系のインストーラで「サーバ」を選択すると、 ● パーティションを自動的に設定 ● X Window System をインストールしない ● アプリケーションも必要最低限 といったインストールが行われるディストリビューションがあります。サー バとしては、これで充分な場合もありますが、これでは kon を使ったコン ソール以外で日本語の表示ができません。また、パーティションの設定など は、構築するファイルシステムなども含めてあらかじめ計画を立てて設定す るほうが望ましいといえます。インストールの際は「カスタム」を選択し、適 切な設定をしつつインストール作業を行いましょう。 1.6 サーバ構築のうえでの選択肢 本書では、Linux 上での一般的なサーバアプリケーションの設定について解説 します。ところで実際にサーバを構築する形態にはいくつかの選択肢があります。 まず前提として、サーバを構築する場合 LAN 専用( プライベート IP を割り当て る)にするのか、外部にサービスを公開するのかで分けることができます。内部 用途のサーバであれば、LAN 内部にサーバを設置して、自サイトのポリシーにあ わせた設定を行います。プライベート IP を決め、ユーザ、グループなどの基本部 分を固めてアクセス権を管理します。Samba などを利用する場合にはファイル名 のつけ方などの約束事も決めておくとよいでしょう。 一方、サーバを外部に公開する場合、まず最初にサーバをどこに設置するのか ということを考える必要があります。自サイト内にサーバを設置して管理するよ りも、場合によっては、ホスティングサービスなどを利用したほうがよいケース もありえます。 たとえば、外部に公開するサービスが WWW サーバのみであれば、独自ドメイ ンを取得して、一般的なバーチャルサーバ(ホスティング)を利用したほうが管理 とコストの面から多々有利となるでしょう。停電時やハードウェアの故障による c01 : 2002/6/7 (15:47) 1.7 常時接続サービス サービスの中断に備える、HDD クラッシュに備えたデータのバックアップ作業、 そしてセキュリティの維持といった裏方の作業はかなりのスキルとマンパワーが 必要な部分でもあり、換言すればそれだけコストがかかります。それらをひっくる めたコスト計算をすると、ホスティングサービスの価格帯は大きな魅力でしょう。 CGI などの自由度が低い、あるいはシェルを使いたい、細かなところまで自由 に設定したいといったケースであれば、レンタルサーバやハウジングサービスと いった選択肢もあります。1 台丸ごとサーバをレンタルする、あるいはハウジング サービスを利用して自社サーバを預かってもらうサービスを利用すれば、サーバ アプリケーションについても自由度は高くなります。バックボーンも価格によっ て選択できるケースもあり、耐震構造の建築物内に有人監視下で設置されるサー ビスがいくつも提供されています。 一方、自社( 自宅)サーバをオンサイトで運用管理したい場合には、常時接続 サービスを選択する作業が必要になります。この選択には使用目的( 利用したい インターネットサービス) 、回線帯域と支払う金額、利用できる固定 IP アドレス、 そして独自ドメインの運用ということを総合して考える必要があります。 1.7 常時接続サービス 常時接続サービスの選択については、インターネットを取り巻く環境、各種サー ビスとそのコストが日進月歩している今、ベストな選択というものは難しくなっ ています。現状のベストが半年後のベストであるという保証はまったくありませ ん。つねに状況の変化に対応できるように想定しておくのがよいでしょう。 ● ADSL 通常のアナログ回線ラインに、通常の音声域( 0∼4KHz )よりも高い周波数を 利用して数∼数十 Mbps の高速データ通信を行う方式です。現在低価格化、 高速化が進み、原稿執筆時点でも 8Mbps 常時接続で固定 IP をもらえるサー ビスがいくつか出ています。欠点としては収容局とサイトとの距離や、周辺 環境によってスピードにばらつきが出てしまい、速度が出るかどうか実際に 設置してみないとわからない部分があります。また上り・下りの速度が異なる 非対称( Asymmetric Digital Subscriber Line )方式で、下りのほうが速い サービスが多いのですが、サーバ用途としては上り側の速度のほうが重要に 17 c01 : 18 2002/6/7 (15:47) CHAPTER 1 PC を本格サーバにできる Linux なることに注意します。 ● 光ファイバ NTT 各地域会社が進めている B フレッツが現時点では注目の的でしょう。基 本的には光ファイバが利用できれば現時点ではそれに越したことはありませ ん。提供エリアは徐々に拡大していますが、地域の電話回線の光ファイバ化 と B フレッツの提供とはリンクしていないため、大都市や市内中心部以外で は提供される時期などがよくわからないのが現状です。 ● IP 接続サービス ISDN 回線( B チャンネル 1 本)を利用した 64kbps のサービスで「フレッツ・ ISDN 」と呼ばれます。フレッツ・ISDN の大きな特徴は、ISDN 回線ユーザは 手元の設備をほとんど変更することなく、そのまま利用できるというところで す。固定 IP を利用できるサービスを提供している ISP もありますが、ADSL にくらべると対速度面から割高感があります。ADSL が利用可能な地域であ れば、ADSL にユーザが流れていくでしょう。 ● OCN 系サービス かつては常時接続の代名詞ともいえる存在でしたが、そのベストエフォート 128kbps という速度と月額 3 万∼という価格から、現在ではもっとも通信速 度に対するコストが高いサービスのひとつになってしまいました。しかし ADSL や B フレッツが利用できない地域では、今後も継続して利用されると 思われます。 今後インターネットを取り巻く環境がどのように発展するのか、自分のインター ネット利用地域でどのような形でインフラが整っていくのかわからないのが現状 です。専用線を利用する場合には、基本的にどのサービスを利用・提供したいの か、回線速度はどれくらい必要なのか、そして許容されるコストを考え合わせた うえで現状で「ベター」と思われるものを選択しつつ、今後の動向に目を光らせる というスタンスがよいのではないでしょうか。 c02 : 2002/6/7 (15:47) 19 C H A P T E R 2 Linux サーバ運用の基礎知識 サーバを運用するまえに、Linux の基本操作や設定方法を覚えましょう。Linux ディストリビューションには、強力で使いやすい設定ツールやさまざまな管理ツー ルが用意されています。 2.1 はじめに知っておきたいこと 2.1.1 Linux の起動と終了 ■ Linux の起動 Linux が起動した(ログインプロンプトが表示されている)状態では、あらかじ め起動設定されているサービスすべてが立ち上がっています。つまりログインす る必要もなければ、サービスの起動を手動で指示する必要もありません。まずは 試しにログインして ps aux コマンドで動作中のプロセスを確認してみましょう。 # ps aux USER PID %CPU %MEM root 1 0.1 0.0 root 2 0.0 0.0 root 3 0.0 0.0 root 4 0.0 0.0 root 5 0.0 0.0 root 6 0.0 0.0 root 7 0.0 0.0 root 8 0.0 0.0 VSZ 1412 0 0 0 0 0 0 0 RSS 72 0 0 0 0 0 0 0 TTY ? ? ? ? ? ? ? ? STAT S SW SW SWN SW SW SW SW START 13:12 13:12 13:12 13:12 13:12 13:12 13:12 13:12 TIME 0:03 0:00 0:00 0:00 0:01 0:00 0:00 0:00 COMMAND init [keventd] [kapm-idled] [ksoftirqd_CPU0] [kswapd] [kreclaimd] [bdflush] [kupdated] c02 : 20 2002/6/7 (15:47) CHAPTER 2 Linux サーバ運用の基礎知識 root root root root root root root 9 568 573 696 752 773 802 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.9 0.4 0 1472 2072 1396 2676 2296 5296 0 208 4 4 4 744 332 ? ? ? ? ? ? ? SW< S S S S S S 13:12 13:12 13:12 13:12 13:13 13:13 13:13 0:00 0:00 0:00 0:00 0:01 0:00 0:00 [mdrecoveryd] syslogd -m 0 klogd -2 /usr/sbin/apmd -p /usr/sbin/sshd xinetd -stayalive sendmail: accepti ( 以下省略) ps コマンドだけでは現在のターミナルで実行されているプロセスしか表示され ませんが、x オプションを加えることによりバックグラウンドで動作しているプ ロセスが、a オプションをつけることによりすべてのプロセスが、u オプションを つけることによりユーザ名と開始時刻情報も含めて表示されます。PID はプロセ ス ID の意味で、OS がプロセス生成時、すなわち個々のプログラムの起動につい て割り当てる固有の番号です。100 番以下は主にカーネルまわりのプロセスを表 します。一方、例のように 3 桁の PID は、ユーザが起動を選択したサービス( あ とから追加したサービス)が起動されていることがわかります。 ■ Linux の終了 サーバとして 24 時間連続運転を行い稼働しているあいだは、ハードウェアの メンテナンスなど以外にシステムを終了させる場面はごく少ないでしょう。シス テムを終了させる場合には、いきなり電源スイッチを切ったり、リセットしない ように注意します。実行中のプロセスのイメージがハードディスクに書き込まれ ている最中に電源を切ったりリセット操作を行うと、ハードディスクの内容が破 壊される危険性があるためです。たとえばリセットボタンなどで不正に終了する と、次回の起動時に fsck というファイルシステムのチェック機能が働いて自動的 に修復作業を行いますが、最悪の場合、一部あるいはかなりの部分のデータ修復 が不可能となることもありえます。 Linux を終了するには、root 権限で shutdown コマンドを実行します。 # shutdown [-hr] time time オプションは必須です。直接時刻を指定( 15:40 など)、現時刻から何分後 、ただちに停止( now )の 3 通りのオプションがあ に停止するかを指定( +10 など) ります。 time オプションの時間だけを指定して shutdown コマンドを実行すると、実行