[Book] インターネットサービス関連書籍のご紹介 (ja)

インターネットサービスについては、多くの場合Unixで実装されていますが、近年はWindows Serverで実装されるケースも増えています。ここではUnixに限らず、インターネットサービス関連の書籍をご紹介したいと思います。

1. Apache / CGI
Apacheの参考書としては「Apacheハンドブック」が定番でしょう。邦訳はApache 1.3/2.0対応のため情報が少し古いことは否めませんが、アーキテクチャが大きく変わっているわけではないので、最新のリリースノートとの差分を見比べながら活用していくのがよろしいかと思われます。「Apacheハンドブック」はリファレンスとして使用することも考慮されているようで、事例引きとして重宝します。長く手元に置くことのできる書籍でしょう。
本書は前の版(Apache 1.2/1.3対応)の頃から愛用しており、その内容については自信を持ってお薦めできます。







「Apacheハンドブック」を補足する形で「CGIプログラミング」も出版されています。最近はJava Servletなどの新技術に推されてCGIは下火ですが、ApacheにPHPを組み込む際など、CGI(あるいはFastCGI)のスキルが要求されます。また、多くのプロバイダでは主にPerlによるCGIのみが許可されているため、CGIはまだまだ現役と言えるでしょう。参考まで、CGIを理解しているとJava Servletの仕組みを理解する上で優位に立つことができます。

現在流通しているものは改訂版で、初版はCとPerlを用いたよりプリミティブなやり方で、敷居が高かったのは事実です。しかし、改訂版ではその後登場したPerlのcgi.pmの助けを借りて、余計なオーバーヘッドなく純粋にCGIプログラミングを学べるように改善されています。



2. BIND (DNS)
「DNS & BIND」は現在、世界で最も多く使用されているDNSサーバー実装であるBINDの本格的な解説書です。かなりの大冊ですが、/etc/hostsからDNSへの移行、ごく簡単なDNSの設定、BINDのレプリケーション、セキュリティに至るまで幅広く取り扱っています。
ただし、BINDのアップデートは頻繁に行われているため(特に最近その傾向が原著です)、一部現状と異なるケースがあるかも知れません。







3. sendmail
sendmailはUnix黎明期から使用され続けているMTAであり、数多くの脆弱性を指摘されながらも、いまだ主流を保っている製品です。最近はより安全なPostfixへの移行が進んでいるようですが、完全な代替に至っているとは言えないようです。
本書「sendmail」は2巻組の大ボリュームで、sendmailに関するあらゆるトピックを収録しています。
sendmail自身は単独のプログラムで数多くのことをこなせるようになっており、設定ファイルも非常に難解です。設定ファイルの些細な記述漏れから大事故に至ったというケースも後を絶ちません。本書では設定ファイルの基本的な作り方、リファレンス、その他運用上気をつけなければ行けないことなどを網羅した書籍にし亜合います。
なお、sendmailはアップデートが多いため、書籍掲載のバージョンより、OSでアップデートしたバージョンの方が新しいことも多々あるでしょう。その場合はリソースノートを見比べながら、新旧の差分を調査して下さい。

4. Postfix
ポストsendmailとして数多くのMTAが世に登場しましたが、現時点で最も高い評価を受けている製品の1つがPostfixです。Postfixはsendmailの弱点をアーキテクチャの根本的な見直しで解決するとともに、sendmailからの移行を強く意識したマイグレーション機能を用意しています。
本書「Postfix実用ガイド」ではPostfixがどのようにして生まれたのか、そしてどのような使命の元に開発され、現在に行ったいるかを説明するとともに、具体的な設定方法についても触れられています。設定方法と行っても分厚い上下2巻組のsendmailと比較すると驚くほどコンパクトになっていますので、Postfixがシンプルかつ堅牢であることをうかがい知ることができると思います。





5. SSH
Unix黎明期より存在したrsh、rlogin、rcpなどの暗号化されないリモートアクセスコマンドに対して、初めからセキュリティを考慮して開発されたSSHの解説書がこの「実用SSH」です。SSH実装としてオープンソースのOpenSSHと、商用製品であるSSH Tectia(現Tectia)を取り上げ、SSHの基礎理論から具体的な使い方(使い方だけでも様々なケースが存在します)につい言及しています。 
本誌世執筆時点では、SSH Tectiaは機能限定版を無償で入手可能とのことでしたが、本記事を執筆している時点ではSSH Tectia全製品は有償での提供となっています(国内での総代理店はDIT社)。

※なお、本書では触れられていませんが、OpenSSHとSSH Tectiaとでは ./ssh/known_hosts の書式が異なっています。ファイルの内容を理解していれば整合性を取るのは比較的容易ですが、はまりやすい点ではありますので注意して下さい。

6. Kerberos
語弊を承知で簡潔に説明するなら、シングルサインオンを実現するための仕組みです。
本当は違っていて、クライアントが初回認証後、パスワードの代わりに認証OKを示すチケットを持ち回り、アクセス対象のサービスにチケットを提示することでサービスを利用できるようにするというものです。このチケットが有効な間は事実上、シングルサインオンと同じ効果が得られます。
Kerberosで最も有名な例は、WindowsのActive Directoryでしょう。Active Directoryでは、従来のNetBIOSを廃して、NetBIOSが持っていたシングルサインオンに近い機能をKerberosで実現するようになっています。
また、Kerberosではセキュリティ強化のため時刻認証を導入しています。これはKerberosサーバーとクライアントの間に一定時間(Kerberos標準では5分、Active Directoryでは3分程度)以上の差があると認証を拒否する仕組みです。よくActive Directoryで突然ログインできなくなる事象を耳にしますが、多くの場合クライアントとサーバーの時刻差が3分を超えていることに由来します(それを防ぐため、Active Directoryではディレクトリ全体での時刻同期を試みるような仕組みを持っています)。
ここではオライリーの「Kerberos」を紹介する予定でしたが、残念ながら絶版となってしまいました。最新のトピックを盛り込み再版されることを望みます。

7. Ethernet
これまでのインターネットサービスを支える主要技術である、イーサネットに関する参考書をご紹介しましょう。
本書「詳説Ethernet」は、私がこれまで読んできたイーサネット関連書籍の中では最も「納得できる」書籍です。
イーサネット関連書籍のほとんどは、ネットワーク概論から初めてまもなく技術的なことに言及し、そして応用例を提示していくという組み立てがほとんどでした。私としてはイーサネットがどのように誕生し、以下にしてライバル(トークンリング/トークンパッシング、FDDI、ATMなど)を蹴散らしてデファクトスタンダードに上り詰めたのか、その背景が知りたかったのです。
イーサネットは当時のディジタル・イクイップメント(DEC)、インテル(Intel)、ゼロックス(Xerox)による共同開発で、初期のフォーマット(現在のものとは少し異なる)は3社の頭文字からDIX形式と呼んでいました。その後、イーサネット開発で主導的役割を果たしたメンバーがこの技術を世の中に普及させるため、スリーコム(3Com)というメーカーを立ち上げ、以後価格競争などで没落するまで3Comはイーサネット機器メーカーのトップランナーでした。
このような歴史的背景についてしっかりと解説されているのはもちろんのこと、イーサネット技術そのものに対する解説も明快で、使い勝手の良い書籍だと言えます。

8. セキュリティ
本記事の締めくくりとして、昨今のインターネットサービスでは不可欠となっているセキュリティに関する参考書をご紹介します。
本書「ファイアウォール構築 第2版」は上下巻かつそれぞれが分厚い、初心者にとっては見るからに敷居の高い書籍です。ところがその内容は身構えるほど何回ではなく、いくつかのインターネットサービスを運用したり、簡単なセキュリティ設定(パケットフィルタリングなど)の経験があれば十分に読みこなせます。
大冊だけあってボリュームは十分、ファイアウォールとその理論をじっくり解説するに留まらず、豊富な誌面を生かして様々な形態のファイアウォールのケーススタディーまで紹介しています。
特に企業の全社セキュリティ担当者や、あるいは自宅サーバーを構築されている方々にとっては、本書から有益な情報が得られるのではないでしょうか。