実践で学ぶ、一歩進んだサーバ構築・運用術

今回は Linux サーバーのセットアップとファイアウォールの構築を目的とした, TCP/IP の基礎知識を解説します。 最近は個人ユーザーでもインターネットに常時接続しやすくなりましたが, セキュアなサーバーを構築するためには TCP/IP の仕組みを理解することが不可欠です。

第 7 回 ファイアウォール (前編)

会社を設立しました。 「株式会社ケイ・ラボラトリー」*1 という名称で, 次世代携帯電話のコンテンツ関連技術に特化した研究開発型企業です。 今後, Java を搭載した携帯電話が増えていくと予想されますが, 携帯電話のさまざまなリソース上の制約により, Java 搭載型携帯電話上で動くプログラムを開発することは, 一般のプログラマにとってはあまり容易ではありません。 開発ツールの提供や技術コンサルティングなどを通して, 携帯電話コンテンツの発展のお手伝いをできたらと考えています。

2000 年 7 月下旬に設立発表のプレスリリースを出したこともあり, 既に各方面から多くの引き合いがありました。 そのため数多くのプロジェクトが同時進行中です。 せめてプロジェクト数に見合う程度には人を増やすべく, 現在人材急募中です*2 。

ディストリビューションを使用

今回ケイ・ラボラトリーの Web サーバーを立ち上げるに当たって, 本業の合間にファイアウォールの構築とサーバーのセットアップを行いました*3 。 あまり時間をかけられなかったので, 既存のディストリビューションに手を加えることにしました*4 。

実を言うと 1994 年に Slackware をインストールして以来, ディストリビューションを使うのは実に 6 年ぶりのことです。 また, Red Hat 系ディストリビューションを使うのはこれが初めてです。 放っておけば勝手にインストールしてくれるのは手間が省けて良いのですが, 何をするにも GUI 管理ツール*5 が必要で, フラストレーションがたまってしまいました。 どうしてこんなにいろんなパッケージをてんこ盛りにするのでしょうか。 困ったものです*6 。

まずは, 勝手にインストールされてしまった Web サーバー, メール・サーバー, ネーム・サーバーなどを削除することから始めました。 ディストリビューションに含まれているこれらのサーバー・プログラムは, ディレクトリ構成などに手が加えられています。 トラブル発生時に迅速に対応できるようにするため, 対外サービスを行うプログラムは, すべてソース・プログラムを取り寄せてインストールし直すべきでしょう。

次に, inetd の削除です。 inetd が面倒を見るサービスのほとんどは今となっては使われないものばかり*7 で, なぜ多くのディストリビューションがいまだに inetd をデフォルトで走らせているのか理解に苦しみます。 inetd は前世紀の遺物ですから, さっさと捨てましょう。

最後に, ipchains を使って IP フィルタを設定します。 多くの解説書には, 「サーバー・マシンでは不要なサーバー・プログラムを停止せよ」 と書かれていますが, これは間違いです。 停止させただけでは何かのはずみで再び動き出すかも知れません*8。

1024 番以上のポートであれば, 一般ユーザーが勝手に変なサーバー・プログラム*9 を走らせる危険もあります。 仮にサーバーが動き出しても外部からアクセスされないように IP フィルタで外部との通信を完全に遮断するべきでしょう。

来月号で, ルーターとサーバー・マシン上の IP フィルタを使って ファイアウォールを構築する方法を解説する予定です。

今回はそのための準備として, TCP/IP の基礎を解説します。

*1
「ケイ・ラボラトリー」の「ケイ」はアルファベットの「K」です。 「K-Java」の「K」,すなわち「キロ・バイト」の「K」に由来します。 「軽自動車」(ケー・カー)などの「軽い」という意味の「ケー」や, 「携帯電話」(ケータイ)の「ケー」である,という説もあります。 「Java」の「J」の次を目指す,という意味もあるのかも知れませんが, 決して「3K」(きつい・きたない・きけん)の「K」ではありません。 「きつい」かどうかはさておき,真新しいオフィス(神谷町森ビル)なので, 「きたない」と「きけん」はあてはまりません。
*2
興味のある方は,http://www.klab.org/ を参照して応募してください。
*3
正確に言えば,セットアップしたのは今年 3 月です。
*4
何がインストールしてあるか分からない既成のディストリビューションは 大嫌いなので,私の自宅のサイトである GCD(gcd.org)では, 1994 年の Slackware をベースに, オリジナルの痕跡を全くとどめないほど手を加えたサーバーを使っています。
*5
初心者にはとっつき易いのでしょうが,少しでも慣れてくれば GUI は百害あって一利無しですね。
*6
暇を見つけては不要なパッケージを片っ端から削除しました。 削ったパッケージは,100 個以上にのぼります。
*7
うそだと思うなら,/etc/inetd.conf を確認してみましょう。 ほとんどすべての行がコメントアウトされているはずです。 コメントアウトしてないものがもしあれば, そのサービスが本当に必要か考えてみてください。
*8
近ごろのディストリビューションは 非常に込み入った設定ファイルを使用していますから油断できません。 使わないサーバー・プログラムは消してしまうに限ります。
*9
故意または過失でバックドアを開けてしまうというのはよくある話です。

ダイアルアップ接続

TCP/IP の基礎

TCP/IP に対する攻撃

(仙石浩明)

ライターから


連載 第 8 回「ファイアウォール (後編)

連載 第 6 回「stone (後編)


本稿は日経Linux 2000 年 10 月号に掲載された、 実践で学ぶ、一歩進んだサーバ構築・運用術, 第 7 回「ファイアウォール (前編)」を日経BP 社の許可を得て転載したものです。

Copyright(C)2000 by 仙石浩明 <sengoku@gcd.org>
無断転載を禁じます

| home | up |

sengoku@gcd.org