一周年記念特別インタビュー D 界の長老 Marshall K. McKusick 大いに語る ! MarshalI K. McKusick 氏といえば、言わずと知れた BSD 界の長老である。カリフォルニア州立大学 バークレー校における BSD 開発の中心メンバーの一人であり、現在も * BSD の発展に大きな影響を与 えている。バークレー校に程近い McKusick 氏の事務所を訪ね、 * BSD に関するさまざまな事柄につい て語ってもらった。 、げ BSD の開発 私がカリフォルニア州立大学バークレー校 に来たのは 1976 年です。当時、 Unix はバー クレーに紹介されたばかりでした。当初は、 プログラム開発などに Un ⅸを使っていて、同 じ研究室には B Ⅲ Joy がいました。彼も私と 同じように学生で、アドバイザーも同じ Graham 教授だったんです。 BiII は研究休暇 でバークレーに来ていた Ken nompson と一 緒に研究を始め、彼から Unix の仕組みをい ろいろ教わっていました。 Ken が大学を去っ た後、 B Ⅲは今でいうシステムアドミニスト レータになり、システムの管理や、プログラ ムの制御などを担当するようになりました。 B Ⅲの影響力は絶大で、彼が何かに夢中にな ると、周囲もそれに夢中になったものです。 ⅵ工テイタや、 C シェル、 pasca インタープ リタ、 Pasca ロンパイラといったユーティリ ティをすべて B Ⅲか書いて、私たちに管理さ せていました。 1979 年に & T が Unix を商用製品として販 売するようになるまで、こうした状況が 3 年 ぐらい続きました。そして、 AT&T は Unix を 扱うための完全なビジネスユニットである組 織を結成したわけです。元々 BTL 注 1 で働い ていた研究員は、 Un ⅸの開発に携わること を許されず、商用製品の担当者に Unix を明 け渡さなければなりませんでした。そして、 商用製品の担当者は、これまでの研究員と 違って Un ⅸの自由な配布を拒否し、管理体 制を強化しました。しかし、 Un ⅸをこれまで どおりに使いたいという声はとても大きなも のだったのです。 そう、商用パージョンではなく、リサーチ バージョンの Un ⅸのリリースが強く求められ ていました。そこで、 B Ⅲがいつもの調子で 「俺がやる」と立候補し、自分のプログラム だけではなく、完全なシステムのリリースに 取り組み始めました。 B Ⅲか最初にリリース したシステムは、 Digital Equipment から発売 されていた当時の最新コンピュータである V 用でした。べースとなったのは PDP -11 用の Un ⅸを B 几が V, にざっと移植したもの で、 V, 反想メモリハードウェアは利用さ れていなかったし、 PDP -11 の代替システム といってもいいしろものでしたね。 B Ⅲが手がけた初期のプロジェクトの 1 つが、 バークレーのもう 1 人の学生の助けを借りて、 VM システムを開発し、 VMUn ⅸというシステ ムをリリースすることでした。これが、 3 D だったのです。 IBSD と 2BSD は、いずれもた だのプログラムで、完全なシステムではあり ませんでした。 3 D は、完全な OS とすべて のユーティリティを備えていました。 3BSD は人気を博しました。というのも、 V を購入したら、 DEC システムの VMS を 走らせるか、 3BSD を走らせるかのどちらか になるのですが、 VMS は端末での操作とい うよりバッチ指向の強いシステムでしたから ね。こうして 3BSD は大成功を収め、アメリ カ政府の目に止まったわけです。具体的に は、アメリカでの研究開発に多大な資金を 提供していた DARPA (Defense Advanced Research PrOJect Agency) の関心を引いた のです。 DARPA は BSD にネットワークを追 加させようと、バークレーに多額の資金を提 供しました。そして、 2 年がかりで TCP 刀 P ネ ットワークが追加されたのです。 Bill と Sam LeffIer が、現在でも使用されているソケット インターフェイスを設計すると、私は急いで それを組み込みました。この作業か完了し、 4.2BSD Unix としてリリースされたのは、 19 年のことです。 これはかなり成功し、ファイルシステムが 遅くて、ネットワークがなかった商用パージ ョンの Unix の売り上げを大きく上回りまし た。高速なファイルシステムとネットワーク か必要なユーザーは、 BerkeIey Un ⅸを購入し たんです。あれは、 MotoroIa 68 プロセッ サが出回りはじめた頃でしたね。 68000 は、 Un ⅸを快適に実行することができる、初めて のマイクロプロセッサでした。そこで、今で 注 1 70 ベル電話研究所、・・ベル研 " と呼ばれることが多い。 BSD magazine 2000 No. 5
KAME プロジェクト便り 6 、 7 月はイベントの季節。 N + 1 2000 や INET 2000 では、 IPv6 が主役だったと言っても過言ではないでしよう。今回 はこれらのイベントについて、報告します。 N 十一 いました。また、 KAME (NetBSD) と Kondara Linux の間 しており、実際にピデオストリームを IPv6 を使って流して 松下電送システムは、 1394 テレビのプロトタイプを展示 BSD 、 Linux 、 Windows 2000 などのホストを用意しまし ックが 2 本、かわいらしい SOHO ルータが 3 つ、それから 展示としては、バックボーンルータを設置したルータラ ヤマハ ( 順不同 ) です。 HP 、日立、富士通、マイクロソフト、松下電送システム、 ゴルターマン、 NEC 、 Cisco 、デジタルファクトリ、日本 参加企業 / 団体は、 IIJ 、ウェープテック・ワンデル・ してくださいました。 は、 WIDE project 、 TAHI project 、 Kondara project が協力 という IPv6 専用のプースも用意されました。このプースに マイクロソフトがスポンサーとなり、「 IPv6ShowCase 」 含まれている FAITH を利用しました。 スレータを設置しました。トランスレータには、 KAME に IPv4 インターネットに接続できるように、大手町にトラン また、 N + I のネットワークにつないだ IPv6 端末から、 かない公衆端末 / コネクタもありました。 に、 RJ45 コネクタも用意されていました。 IPv6 の接続性し 公衆端末ェリアでは、自分のノートブックを繋げるよう Explorer を組み込みました。 用に特別に提供していただいた IPv 6 対応の lnternet Windows 2000 を搭載した pc には、マイクロソフトから N + I 公衆端末はすべて 1Pv6 に対応していました。その内 外線が大手町 (NSPIXP6) まで確保されていました。 中でも、東京が初めてです。また IPv6 のために 135M の対 されていました。このような試みは、世界をまわる N + I の すべての出展社プースには 1Pv6 の接続性が標準で提供 めました。 IPv6 時代の到来を強調したこともあって、 1Pv6 が注目を集 で開催されました。基調講演で、慶応大学の村井先生が N + 1 2000 Tokyo は、 6 月 7 日から 9 日にかけて幕張メッセ フロジェクト短信 では、 Qu e で対戦ゲームをやりました。 また、 IPv6 ShowCase では、 1 時間毎に IPv6 の技術者に よる発表があり、各企業の製品の特徴や 1Pv6 に関する戦 略を説明しました。これらの発表はたいへんな好評を博し 隣のプースに迷惑な程観客を集めました。 INET 2000 INET に先立っこと 1 週間、慶應義塾大学湘南藤沢キャ ンパスで、 NTW (Network Training Workshop) が開催さ 旧技術研究所山本和彦 / K 破加〃衂。 kazu@iijlab.net た。資料は、下記 URL にあります。 り、 7 月 11 日と 13 日にそれぞれのコースで弁をふるいまし IPv6 を教える時間をいただきました。萩野と私が講師とな WIDE/KAME project は、 6 つのコースの内 2 つに対して、 築する技術を集中的に教えます。 れました。発展途上国の方を招いて、インターネットを構 富士通研究所は xcast という新しいグループ通信の仕組み の 1Png 分科会の 2 人の議長に会話してもらいました。また、 アメリカのパロアルトと会場を含む数箇所を結び、 IETF す。 NTT Communications は、マルチキャストを使って、 N + I と違ったデモとしては、グループ通信が挙げられま 富士通研究所が参加しました。 サーのもと、新たに SUN 、 YDC 、 NTT Communications 、 した。今回はマイクロソフト、日立、そして NEC のスポン N + I と同様に、展示会場では IPv6 ShowCase を設営しま 能でした。 場のみならず、インターコンチネンタルホテルでも利用可 ネットワーク (IEEE 802.11) でしよう。会議場や展示会 1Pv6 に対応していました。特筆すべきは、 IPv6 対応の無線 コで開催されました。もちろん、すべてのネットワークが INET2000 は、 7 月 19 日から 21 日にかけて横浜パシフィ kazu—ntw—presen/ http : //playground ・ iij lab. net/material/ を使って、ビデオ中継やゲームをデモしていました。 BSD magazine 2000 No. 5 2
BOOK REVIEW ここでは最近出版された UN Ⅸ関連の書籍の中からいくつか取り上げる。 K ロ E プログラミング入門 KDE プログラミング入門 ASCII 2 , 200 円十税 A5 判、 244 ペーシ 旧 BN4-7561-3561-7 アスキー 杵渕聡・塙雅典訳 Uwe Thiem 著 / 高木淳司監訳、 CVS ーバーション管理システム で動作するよう差分情報が追加されている。 なお、原書の例題プログラムは KDE I.I べースだが、 KDE 2.0 で実現できる人 ) になっているだろう。 いう「ぐうたらなプログラマ」 ( やりたいことを最小限のコード つかむことに主眼を置いている。流れをマスターすれば、著者の く。 API の詳細には立ち入らす、アプリケーション開発の流れを 本書では、全体を通して 1 つのアプリケーションを作成してい コードがクラスライプラリとして用意されている。 ケーションフレームワークを構築しているため、使用頻度の高い る。 GUI ツールキットである Qt をベースにして、その上にアプリ KDE のもたらしたものの 1 つがアプリケーション開発環境であ ー直壓聞爾曲籘 ーーーーーー・・一言 . バージョン管賤シスデム 3 , 800 円十税 B5 変型、 352 ページ 旧 BN4-274-06372-0 オーム社 竹内里佳訳 KarI FogeI 著、でびあんぐる監訳、 一一、 22 ィー BSD magazine. 20001N6 , いての理解をより深めることができる。 ことで、ソフトウェア開発において cvs の果たしている役割につ かという点にについて、読み物として楽しめる。またそれを知る うに運営され、そこでソフトウェアがどのように開発されている する章が交互に現れる ) 。オープンソースプロジェクトがどのよ トについても述べている ( cvs に関する章とオープンソースに関 高度な使用法を解説するだけでなく、オープンソースプロジェク 本書は、 cvs の基本的な使い方や、リポジトリの管理などの オープンソースプロジェクトの開発に利用されている。 上げたバージョン管理システムだ。 * BSD をはじめとする多くの CVS (Current version System) は、本誌 No. 3 の特集でも取り IJN Ⅸネットワークプロクラミンク第 2 版 VoI.2 旧 C : プロセス間通信 V れ . S 00d E 0 れ 物破・′声 00 ・、、 Commun に・載 UNIXETYORK W ・リチード・ステ←ヴンス物臨田陽ー駅 ー : プロセス間通信 第 2 版 VoI.2 プログラミング UN ー X ネットワーク 4 , 800 円十税 B5 変型、 560 ページ 旧 B N4-89471-257-1 ピアソン・エテュケーション 篠田陽ー訳 W ・リチャード・スティーブンス著、 もある。 ったり、本文では誤解をまねきそうな状況での実行結果や説明 記されているので検索性は悪く、初心者の域を越える項目があ 本書を活用することができるだろう。しかし目次は長めの文で表 目次もあるので man を見てもさつばりわからないという場合にも は実行したい事柄で検索することができる。また、コマンド名の もそも実行すべきコマンド名を知らないことが多いと思う。本書 にはその長い長い説明 ( ときには英語 ) がわからなかったり、そ 使い方のわからないコマンドは man で調べろというが、初心者 2 , 180 円十税 A5 判、 303 ペーシ 旧 BN4-7741-1032-9 技術評論社 OfficeMASA 著 例文事典 UN ー X コマンド LJN Ⅸコマンド例文事典 sh/bash 編 もに、このような良書を遺してくれたことに感謝したい。 死去により出版の目処は立っていない。著者の冥福を祈るとと 予定であったが、たいへん残念なことに著者のスティーヴンスの なお、 voI.3 はネットワークアプリケーションについて書かれる 法は、かっての "Lions' Commentary on UNIX" を紡彿とさせる。 いる。さまざまな問題を実際にソースコードを示して解説する手 に取り上げ、この vol.2 ではプロセス間通信を重点的に解説して プして 3 冊組となる予定であった。 M 矼 1 ではソケット操作を中心 のひとつである。改訂版では、初版よりもかなりポリュームアッ ming" はたくさんのハッカーがバイプルとして愛読していた書籍 W. リチャード・スティーヴンスの "UNIX Network program
集 00 で M)YJ 衂 0 霧ツ 等を使用して、 NTP サーバーへの TCP / IP レベルでの接続が可能なことを 確認したら、 ntpd なり xntpd なり存在す るほうを r 。。 t で実行してみる。もし時 刻のずれがあまりに大きい場合は時刻 の同期ができないので、あらかじめほ ぽ正しい時刻に合わせておくとよい。 動作確認を行ったら、次に ntpd/ xntpd の自動起動を設定する。 NetBSD-current であれば、 /etc/rc. conf にリスト 2 のような行があるので、変更 する。 NetBSD 1.4. x の場合はリスト 3 のようになる。 FreeBSD での設定に関 マリスト 2 /etc/rc. conf (NetBSD-current の場合 ) xntpd—flags= 回構築した NTP サーバーと時刻の同期 で、同一ネットワーク内のマシンを今 ンは NTP サーバーとして利用できるの こうして ntpd/xntpd を起動させたマシ うに設定すれば良いはずである。 するスクリプトを起動時に実行するよ 様な方法を取るか、 ntpd/xntpd を起動 他の OS に関しては未確認だが、同 しては、 / etc / rc. conf に次の一行を追加 すればよい。 xntpd—enab1e="YES" nt pd=NO nt pd=YES ntpd—flags= ntpd—flags= 変更する v リスト 3 /etc/rc. conf (NetBSD 1 .4. x の場合 ) xntpd=NO xntpd=YES ・変更する xntpd—flags= -P /var/run/xntpd ・ pid" -p /var/run/xntpd. pid" を行うようにすると良い。その場合は /etc/ntp. conf の server の行の記述を変更 するだけで済む。他が Windows 系や Mac 等で構築されたネットワークでも Windows や Mac で動作する NTP クライ アント等が存在するので、そういうも のを利用して同期を取っておくと良い だろう ( 図 1 ) 。 ntpd/xntpd はサーバーに対して polling しながら時刻の同期を取るため、イン ターネットへ専用線等で繋いでいる場 合は何も考える必要がないが、ダイア ルアップ環境の場合はいくっか注意す る必要がある。たとえば外部へのバケ ットを検出して自動ダイアルを行うよ うな設定を行っている場合は、 NTP の polling バケットでダイアルしたりとい った 事が起こるので、意図しない接続を行 わないようにダイアルアップ環境全体 の設定を十分考えておく必要があるだ ( 外部の ) NTP サーバー このマシンのみ外部の NTP サーバーと同期を取る 自前の NTP サーバー ( A ) Windows Mac FreeBSD Solaris HP-UX NetBSD Linux これらはすべて「自前の NTP サーバー ( A ) 」と時刻同期をとる 図 1 起動した NTP サーバーと同期を取る 2000 No. 5 BSD magazine 709
などを参考にしてもらいたい。これら GW : 10 と設定する。つまり、 csh 系なら バケットを H 。 stGW が受け取り、それ の設定をしておけば、 ssh を使って が natd を経由する際に終点を H 。 stGW ば HostA から HostB にログインして、 x ク から H 。 stA に変更し、さらに、 HostA ライアントを立ち上げると H 。 stA の x サ の 6000 番ポートを指定してコネクショ ーバーにウインドウが開くことになる。 ンを張っている。ここで 6010 番や 6000 番ポートが出ているが、これについて 次に、 natd の機能により転送する方 sh 系ならば 法を説明する。 natd には、指定ポート は後述する。 に入ってくるコネクションを、指定し そして、 natd を再起動する ()S を % export DISPLAY=HostGW : 10 たホストの指定したポートに転送する reb 。。 t するのが安全だろう ) 。これで、 機能がある。これを使って x クライア システム側の設定は終了である。 こで、数字の対応につ などとする。 ントの転送をすることができる。図 3 次に、ユーザーの利用方法について いて説明すると、環境変数 DISPLAY の がこの仕組みのイメージ図である。 説明する。図 3 において H 。 stA で x サー ディスプレイ番号の 10 は、 natd. conf で リスト 1 の rc. conf の設定に 設定した 6010 番ポートの下二桁の 10 が バーを利用しているとする。まずは、 対応している。 x クライアントを立ち HostA において 上げたら % setenv DISPLAY HostGW: 10 natd—flags= —f /etc/natd. conf" を加え、 /etc/natd. conf を次の内容にす る。 % xhost + HostB 6000 + ティスプレイ番号 を実行して、 HostA の x サーバーに対 のポートを指定してコネクションを張 して HostB からの x クライアントのアク セスを許可する。なお /etc/hosts ファイ る。よって、上の設定の後に HostB で redirect-port tcp 192.168.0.2 : 6000 6010 ルなどで H 。 stB が 10.0.0.2 であること定 x クライアントを起動すると、 HostGW 義しているものとする ( 次の HostGW の 6010 番ポートにコネクションを張る これは、 6010 ポートにアクセスしてき の定義も含め、もし定義がなければ IP たコネクションを、 192.168.0.2 の 6000 ことになる。このバケットが natd を通 ポートに転送することを意味する。図 アドレスでも構わない ) 。そして、 HostA る際に、 redirect-port で指定したポート 3 においては HostB からの 6010 番ポート から HostB に telnet などでログインする。 に一致するバケットであることから、 を指定してコネクションを張ってきた HostB で、環境変数 DISPLAY を Host 終点やポート番号をぞれぞれ H 。 stA 、 Host A ( 192.168.0.2 ) s 广 c 内 os 0 内 0 ・図 Host GW natd s 「 c 内 os Host B 0 内 0 G ル ( 10.0.0.2 ) divert ソケット ed0 ( 192.168.0.1 ) fxpO ( 10.0.0.1 ) 外部ネットワーク ( イントラネットなど ) 内部ネットワーク 図 3 X クライアントの引き込み B magazin O N 5
集 皀 SD で My Se 内 0 了を作る セキュリティとフツアウォー 福島茂之 /Shigeyuki Fukushlm shige@FreeBSD.org 合があり、また、ゲートウェイは 1 台ま イレベルの高いネットワ ークを構築す たは複数の機械から構成される。単純 ることができる。 な構成要素の場合、要塞ホストと呼ば バケットフィルタリング ファイアウォール (Fire wall) とは、 れるホストコンピュータでゲートウェ IP バケットのフィルタリングを行う イ機能とフィルタ機能を実現している 一般的には火炎を食いとめるための防 場合が多いため、「ファイアウォール = 手法である。バケットフィルタリング 火壁のことを指す。ネットワークの世 要塞ホスト」という誤解を受けやすい をスクリーニング (screening) と呼ぶ 界では、あるローカルネットワークへ この手法では、 IP バケッ の悪意ある者の侵入を阻んだり、内部 がそうではない。また、このゲートウ こともある。 ェイの位置する場所は、非武装地帯 トの中の始点アドレス・終点アドレ からの機密の漏曳を阻んだりするため ス・ TCP/UDP の始点ポート番号 / 終点 (DMZ: De-MiIitarized zone) と呼ばれ の機構のことを指している。ファイア ポート番号・ TCP バケットのフラグな ウォールは、概念的には、図 1 のよう る。 どにより、 IP バケットの通過・遮断を なフィルタとゲートウェイから構成さ ファイアウォールの構築手法 決定する。このため、あらかじめ、通 れる。フィルタは、特定の種類のトラ フィックを通過または遮断させるよう ファイアウォールの構築には、主に 過・遮断したいバケットのルールを決 定し、セキュリティポリシーを確立す 以下の 3 つの手法を用いる。これらの な機構を持ち、ゲートウェイは、通過 ること、確立したポリシーを元に、実 したフィルタを中継する機構を持って 手法を適切に組み合わせてファイアウ 装されたバケットフィルタリング機能 いる。フィルタは片方または両方の場 ォールを構築することで、セキュリテ で定義された文法ルール通り正しく記 述し設定することが必要になる。この 外 手法では、上記のように詳細な制御を できる反面、設定ミスなどによる危険 も大きいため、ファイアウォールを構 築する管理者には、細かな注意と OS 上の TCP/UDP ポートの使用法に関する 詳細な知識が必要とされる。バケット フィルタリングの機能の実装として、 FreeBSD の ipfirewall (ipfw) や ipfilter (FreeBSD/NetBSD に付属、 http://coom bs.anu.edu/au/-avalon/) などがある。 proxy サービス ゲートウェイでの内→外・外→内の バケットの転送を完全に停止し、ゲー トウェイ上に用意された pr 。 xy サービス 25 BSD magazine 、ツ”、て′” , ツ叱宅メリツ フ 外側の f ⅱ te 「 GW DMZ 内側の filter 内 図 1 ファイアウォールの構成 2000 No. 5
集 SD で M)Y S 斷了を作るツ $ sh Bui1d Configuration : pfx= , os=FreeBSD , て el = 4. I—RELEASE , rbase=4 , rroot=4. I¯RELEASE, arch=i386 , Using M4=/usr/bin/m4 Creating ・・ /0bj . FreeBSD. 4. I—RELEASE. i386/sendmai1 using .. /devt001s/OS/FreeBSD Making dependencies in .. /0bj . FreeBSD. 4. I¯RELEASE. i386/sendmail sfx= variant=optimized CC ー 0 sendmail main. 0 alias . 0 arpadate . 0 bf—torek. 0 CIOCk. 0 collect . 0 conf . 0 . 0 . 0 daemon. 0 deliver. 0 domain. 0 envelope. 0 err. 0 headers. 0 macro. 0 map. 0 mci. 0 milter. 0 mime. 0 parseaddr. 0 queue. 0 readcf . 0 reclpient. 0 savemail. 0 sfsasl. 0 shmticklib. 0 srvrsmtp. 0 stab. 0 stats. 0 sysexits. 0 timers. 0 trace. 0 udb. 0 usersmtp. 0 util . 0 version. 0 . /libsmutil/libsmutil . a —lutil groff groff groff groff —TaSCII —Tascii —TaSCII —Tascii —man sendmail. 8 > sendmail. 0 Ⅱ cp sendmail. 0. dist sendmail. 0 —man aliases. 5 > aliases. 0 Ⅱ cp aliases. 0. dist aliases. 0 —man mailq. 1 > mailq. 0 Ⅱ cp mailq. 0. dist mailq. 0 —man newaliases. 1 > newaliases. 0 ーー CP newaliases. 0. diSt newaliases. 0 画面 9 sendmail のインストール マリスト 6 /etc/mail/mailer. conf sendmail S end—mai 1 mailq newaliases /usr/libexec/sendmail/sendmail /usr/libexec/sendmail/sendmail /usr/libexec/sendmail/sendmail /usr/libexec/sendmail/sendmail sendmail-8.11.0 以下にある mail.local や mailstats 、 praliases 、 makem 叩などの他 のコマンドもインストールする。イン ストール方法は同じで、各ディレクト リに移って shBuild でバイナリを作り、 makeinstall でインストールする。 なお、最近の * BSD には Kame が入っ ており、 IPv6 も利用することができる。 なんらかの手段で IPv6 ネットワークに 繋がっている方も多いと思うが、 sendmail 8.11.0 を IPv6 対応にするには s e n d m a i I - 8 . 1 1 . 0 / d e v t 0 01 s / S i t e に site. config. m4 というファイルを作成し、 中には define ( 、 confENVDEF ー —DNETINET6 つ という行を入れておけばいいだろう ( もちろん、各バイナリを作る前に行 う ) 。 一般に sendma ⅱの設定はかなり難し いと言われているのだが、今回対象と しているネットワークの MTAI や MTA2 ではそれほどでもないだろう。 設定は cf というツールを用いて行う。 8.9.3 以前のバージョンの Sendmail であ れば CF という便利なツールがあったの だが、 8.11.0 には対応していないようだ ( 今後、対応されるのかどうか筆者は 知らないのだが、対応されると嬉しい 人は少なからずいるのではないかと思 う ) 。 さて、 cf では m4 というツールを用い て SendmaiI 用の設定ファイルである sendmail.cf を作成するため、われわれ が作成するのは m4 に与える指示であ る。 sendmail-8.11.0/cf/cf にさまざまな 例がある (. mc という suf ⅱ x で終わる名 前のファイル ) ので、これらを参考に 自分の環境に合ったものを作ればよい。 NetBSD 、 OpenBSD 、 FreeBSD および BSD/OS はすべて 4.4BSD 由来の OS なの で、土台にするファイルは generic ー bsd4.4. mc がいいだろう。 このファイルを適当な名前 ( ここで は mysendmail. mc とする ) でコピーした ら、 mysendmail. mc をエデイタで開き、 リスト 7 のように編集しよう。 これは generic-bsd4.4. mc に FEATURE や DAEMON OPTIONS といったマクロ を少し加えたものであるが、基本は同 じだ。 m4 に与えるファイルの構成はだ し、たし、 VERSIONID OSTYPE DOMAIN FEATURE 10Ca1 macro definitions MA I LER LOCAL_RULE_* LOCAL_RULESETS といった形になるが、今回のようなシ ンプルなネットワーク構成では、すべ て必要なわけではなく、リスト 7 のよう に単純なものになる。 今回用いたマクロについて簡単に説 明しよう。 2000 No. 5 BSD magazine
考慮すると困難である。もう少し構成 要素の少ないネットワーク構成として、 Dual-Homed Host Architecture (DHA) や Screened Host Architecture (SHA) があるが、それぞれ、図 1 の DMZ の部 分 ( 外部ルーター、内部ルーター、外 部向けサーバー ) が一体化した構成 (DHA) 、図 1 の内部ルーターを省略し た構成 (SHA) ととらえることで、機 能分担としては図 1 のようになってい るとして考えていくことにする。 このネットワーク構成では、外部に晒 す部分を DMZ (De-Militarized zone) として、利用者計算機のある内部と分 離し、外部からアクセスされる部分を できる限り小さくしようとしているわ けである。この観点から、当然 SHA や DHA の構造はより弱いネットワー ク構成であると言えるので、事務所ク ラスであれば、 SSA の構造を実現する べきであろう。 さて、 The lnternet へ接続するために は、最低 1 つ以上の Global IP address が 利用可能でなければならない。 OCN 工 ーのようにある程度の数の コノ GIobaI IP address を付与してもらえるサ ービスであれば、 DMZ にある外部ルー ターと外部向けサーバー、内部ルータ ーを個別に Global IP address を用いて接 続することができる。ーっの Global IP addr ss しか付与してもらえないサービ であればいそのアドレスは外部ルー P address 注 3 を割り振ることになる。外部 向けサーバーにも private IP address を割 り振ることになってしまうが、外部ル ーター部分で port forwarding 機能注 4 を 提供できればよい。内部にはできるだ け private IP address を割り振り、そのま までは外部と直接通信することが困難 であるようにしておくとよい。 図 1 のようなネットワーク構成例を 元に、それぞれの部分で利用可能な機 材や注意点を挙げておく。 外部ルーター部分 OCN 工コノミーやフレツツ・ ISDN であれば、高々 128kbps (2B) 程度の トラフィックをさばければよいので、 低価格の ISDN ルーターなどが候補とな る。最近の低価格 ISDN ルーターは、 DSU や TA を内蔵している上、値段の 割にバケットフィルタや、ロギングな ど、意外に高機能であり、使い勝手が よい。特に YAMAHA の RT シリーズは、 CLI (Command Line lnterface) が充実 しており、 * BSD 系ユーザーとしては好 感が持てる。 ・ YAMAHA RT-80i 、 RTA-52i 注 5 ・ NTT-ME MN128- SOHO 系注 6 だが、もっと高機能なフィルタ機能 や、 SNMP agent 、 IPv6 tunnel 、 VPN 、 ルーティングプロトコルを利用したい という場合には、 IntelPC に TA という 構成に * BSD を搭載する方法がある。 PC と TA との間の接続には、シリアル 接続 (EIA-574) がまだまだ多いが、 128kbps (2B) を出すためには最低で も 230.4kbps クラスの接続が必要とな る。できれば USB 接続可能な TA が使 えるとよいだろう。 フィルタ機能には ipfil (NetBSD) や ipfw (FreeBSD) 、 SNMP agent には 注 7 、 IPv6 tunnel には KAME ucd-snmp project 注 8 の実装、 VPN には VPN package 注 9 、ルーティングプロトコルに は gated 注や zebra 注 11 などが利用でき る。さらに、 port forwarding 機能とし ては、 ipnat (NetBSD) や natd (Free BSD) だけではなく、 DeleGate 注 12 や FWTK 注 13 などが利用できる。ただし、 DeleGate のようなアプリケーションレ ベルのものは、容易に外部から外部へ のアクセスすなわち踏台に利用される 可能性があるので、設定には十分注意 する必要がある。 また、 InteIPC のうちでもノート型の ものに TA と PCMCIA か USB のイーサネ ットカードという構成を取ると、 UPS 付きのルーターとしても扱える。ただ し、電池自体が消耗して肝心なときに 役に立たないこともあるので注意が必 要である。 内部ルーター部分 内部から外部への通信路の太さ分 注 5 注 6 1 朝 .0.0.0 / 8 , ・ⅱ 2J6.0.0 / 12 , 192.168.0.0 / 16 ) ア七ネ別の計算機の ( 別の ) po ヘ転送すること。 / ww. kame. 鷓び uCd-snmp. ucdavis 、 edu/ i//w w.fitt-me. co. JP nm128 / 、れ pro. amaha Gjp/ . et/- u ån/soft/vpn-l. 0. tar. gz 注 9 h : / 、 leu. west. 注 11 htt . / ww. 「 a. 0 注 10 htt ⅳ g . g/ 注 12 注 1 22 ・ elegat.org/ ://www.fwtk.or B magazin 20 0 N 5
BSD magazine2000 NO. 5 1. 本誌の購入先 ロ書店ロパソコンショップロ生協ロその他 ( 2. お使いのコンピュータをお書きくたさい ロ PC -9801 / PC -9821 シリーズ ロ AT 互換機 (DOS/V マシン ) ロ Macintosh ロその他 3. お使いの OS がありましたらお書きくたさい ロ FreeBSD ロ Linux ロ MacOS ロ NetBSD ロ OpenBSD ロ BSD/OS ロ Windows 95 / 98 ロその他 ( ロ Windows NT 4. 本誌でおもしろかった記事、つまらなかった記事は ? おもしろかった記事 ( つまらなかった記事 ( 5. 本誌の記事のレベルは ? 7. ご意見、ご感想がありましたらお聞かせくたさい ロアプリケーションロ BSD カルチャー ロその他 ( ロインストールロシステム管理ロネットワークロプログラミング 6. 関心のある記事のジャンルは ? ロ難しい口ちょうどいいロやさしいロやさしすぎる ご協力ありがとうございました。
表 1 想定している環境 接続工ントリ名 ispdialup TA を接続するシリアルポート 使用する PPP デバイス 接続速度 旧 P アクセスポイント 旧 P アカウント名 旧 P パスワード名 旧 P アカウント認証方法 旧 P 側のネットワークアドレス LAN 側のネットワークアドレス LAN 側のインターフェイス COMI (com0) ppp0 ISDN 同期 64K ( B チャンネル ICH ) OX-AAAA- B B B B f00 bar PA P X. Y. Z. x / 24 192.16.1.1 ne0 表 2 pppd の設定 /etc/ppp/options llll ロ 定 ル又 各ポート固有の設定を記述する 接続先定義毎の固有の設定を記述する ューザー固有の接続設定を記述する PAP 認証用のパスワード情報を記述する CHAP 認証用のパスワード情報を記述する 旧 v4 接続時に自動的に実行するスクリプト / コマンド 旧 v4 切断時に自動的に実行するスクリプト / コマンド /etc/ppp/options. tty 名 /etc/ppp/peers/ 接続名 -/. ppprc /etc/ppp/pap-secrets /etc/ppp/chap-secrets /etc/ppp/iP-UP /etc/ppp/ip-down 特にポート固有の設定が必要なければ、 個別解説は今回は省いているので、オ もし COMI が 19200bPS までしか使用 ンラインマニュアル等を参照してほし できず、 COM2 は 115200bPS まで利用 このファイルは不要である。 できるというような場合には、上記の 115200 部分を削除してポート毎にそれ 19200 /etc/ppp/options の設定 ぞれ設定すればよい。 /etc/ppp/peers/ 接続名の設定 options ファイルにはすべての接続設 定に共通の pppd オプションを記述す /etc/ppp/options. dtyOO の設定 /etc/ppp/peers/—ファイルを用意する ことで、「 pppd call 接続名」の形式で る。大抵のダイアルアップ接続であれ たとえば PPP 接続に /dev/dty00 に繋が ば、次のような記述で十分だろうと思 れたモデム /TA を使用する場合には、 ppp 接続することが可能となる。たと /etc/ppp/options. dty00 にポート毎の設定 えばあるプロバイダ用の接続名を われる を行うことができる。たとえば前述の ispdialup という名前とすると、 /etc ゆ pp ように 19200bPS までしかサポートしな /peers/ispdialup というファイルを作成 いシリアルポートを使用するのであれ し、接続用の定義を記述しておく ( リ ば、次のように記述すれば良いだろう。 スト 1 ) 。これによって「 pppd call 0 115200 crtsctS modem iock マリスト 1 /etc/ppp/peers/ispdialup の設定 /dev/dtyOO noipdefault defaultroute idle 90 noauth connect 'chat -v —f /etc/ppp/chat/ispdialup ー papcrypt netmask 255.255.255.0 user f00 5 石、 B magazin 20 0 N 5