[LinuxFocus-icon]
ホーム  |  マップ  |  一覧  |  検索

ニュース | アーカイブ | リンク | LFについて
[an error occurred while processing this directive]
convert to palmConvert to GutenPalm
or to PalmDoc

Georges Tarbouriech
by Georges Tarbouriech
<georges.t(at)linuxfocus.org>

著者紹介:

Georges はずっと Unix を使ってきました。特にフリーな Unix システムが大好きです。



日本語訳:
須藤 賢一 <deep_blue/at/users.sourceforge.jp>

目次:

 

FreeBSD はいかが?

freebsd

要約:

そう、もちろんここは LinuxFocus ですよ。 でも、Linux 以外にもフリーな Unix があって、とってもおもしろい機能が満載です。 この記事ではもうひとつの Unix、FreeBSD を紹介します。

_________________ _________________ _________________

 

どうしてまた FreeBSD なの?

フリーの Unix といえば、みんな Linux を思い浮かべます。 確かに Linux は普及しているし、(ほとんど)誰でも名前を聞いたことがあるでしょう。 ユーザーも増え続けているし、各種メディア (専門的なものもそうでないものも) は Linux についてゴチャゴチャと騒ぎ立てています。 Linux が成功した理由のひとつは、Linux が Intel マシンで動くことでしょう。 Intel マシンは最も広まっているコンピューターアーキテクチャなのです。 もちろん、その他たくさんのプロセッサでも動きます。 「プロセッサは何でも構わない」というのが Unix の思想のひとつですから。 いずれにしろ、Linux がもっと「秘密の」プロセッサ向けに作られていたなら、これほど成功することはなかったでしょう。 少なくとも、ここまで来るのにもっと時間がかかったはずです。
でも、フリー Unix は Linux だけではありません。 それは BSD ファミリーです。 BSD ファミリーには、FreeBSD、NetBSD、OpenBSD の3種類があります。 BSD は Berkeley Software Distribution の略です。 Unix の歴史をもっと知りたい方は、記事 176 を見て下さい。 (尚、この記事では BSD と System V の違いについては触れていません。 それを知りたければ書籍を参照する必要があります。)
これらの 3 種類はちょっとずつ違っています。

  1. NetBSD は、世の中の (ほぼ) ありとあらゆるプラットフォームで動作します。 その中にはとても旧式のコンピューターも含みます。 だいたい 30 から 40 種類のプラットフォームで動くのではないでしょうか。 Unix ではプロセッサは何でも構わないと言いましたが、NetBSD がそれを証明してくれています。 もし自宅や会社にガラクタ機があるなら (もちろんそれしか持っていないわけではないでしょうが)、NetBSD がお勧めです。 私は NetBSD を Amiga と Intel マシンで何年か使っていましたが、快適に動いてくれました。
  2. OpenBSD は最もセキュアな Unix のひとつとして知られています。 サーバーに向いていて、もちろんいろいろなプロセッサ上で動きます。 きっとインターネットではサーバー用途として最も多用されているシステムのひとつでしょう。 でも家庭では使われていないと思います。家庭では好き勝手できる方が好まれるからです。
  3. FreeBSD は上記の 2 つの中間に位置します。 Intel プロセッサと Alpha プロセッサに特化していて、セキュリティに関する思想は OpenBSD から受け継いでいます。 Linux と同様に Intel プロセッサ上で動くということで、BSD の中では最も普及しています。 自宅で使うのに適していますが、もちろん仕事でも使えます。
FreeBSD について付け加えますと、FreeBSD の成果は Apple の Mac OS X のフリーソフトウェアの部分に採り入れられています。 私が OS X がとっても好きだという話はさておき、BSD をベースにしているからといって、OS X のカーネルは FreeBSD とは何の関係もないので、ご注意ください。 OS X のカーネルは Mach カーネルで、OS X の父とも言うべき NeXTstep でも使われていました。 NeXTstep は 80 年代に作られた OS ですから、それよりはもちろん進化しているでしょうけどね。
ではもっと詳しくいくとしましょう。

 

FreeBSD の入手とインストール

他のフリーソフトウェアと同様、FreeBSD はウェブサイトからダウンロードすることができます。 それにはもちろん、高速な回線が必要です。 でも、遅い回線を使っている方もご心配なく。世界中の至る所に CD が売っています。
現時点 (この記事を書いている時点) での最新版は 4.6 です。 尚、この記事では i386 版について説明します。
グラフィカルなインストーラーこそないののの、CD-ROM 等からインストールするのはとても簡単です。 説明書の通りにするだけで、ハードディスクにすっぽりと入ることになります。 もちろん、ディスクのパーティションを切り、ネットワークとかカーネルの設定 (やるかどうかは自由) をすることになります。 次に sysinstall が起動します。 これはその名の通りインストール作業のほとんどをやってくれるすごいツールです。 大量のパッケージ全部をインストールするか、その一部をインストールするかは選択することができます。 後から追加することもできます。
パッケージの管理も分かりやすいです。 Solaris と同様に pkg コマンドを使ったり、ports を使うこともできます。 言ってみれば、pkg コマンドは Linux で言う rpm や deb コマンドに相当します。 ports というのはアーカイブで、make と make install でコンパイルします。 取り立てて複雑だとか難しいということはありません。
ちなみに、Linux 互換パッケージはインストールした方が良いでしょう。 Linux アプリケーションをコンパイルして動作させることができるのです。
何度もしつこいようですが、とっても分かりやすいです。 もし困ったら各種の手順が書かれた便利なハンドブックがあります。 さらに、このハンドブックには各国語版があります。
もうここでくどくど説明する必要もないでしょう。

 

設定

隅から隅まで説明することはしません。 重要なファイルがどこにあるのかを知るのが大切です。 これらのファイルは他の OS と同じく /etc にあります。 rc.何々 という名前になっていて、一般的な設定や、ファイアーウォール、ネットワーク、sysctl 等の各種設定を行うようになっています。
rc.conf ファイルは重要です。 その名の通り各種設定を行います。 このファイルには、デーモン (sshd や sendmail など) を起動するかどうか、ファイアーウォールの種類、カーネルのセキュアレベルを有効にするかどうか、IPv6 を有効にするかどうかなどを指定します。 たくさんのオプションがありますが、デフォルトのファイル /etc/defaults/rc.conf に全て書かれています。 このファイルは設定の例ではなく、デフォルトの設定であることに注意してください。 すなわち、そこに書いてある設定の内容を /etc/rc.conf が上書きするということです。 ですから、/etc/defaults/rc.conf を /etc/rc.conf にコピーしたり、それ自体を変更したりしないでください。 変更は /etc/rc.conf で行ってください。
ちなみに、sysinstall で指定した内容は /etc/rc.conf に自動的に反映されます (ネットワークカードの設定、ホスト名、セキュアレベルなどです)。
重要: FreeBSD では /etc/inetd.conf のサービスはどれも有効になっていません。 すなわち、初回起動時は inetd 配下で動作するデーモンは全てオフになっているのです。 他の Unix もこれを見習うべきだと、私は思います。 これはとても良いことです。
その他の rc ファイルでは、ファイアーウォールや sysctl やその他もろもろの設定ができます。 今度はそれらを使ってチューニングをすることにしましょう。

 

チューニング

チューニングをするのに最適なツールは sysctl (Linux と同じです!) です。 コマンドラインで値を指定するか、sysctl.conf に指定することができます (テスト目的でコマンドラインを使う以外は後者がお勧めです)。
例えば、マシンをゲートウェイとして動かすなら、sysctl -w net.inet.ip.forwarding=1 のようにコマンドを実行することで ip フォワーディングが有効になります。 セキュリティを高めたければ、sysctl -w net.inet.ip.check_interface=1 のようにすることで、あるインターフェースから入って来たパケットがそのインターフェースの IP アドレス宛になっていることをチェックすることができます。 sysctl を使えば、システムの大抵のことが制御できますので、man ページを参照してください。 もちろん、ここで挙げたコマンドは sysctl.conf ファイルに書くこともできます。 その場合には、sysctl コマンドを除いた引数の部分を指定します。 ファイルのフォーマットは 変数 = 値 となっています。 上記で説明した例は以下のようになります。
net.inet.ip.forwarding=1
net.inet.ip.check_interface=1
もちろん、sysctl.conf はこの 2 行だけというわけではありません。 カーネルレベルのほとんど全てを制御することができるのです。
ちょっと前にセキュアレベルに触れましたが、セキュアレベルには -1 から 3 までの 4 種類があります。 -1 はセキュアでないレベルで、3 が最も高いセキュリティレベルです。 どれを使うかを決める前に、それぞれのレベルがどういうものなのかを理解した方が良いでしょう。 -1 と 0 以外のレベルでは、きっとシステムは期待通りに動作しなくなることでしょう。 レベル 1 にしただけで X サーバーがきちんと動作しなくなります。 また、カーネルモジュールのロードとアンロードもできなくなりますのでご注意ください。
しかしながら、これら高いセキュリティレベルは、高度なセキュリティを必要とする特定のサーバーにとっては便利なものです。 自宅で使うにはレベル 0 がいいとは思いますが、ご自由にどうぞ。
chflags コマンドはセキュリティレベルに関係します。 man ページでこのコマンドを調べて下さい。 とっても強力なコマンドですよ。
この話題を続けていくと「FreeBSD をセキュアにする」という記事が出来上がってしまいそうですから、そろそろ次の話題に移りましょう。

 

アップグレード

FreeBSD 4.5 の CD セットを買ったばかりなのに、その何日か後に FreeBSD 4.6 がリリースされてしまったとしましょう。 ついてないですね。
でも、そんな時でも心配は無用です。 FreeBSD には CVS を使ったアップグレード機構が備わっています。 anonymous CVS か CVSup を使うことができます。 前者の方が使うのが簡単ですが、機能が多いのは後者です。 どちらかのツールを使って新しいソースツリーを取得して同期させることになります。
次に、make buildworld を使って最新のソース全体をコンパイルする必要があります。 これらの手順はハンドブックで親切に説明されています。 重要なのは、この方法でシステムを常に最新の状態にできるという点です。
それだけにはとどまりません。 フリーソフトウェアでは普通のことですが、FreeBSDでは各種の脆弱性が見つかっても迅速に解決されます。 多くの市販のシステムでは脆弱性がいつまでたっても修正されないのと違って、フリーソフトウェアに関わっている人々は、目にも止まらぬ速さで行動してパッチを提供してくれます。 もちろん、世の中の動きについていくのは利用者の役目です。 FreeBSD のウェブサイトにはセキュリティセクションがあって、リリース毎のセキュリティ勧告が掲載されています。 そこでは .asc ファイル (テキストファイル) のダウンロードが可能です。 このファイルには利用者が知っておくべき内容、問題の説明とその解決策が載っています。 他のウェブサイトでもこの情報が提供されていいます。 例えば、linuxsecurityCERT などです。
そうなると次に必要なのは、システムのアップデートです。

 

アップデート

既知の脆弱性をずっとそのままにしておきたくはないですよね? FreeBSD でも他の Unix と同様にパッチが提供されます。 パッチを取ってきて適用しましょう。 Linux に慣れている人にとっての違いは、修正版のパッケージの代わりにパッチのソースを取ってくることです。 つまり、カーネルソースにパッチを当てたらコンパイルしないといけないということを意味します。 もちろん、マシンにはソースコードがインストールされているのが前提です。 これは Linux でも同様です。 ですが、Linux では修正されたアプリケーションとパッチの当たったカーネルの rpm (例えば) をインストールする人が多いです。
Linux と FreeBSD の最も大きな違いのひとつがカーネルです。 FreeBSD は BSD 4.4 をベースとしていて、Linux のようにいろいろな種類のカーネルは存在しません。 よってカーネルは安定していますが、時間とともに巨大になり、モジュールを使ってもなお一枚岩的になりがちです。 このことの欠点は、システムをできるだけセキュアな状態にしておこうと思ったら、Linux に比べて頻繁にカーネルをコンパイルしないといけないということです。
まあ、私個人としては Linux の思想よりもこちらの方が好きですが、あくまで個人の意見です。 私は、例えば 3 つの違うカーネルがどれも現役であるというのが、安定性につながるとはどうしても思えないのです。 あるバージョンから他のバージョンに移植しないといけないアプリケーション、特にセキュリティに関係するものについては言うまでもありません。 他の例としてはパケットフィルタリング機構が挙げられます。 カーネルのバージョンが 3 つあれば、パケットフィルタリングソフトウェアも別々なのです。 これ以外でも同様なものがいろいろとあります。
この偉業を成し遂げた方々には敬意を表しますが、これが正しいやり方なのでしょうか。 改良は確かに必要なのですが、毎回全てを変えるというやりかたは筋が通っているのでしょうか。 まあいいか。
もちろん、新しいカーネルをコンパイルする際には、自分の要件に合うようにチューニングすることができます。 やり方は Linux と似ています。 具体的な方法はハンドブックに書いてありますので、ここでは他のことを話題にしましょう。

 

アプリケーション

前述のように、フリーソフトウェアのアプリケーションの大多数 (全てではないにせよ) が FreeBSD でも動きます。 先に説明した ports やパッケージは無くても大丈夫です。 どんな種類のソフトウェアであれ、たいていのアーカイブをコンパイルできます。
デスクトップ環境がないと生きていけないなら、Gnome や KDE がディストリビューションに入っています。 ウィンドウマネージャーも同様です。 GNUstep フレームワークも動きます。 ただし、コンパイルするには、ディストリビューションに入っている gcc ではなく、新しいバージョンが必要になります。 単に適当なアーカイブを取ってきて、新しいコンパイラをコンパイルするだけです。 もちろん、GNUMail.app や Gorm.app や ProjectBuilder 等の GNUstep アプリケーションも動きます。
Linux で使えるソフトウェアは何でも動くし、他にもいろんなソフトがあるのです。
例えば、FreeBSD にはセキュリティに関するツールがたくさんついてきます。 ディストリビューションにはモニタリングツールや管理ツールなどが入っています。
ファイアーウォール、ポートスキャナ、IDS などもあります。 例えば、IPsec と ipfw のどちらでも好きな方を選べます。 sessus、nmap、portsentry もあります。 繰り返しますが、こういったツールのほとんどはディストリビューションにも入っていますし、最新版を取ってきてコンパイルすることもできます。
デスクトップ環境とウィンドウマネージャーについては既に述べましたが、それに必要な X Window System の説明がまだでした。 今は XFree 4.X がデフォルトです。 一応言っておきますと、FreeBSD 4.5 までは XFee 3.* がデフォルトでした。 つまり、XFree 4.* もディストリビューションには入っていましたが、インストーラーが XFree 3.* を選ぶようになっていたのです。 今は XFree 4.* がデフォルトですが、3.* の方が良ければそちらを使うこともできます。

 

ハードウェア

i386 版に関して言えば、FreeBSD は多少旧式のものも含めほとんどあらゆるハードウェアで動きます。 古い 3Com のコンボネットワークカードだって、ifconfig コマンドでメディアに種類を指定しさえすればちゃんと動きます。 BNC 接続を使っているなら、/etc/rc.conf の ifconfig 行の最後に「media 10base2/BNC」を追加するだけです。
古いグラフィックカードについても同様です。 XFree 4.* を使うことで大抵の問題は解決されます。古い ATI のカードならなおさらそうです。
もし心配なら、FreeBSD のウェブサイトにあるハードウェアに関する注意事項を読むのも良いでしょう。

 

セキュリティ

ファイアーウォール、ポートスキャナなどのツールについては既に説明しました。 FreeBSD には他にもセキュリティツールがたくさんあります。 OpenSSH、OpenSSL、Kerberos、MD5 などはディストリビューションに入っています。 これらのツールがなくては始まりませんし、発生しうる脆弱性についてはチェックしないといけません。
最近の事例を見ると、注意を怠らないことがとても重要になってきています。 仮に OpenSSH にセキュリティホールが見つかったのを知ったとしましょう。 次に起こすべき行動は、そのウェブサイトに行って、修正済のバージョンをダウンロードすることです。
でも、それだけでは足りません。 パッケージのチェックサムを確認してください。
OpenSSH を引き合いに出したのは偶然ではありません。 何週間か前に、誰かがオリジナルの OpenSSH のアーカイブを別のものに置き換えたのです。 そのときの OpenSSH 側の対応は速かったのですが、この一瞬の間にパッケージをダウンロードしたユーザーは、壊れたバージョンをインストールすることになったのです。 チェックサムを使って管理するということは、このように重要なのです。
この記事の範囲を越えてしまいますが、これだけは言っておきますと、セキュリティを高めるには何よりもまず人間の行動が重要なのです。

 

通信

FreeBSD のネットワークもだいぶ進化しました。 IPv6 もしっかりと実装されていますし、新しい通信手段のサポートも抜かりがありません。 ADSL やケーブルモデムを使っているなら、設定はとても簡単です。
今では多くの ISP が PPPoE を使っています。 FreeBSD では PPPoE をとても簡単に設定できます。 ppp.conf に数行追加するだけなのです。 現時点で PPPoA (ATM) については Alcatel 社のモデムだけがサポートされています。 この状況もすぐに変わるでしょう (既にこれ以外のモデムもサポートされているのかも知れません)。

 

ドキュメント

ハンドブック以外にもドキュメントはいろいろあります。 FreeBSD のウェブサイトには FAQ、インストールガイドなどがあります。 これ以外でも重要な情報が http://www.freebsd-howto.com にあります。

 

さてその次は

これまでごく簡単に FreeBSD を見てきました。 他のフリー Unix と同じく、とても面白いシステムです。 素晴しい機能が満載で、試してみる価値があります。 残念なことにこの記事では詳細なレビューができず、触れることのできなかった重要な機能もたくさんあります。
FreeBSD を使うには、ウィンドウを多用した Linux システムに比べて多くの Unix の知識が必要になりますが、それでも使うのはとても簡単です。
当然、Unix の知識が全く無いと戸惑ってしまうでしょう。 システムをアップデートしてカーネルを再コンパイルする場面が結構あるからです。 でも、勉強にはなると思います。時間はそれなりにかかるかも知れませんが。 忘れている人も多いようですが、そもそも Unix は開発者が自分達のために作った OS であって、家庭ユーザーや一般ユーザー向けに作ったものではないのです。
幸運にも、フリーの Unix も市販の Unix も当初のアプローチとは変わってきています。 開発者の方々のおかげです。 80 年代には、現在 Linux ユーザーになっている人達は Unix から遠ざかっていました。 それはインストールが難しかったからです。 OS はテープで配布され、インストールには丸一日、設定するのにさらに一日かかっていました。 アプリケーションの設定は除いてです。 現在では Mac OS X のように、それと知らずに Unix を使っていることすらあります。 これは 90 年代の初めに OS X の父 NeXTstep が登場した時も同様でした。
話がそれるかもしれませんが、NeXTstep はフリー Unix や市販の Unix、それ以外の OS をもリードしてきました。 Unix を家庭ユーザーが使えるようにするというのは難題でしたが、OS X で多少とも実現されたのです。 挑戦した方々全てに、仕事であれボランティアであれ、お祝いを言いたいと思います。 特にボランティアの方には最大級の賛辞を送りたいと思います ;-)
FreeBSD と Apple が成果を共有したというのは、とても良いことだと思います。 良い形で互いの利益になったのではないでしょうか。 市販ソフトウェアはいつだってフリーソフトウェアを活用してきました。 それを声高に言うかどうかは別です。 Apple はフリーソフトウェアを使っていることを公式に発表しましたし、SGI も同様です。 他の企業もこれにならっているようですが、何か企みがありそうです。 まあ、みんな参入できるだけの余地はあると思います。 一人占めしようとする人は別ですが。
Linux が騒ぎ立てられているせいで、他の Unix が隅に追いやられていますが、まあこれまではそれで良いでしょう。 良い面もあるのです。 私が FreeBSD を使う理由はそこです。 もちろん、Linux (やその他たくさん) も使います。 いろんな OS を使うのが好きなんです!
この記事を読んで FreeBSD を使ってみたいと思ったなら、もうこの記事は用済みです。 自分でやってみれば、ここで触れていないたくさんのことを発見するでしょう。
言ったでしょう。我々は素晴しい時代に生きているんです!


Webpages maintained by the LinuxFocus Editor team
© Georges Tarbouriech , FDL
LinuxFocus.org
翻訳履歴:
en --> -- : Georges Tarbouriech <georges.t(at)linuxfocus.org>
en --> jp: 須藤 賢一 <deep_blue/at/users.sourceforge.jp>

2003-05-23, generated by lfparser version 2.36