OpenBSD 3.4 リリース:
2003 年 11 月 1 日リリース
Copyright 1997-2003, Theo de Raadt.
ISBN 0-9731791-2-0
3.4 Song: "The Legend of Puffy Hood"
What's New
インストール
ports ツリーの使い方
CD セットの注文
このリリース用のファイルを手に入れるには、次のような方法があります。
注: 著作権やクレジット類はすべて、
それぞれのファイルソースに入っています。これは src.tar.gz、sys.tar.gz、XF4.tar.gz
あるいは ports.tar.gz 経由で取得したファイルに含まれています。ports.tar.gz ファイルから
package を作成するのに使用したディストリビューションファイルは、空きがありませんので、
CDROM には含まれていません。
What's New
これは OpenBSD 3.4 に含まれた新機能やシステムの部分的な一覧です。
より完全な一覧を得るには、3.4 に至るまでの changelog を
ご覧ください。
- i386 アーキテクチャが
ELF
実行形式フォーマットに移行しました。
- i386 アーキテクチャのサポートを含む、さらなる W^X の改善。
i386 のネイティブバイナリの実行可能なセグメントは、データとコードとを
区分するため再配置され、CPU の CS レジスタの制限は、コードの実行における
ベストエフォートの制限を課すために使用されます。
- 攻撃に対するより大きな抵抗力を持たせるため、ELF プラットフォーム上の
ld.so(1)
は、ライブラリをランダムな順序でロードするようになりました。i386 アーキテクチャでは、
ライブラリをいくらかランダム化されたアドレス上に配置します。W^X や
ProPolice
とともにこれらの変更が施されたことによって、たとえばバッファオーバーフローのような
アプリケーションのエラーを悪用した不正侵入を成功させることは、より困難になりました。
- バッファとそのサイズを受け取る関数上で基本的なチェックを実行させるため、
静的な境界チェック機構がコンパイラに追加されました。このチェック機構は、
いかなる疑陽性を出すこともなく、
strlcpy(3)
や sscanf(3)
などのライブラリ関数の使用における一般的な誤ちの発見を目標とするものです。これを
ソースツリーならびに ports ツリー上で実行することで、100 以上もの実際のバグが浮き
彫りにされましたが、それらのバグは修正され、可能な限り元の作者にも通知されました。
- syslogd(8)
デーモンに特権分離が実装されました。これにより、syslog は将来のエラーに対し、
非常に強固なものになりました。
ネットワークトラフィックをリスンする子プロセスは、自身を chroot して
一般ユーザ権限で実行されます。一方で親プロセスの方は、子プロセスの状態の追跡と、
子プロセスの代わりに特権処理を実行します。
- カーネルおよびユーザランドのユーティリティから、多数の安全ではない文字列関数が除去されました。
これは、OpenBSD でほとんど総合的に実施されてきた監査の一環であり、何千個もの
strcpy(3)、
strcat(3)、
sprintf(3)
や
vsprintf(3)
が、より安全で制限のある
strlcpy(3)、
strlcat(3)、
snprintf(3)、
vsnprintf(3)、
や
asprintf(3)
で代替されました。
-
ProPolice スタック保護機構に多数の改善とバグ修正が行われました。
また、RISC アーキテクチャにおける、他のいくつかのコード生成に関する
バグも修正されています。
-
ProPolice スタック保護機構がカーネルでも有効化されるようになりました。
- X サーバの特権分離が改善されました。親プロセスが非特権ユーザに移行後は
実行できない処理に対し、特権を持つ子プロセスが責任を持つようになりました。
このことにより、X サーバにバグがあるような場合にも、悪意のある X
クライアントによってダメージを受ける潜在的な危険性を
大幅に減らすことができます。
- バイナリ互換のためのエミュレーションのサポートは、
sysctl(8)
で制御することができるようになりました。悪意のあるバイナリを実行してしまう
危険性を制限するため、現在、エミュレーションはデフォルトでは無効化されていますが、
sysctl.conf(5) によって、これを有効化することができます。
- マニュアルページの大規模なクリーンアップと改善が実施されました。
- ports ツリーでは、トロイの木馬のコンフィグレーションスクリプトやその他によって、
アプリケーションのコンパイル時にシステムに損害を与えてしまう危険性を排除するため、
systrace(1)
を使用したプログラムのビルドをサポートしています。
- ld.so(1)
でのシンボルのキャッシングにより、
大規模なアプリケーションの起動時間を短縮できるようになりました。
- ソースツリーの大部分からの広告文言の除去を含む、
ライセンスのさらなる修正が行われました。
- GNU の
diff(1)、
diff3(1)、
grep(1)、
egrep(1)、
fgrep(1)、
zgrep(1)、
zegrep(1)、
zfgrep(1)、
gzip(1)、
zcat(1)、
gunzip(1)、
gzcat(1)、
zcmp(1)、
zmore(1)、
zdiff(1)、
zforce(1)、
gzexe(1)
ならびに
znew(1)
コマンドを BSD ライセンスの等価品に置換しました。
- NTFS
ファイルシステムに対する読み出し専用の
サポートを追加しました。
- レイヤ型ファイルシステムに対する信頼性の改善を施し、
NULLFS
をもう一度動くようにしました。
- 既存ファイルシステムを拡張することができる
growfs(8)
ユーティリティを導入しました。
- より多くのアプリケーションを実行可能にするため、
Linux エミュレーション
を改善しました。
- pthreads(3)
ライブラリに対する
大規模な改善を実施しました。
- 多数の静的な fd_set の使用を
poll(2)
で置換し、あるいは、動的に割り当てるようにしました。
- ソースツリーの大部分で、ANSI 化とプロトタイプ宣言をさらに厳密に行っています。
- 従来使用されてきた KerberosIV のサポートが除去され、より簡単な管理を可能にするため、
既存の KerberosV のコードベースが再構成されました。
- 2400 以上の ports、2200 のビルド済み packages が提供されます。
- 私たちのパケットフィルタ
pf(4)
に対して、次のように多くのバグ修正、変更、最適化が施されました。
- パケットのタグ付け (例: MAC アドレスに基づくブリッジが付与したタグ上のフィルタ)
- 状態を持つ TCP の正規化 (uptime の算出や NAT の検出を防止)
- 受動的 OS 検出 (送信元の OS に基づく接続のフィルタやリダイレクト)
- SYN プロキシ (SYN flood 攻撃からサーバを防御)
- 順応性のある状態のタイムアウト (攻撃による状態テーブルのオーバーフローを防止)
- 次のようなハードウェアのサポートの改善が行われました。
- システムは、外部サプライヤからの以下の主要コンポーネントを含みます。
- XFree86 4.3.0 (+ パッチ、i386 版には 3.3.X サーバも含まれますので、
あらゆるチップセットがサポートされています)
- Gcc 2.95.3 (+ パッチ)
- Perl 5.8.0 (+ パッチ)
- Apache 1.3.28、mod_ssl 2.8.15、DSO サポート (+ パッチ)
- OpenSSL 0.9.7b (+ パッチ)
- Groff 1.15
- Sendmail 8.12.9 (+ parse8.359.2.8 セキュリティパッチ)
- Bind 9.2.2 (+ パッチ)
- HTTPS ならびに IPv6 サポートが付加された lynx 2.8.4rel.1 (+ パッチ)
- Sudo 1.6.7p5
- Ncurses 5.2
- 最新の KAME IPv6
- Heimdal 0.6rc1 (+ パッチ)
- Arla-current
- OpenSSH 3.7.1 (GSSAPI のサポートも含む)
- セキュリティと信頼性の面で多くの改良が施されました
(完全な変更履歴 の朱書きの部分を参照してください)。
- そして、さらにいろいろ……
インストール
以下は、
色々あるインストール手段の中で、
CDROM セットを買うとついてくる、紙に印刷された指示書です。
ftp (あるいはその他) でのインストール方法もほとんど同じです。
ここでは CDROM 版の指示をそのまま記述しました。
いかがでしょう、CDROM を買えばこんなに楽なのです。
マシンに OpenBSD 3.4 をインストールするための詳しい方法については、3 枚の
CDROM か、または FTP ミラー上にあるそれぞれ以下のファイルを参照してください。
- CD1:3.4/i386/INSTALL.i386
- CD2:3.4/macppc/INSTALL.macppc
- CD2:3.4/vax/INSTALL.vax
- CD3:3.4/sparc/INSTALL.sparc
- CD3:3.4/sparc64/INSTALL.sparc64
- FTP:.../OpenBSD/3.4/alpha/INSTALL.alpha
- FTP:.../OpenBSD/3.4/hp300/INSTALL.hp300
- FTP:.../OpenBSD/3.4/hppa/INSTALL.hppa
- FTP:.../OpenBSD/3.4/mac68k/INSTALL.mac68k
- FTP:.../OpenBSD/3.4/mvme68k/INSTALL.mvme68k
OpenBSD の経験がある人のための、簡単なインストーラ情報と、"disklabel -E"
コマンドの使用法の説明です。OpenBSD をインストールするのに皆目見当が
つかない人は、上に挙げた関連の INSTALL.* ファイルを参照してください !
OpenBSD/i386:
CD から起動できるよう、BIOS のオプションを操作してください。OpenBSD/i386 のリリースは
CD1 にあります。もし、BIOS が CD からのブートをサポートしていなければ、ブートフロッピーを
作成して、そこからインストールする必要があります。ブートフロッピーを作成するには、
CD1:3.4/i386/floppy34.fs をフロッピーに書き込み、それを使用してブートしてください。
より多くの SCSI コントローラサポートが必要なら、CD1:3.4/i386/floppyB34.fs を、また、
ラップトップのためのより良いサポートが必要なら、CD1:3.4/i386/floppyC34.fs を代わりに使用します。
OpenBSD を他の OS とのデュアルブートで使用する場合、
必ず INSTALL.i386 ドキュメントをお読みください。
もし、MS-DOS 上でブートフロッピーを作成する場合は、"rawrite"
ユーティリティを使用します。これは、CD:/3.4/tools/rawrite.exe
にあります。また、Unix OS 上でブートフロッピーを作成する場合は、
dd(1) を使用します。
dd(1) の使用例を
以下に示します。ここで、デバイスとは、"floppy" や "rfd0c"、"rfd0a"
などのことです。
# dd if=<file> of=/dev/<device> bs=32k
正しくフォーマットされた、不良ブロックのない完全なフロッピーを使用しないと、
インストールは失敗します。ブートフロッピーの作成方法や
OpenBSD/i386 のインストールについてのより詳しい情報は、
FAQ4.1 を参照してください。
OpenBSD/macppc:
CD2 を CDROM ドライブに入れて、C キーを押しながらマシンの電源を入れ、
OpenBSD/macppc boot が表示されるまで C キーを押し続けます。
代わりに、オープンファームウェアのプロンプトのところで、
boot cd:,ofwboot /3.4/macppc/bsd.rd と入力してもよいでしょう。
OpenBSD/vax:
INSTALL.vax の記述に従って、mopbooting でネットワークから起動してください。
OpenBSD/sparc:
OpenBSD/sparc の 3.4 リリースは CD3 に入っています。
この CD から起動するには、ROM のバージョンに応じて、
以下のふたつのコマンドのうちのどちらかが使えるはずです。
> boot cdrom 3.4/sparc/bsd.rd
or
> b sd(0,6,0)3.4/sparc/bsd.rd
CD ドライブのない sparc なら、代わりにフロッピーで起動できます。
そのようにするには、"CD3:3.4/sparc/floppy34.fs" をフロッピーに書き込む必要がありますが、
詳しくは FAQ4.1 を参照してください。
フロッピーから起動するには ROM のバージョンに応じて、
以下のふたつのコマンドのうちのどちらかが使えるはずです。
> boot floppy
or
> boot fd()
正しくフォーマットされた、不良ブロックのない完全なフロッピーを使用しないと、
インストールは失敗します。
もし、フロッピーも CD もなければ、INSTALL.sparc ファイルに
書かれているように、起動可能なテープか、ネットワーク経由で
インストールすることもできます。
OpenBSD/sparc64:
CD3 を CDROM ドライブに入れて、boot cdrom と入力してください。
もし、これで動かなければ、あるいは CDROM ドライブがなければ、代わりに
CD3:3.4/sparc64/floppy34.fs をフロッピーに書き込み、これを
boot floppy として、フロッピーから起動することができます。
正しくフォーマットされた、不良ブロックのない完全なフロッピーを使用しないと、
インストールは失敗します。
また、CD3:3.4/sparc64/miniroot34.fs を、ディスクのスワップパーティションに
書き込み、boot disk:b としてそこから起動することもできます。
もし、どの方法もダメなら、INSTALL.sparc64 ファイルに書かれているように、ネットワーク経由で起動することもできます。
OpenBSD/alpha:
FTP:3.4/alpha/floppy34.fs か FTP:3.4/alpha/floppyB34.fs
(どちらになるのかはあなたのマシンに依存) をフロッピーに書き込み、
boot dva0 と入力してください。詳細は INSTALL.alpha を参照してください。
正しくフォーマットされた、不良ブロックのない完全なフロッピーを使用しないと、
インストールは失敗します。
OpenBSD/hp300:
OpenBSD/hppa:
OpenBSD/mac68k:
普通に MacOS を起動して、しかるべき A/UX の設定でディスクにパーティションを
作成してください。そして、Mac 側のユーティリティを FTP:3.4/mac68k/utils から
ハードディスクに展開します。Mkfs を実行して、いま作成した A/UX パーティションに
ファイルシステムを作成してください。そして、"BSD/Mac68k Installer" を使用して、
FTP:3.4/mac68k/ の全セットをパーティションに移します。最後に、
"BSD/Mac68k Booter" に、カーネルの位置を設定して、
システムを起動してください。
OpenBSD/mvme68k:
起動可能なインストールテープを作成するか、ネットワークから起動できます。
ネットワークからの起動では、NIOT と NBO デバッガコマンドを
サポートする MVME68K BUG バージョンが必要となります。
詳細は INSTALL.mvme68k に従ってください。
ソースコードについて:
src.tar.gz は /usr/src から始まるソースのアーカイブです。このファイルには、
カーネルソース以外の必要なものがすべて入っています (カーネルソースは別の
アーカイブファイルとなっています)。その展開は次のように行います。
# mkdir -p /usr/src
# cd /usr/src
# tar xvfz /tmp/src.tar.gz
sys.tar.gz は /usr/src/sys から始まるソースのアーカイブです。
このファイルには、カーネル再構築に必要なカーネルソースがすべて
入っています。その展開は次のように行います。
# mkdir -p /usr/src/sys
# cd /usr/src
# tar xvfz /tmp/sys.tar.gz
これらのツリーはどちらも普通に CVS からチェックアウトしたものです。
このツリーを使用することで、こちらに記述された
anoncvs サーバから CVS の先端を取得することもできます。
また、これらのファイルを使用することで、
完全な OpenBSD ソースツリーをチェックアウトするのに、
ゼロから行うよりはるかに高速に、最初の CVS アップデートができます。
Ports Tree
ports ツリーのアーカイブも提供されています。これを展開するには次のようにしてください。
# cd /usr
# tar xvfz /tmp/ports.tar.gz
# cd ports
ports/ サブディレクトリは、OpenBSD の ports ツリーをチェックアウトしたものです。
もし、まだ ports についてまったく知らない人は
ports
ページをお読みください。このテキストは、
ports の使い方のマニュアルではありません。むしろ、OpenBSD の ports システムの
クイックスタートガイドと考えてください。
ports/ ディレクトリの構成は CVS (これについて詳しくなければ、
cvs(1)
の man ページを参照してください) の ports のチェックアウト
形式になっています。完全なソースツリーの場合と同様、ports
ツリーも anoncvs で提供されています。ですので、これを
-current に保つには、ports/ ツリーを読み書きの可能な
メディア上に作成して、次のようなコマンドでツリーを
更新してください。
# cd [portsdir]/; cvs -d anoncvsserver.openbsd.org:/cvs update -Pd -rOPENBSD_3_4
[もちろん、上記の例のローカルのディレクトリとサーバ名は、
ご自分の ports ツリーの位置と最寄りの anoncvs サーバに
置き換えてください。]
かなりの ports が packages として ftp で取得可能であることに注意してください。
3.4 リリース用に更新された packages は問題が解決すれば配布を開始する予定です。
もし、追加してほしい ports があるとか、お手伝いをしたいとか、あるいはより
詳しく知りたい場合には、ports@openbsd.org メーリングリストがぴったりの場所
でしょう。
www@openbsd.org
$OpenBSD: 34.html,v 1.12 2006/01/06 20:58:11 saad Exp $