# FreeBSD/i386 4.7-RELEASE リリースノート

### FreeBSD プロジェクト

Copyright © 2000, 2001, 2002 by FreeBSD ドキュメンテーションプロジェクト

$FreeBSD: src/release/doc/ja_JP.eucJP/relnotes/common/new.sgml,v 1.5.2.35 2002/11/02 06:23:29 hrs Exp $

この FreeBSD 4.7-RELEASE リリースノートには、 FreeBSD 4.6-RELEASE のリリース以降に FreeBSD ベースシステムに対して加えられた変更点がまとめられています。 変更点はカーネル、ユーザランドにおけるものだけでなく、 前回のリリース以降に発行され、 ベースシステムに影響のあるセキュリティ勧告も含まれています。 また、アップグレードの際の注意点についても簡単に説明しています。

# 1. はじめに

この文書は IA-32 アーキテクチャ版 FreeBSD 4.7-RELEASE のリリースノートです。 これには 4.6-RELEASE 以降に追加 (変更) された新機能および、前のバージョンの FreeBSD からアップグレードする場合におけるいくつかの注意点か書かれています。

この FreeBSD 4.7-RELEASE は release 版であり、 ftp://ftp.FreeBSD.org/ および各ミラーサイトで公開されています。 FreeBSD の release 版 (またはそれ以外) の入手法については FreeBSD ハンドブックの ``FreeBSD を入手するには''をご覧ください。

# 2. 更新情報

この節では 4.6-RELEASE 以降に新たに追加・変更された ユーザに影響する機能について説明します。 リリースノートの項目には通常、新しいドライバや新しいハードウェアへの対応、 新しいコマンドや新しいオプションの導入、 大規模なバグ修正、寄贈ソフトウェアのアップグレードが含まれており、 それに加えて 4.6-RELEASE 以降に発行され、 ベースシステムに影響のあるセキュリティ勧告も記載されています。

## 2.1. カーネルの変更点

acct(2) は、アカウンティングファイルを 追記モードでオープンするように変更されました。 これは accton(8) のアカウンティング機能を、 追記専用ファイルに対して使えるようにするための変更です。

`RLIMIT_VMEM` 機能が追加されました。 これは、あるプロセスに対して、 mmap(2) 空間を含む、 全仮想メモリ空間の大きさに制限を設けるものです。 制限は login.conf(5) に追加された `vmemoryuse` 変数によって設定することができます。

sendfile(2) システムコールにおいて、 送信ファイルサイズの計算でヘッダサイズを正しく含めていなかった というバグが修正されました。

USB モデム、USB シリアルデバイスを tty を使うプログラムに対応させるための ucom(4) デバイスドライバが追加されました。 また、 uplcom(4)、 uvscom(4) ドライバはそれぞれ、 Prolific PL-2303 シリアルアダプタと SUNTAC Slipper U VS-10U に対応しています。

Handspring Visors を USB 経由で接続できるようにするための uvisor(4) ドライバが追加されました。

### 2.1.1. プロセッサ・マザーボードの対応状況

AMD Élan SC520 に対応しました。 利用するには、カーネルコンフィグファイルに `CPU_ELAN` オプションを追加する必要があります。

### 2.1.2. 起動ローダ関連

### 2.1.3. ネットワークインターフェイスの対応状況

em(4) ドライバが Intel 82545EM および 82545EB チップに対応しました。 VLAN にも対応しています。

rp(4) ドライバがバージョン 3.02 に更新され、 モジュールとしてコンパイルできるようになりました。

### 2.1.4. ネットワークプロトコル

新しいバージョンの ipfw(4) (``IPFW2'' と呼ばれています) が追加され、 オプション機能として選択できるようになりました。 ipfw(4) は、カーネル内で bpf(4) 命令に似た可変長ルール表現を使っています。 ipfw(8) に、マッチフィールド連結子 `or` が新しく追加されていますが、( ipfw(8) に記載されている) 外部に見える部分の動作のほとんどは、変更されていません。 新しいバージョンの ipfw(4) は、デフォルトでは 有効になっていません。 有効にするには、次のようにします。

1. カーネルコンフィグファイルに `options IPFW2` オプション (文書化されていません) を追加する。

2. make(1) に `-DIPFW2` オプションを付けて `libalias` をコンパイル・インストールする。

新しい netgraph ノードタイプ ng_l2tp(4) が追加されました。 これは RFC 2661 に記載されている L2TP プロトコルのカプセル化レイヤを 実装したものです。

tcp(4) プロトコルの再送タイマが `net.inet.tcp.rexmit_min` と `net.inet.tcp.rexmit_slop` の、2 つの sysctl 変数で操作できるようになりました。

tcp(4) プロトコルに、送信側のウィンドウのサイズを動的に 制限して、帯域を最大化し、ラウンドトリップタイムを最小にするための 機能が追加されました。この機能は、sysctl 変数 `net.inet.tcp.inflight_enable` を使って有効化することが可能です。

### 2.1.5. ディスク・記憶装置

ahd(4) ドライバが新しく追加されました。 これは Adaptec AIC7901, AIC7901A, AIC7902 Ultra320 PCI-X SCSI コントローラチップに対応しています。

ata(4) のタグ付きキューイング機能で 時々発生していた動作不良が修正されました。

ata(4) ドライバが最大転送データサイズを正しく計算するようになりました。 この修正により、特定の ATA デバイスにアクセスした時に数多く生じていた `READ_BIG` エラーやその他のエラーが発生しなくなっています。

ata(4) ドライバが新しく Sil 0680 と VIA 8233/8235 コントローラに対応しました。

mpt ドライバが新しく追加されました。 これは、LSI Logic Fusion/MP アーキテクチャ ファイバチャネルコントローラに対応してます。

pst ドライバが新しく追加されました。 これは Promise SuperTrak ATA RAID コントローラに対応しています。

### 2.1.6. ファイルシステム

### 2.1.7. PCCARD 対応状況

### 2.1.8. マルチメディアへの対応状況

VT8233 オーディオコントローラのドライバが 追加されました。これはすべてのリビジョンのハードウェアに対応しています。 このドライバは、カーネルコンフィグファイルに `device pcm` を追加するか、 `/boot/loader.conf` に `snd_via8233="YES"` と追加することで 起動時にロードすることが可能です。 このドライバは、VIA から提供された資料を用いて開発されました。

ich サウンドドライバに、ich4 オーディオ対応の 基本部分が追加されました。

USB オーディオデバイス用の uaudio ドライバが追加されました。

### 2.1.9. 寄贈ソフトウェア

IPFilter が バージョン 3.4.29 に更新されました。

## 2.2. セキュリティ勧告

セキュリティ勧告 SA-02:23 (set-user-id もしくは set-group-id されたプログラムのファイル記述子の取り扱いに関する問題) における修正に誤りがありました。 procfs(5), あるいは linprocfs(5) を使っているシステムは、 修正を行なっていてもなお、悪用することが可能です。 誤りは修正されており、詳細は改訂版のセキュリティ勧告 FreeBSD-SA-02:23 に記載されています。

悪意を持ったドメインネームサーバや DNS メッセージを生成できる攻撃者が悪用可能な、 リゾルバのバッファオーバフロー問題が修正されました。 詳細はセキュリティ勧告 FreeBSD-SA-02:28 をご覧ください。

不正な NFS パケットによって悪用される可能性がある、 tcpdump(1) のバッファオーバフロー問題が修正されました。 詳細はセキュリティ勧告 FreeBSD-SA-02:29 をご覧ください。

高い権限を放棄したプロセスに対して、 ktrace(1) を使った追跡 (trace) 操作ができないようになりました。 これにより、そのプロセスが権限を放棄する前に得たセキュリティ上重要な 情報の漏洩を防ぐことができます。この問題の詳細は、 セキュリティ勧告 FreeBSD-SA-02:30 をご覧ください。

悪用することで任意のファイルの許可属性を変更できるという、 pppd(8) にあった競合状態が修正されました。 詳細はセキュリティ勧告 FreeBSD-SA-02:32 をご覧ください。

ベースシステムの OpenSSL が新しいバージョンにアップグレードされ、 OpenSSL に存在していた複数のバッファオーバフロー問題が修正されました。 この問題の詳細は、 セキュリティ勧告 FreeBSD-SA-02:33 をご覧ください。

XDR デコーダにあったヒープバッファオーバフローが修正されました。 この問題の詳細は、 セキュリティ勧告 FreeBSD-SA-02:34 をご覧ください。

ローカルユーザが FFS ファイルシステム上の任意のブロックを読み書きできるというバグが修正されました。 この問題の詳細は、セキュリティ勧告 FreeBSD-SA-02:35 をご覧ください。

NFS サーバのコードに含まれていた、 リモートからのサービス妨害攻撃を可能にするバグが修正されました。 この問題の詳細は、セキュリティ勧告 FreeBSD-SA-02:36 をご覧ください。

kqueue(2) 機構を使うことで、 ローカルユーザがシステムパニックを引き起こすことができる可能性のあるバグが修正されました。 この問題の詳細は、セキュリティ勧告 FreeBSD-SA-02:37 をご覧ください。

カーネルメモリの大きな部分を返してしまうという、 いくつかのシステムコールにあった境界チェックのバグが修正されました。 この問題の詳細は、 FreeBSD-SA-02:38 をご覧ください。

`libkvm` を使っているアプリケーションから セキュリティ上重要な記述子が漏洩する可能性があるバグが修正されました この問題の詳細は FreeBSD-SA-02:39 をご覧ください。

## 2.3. ユーザランドの変更点

biff(1) に、新しい引数 `b` が追加されました。 これは、新しいメール到着時の``ベル通知''を有効にします (`biff y` のように、端末には表示されません).

cp(1) に (非標準の) `-n` オプションが 追加されました。これは、ファイルを上書きする際の確認に対して、 自動的に ``no'' を回答するものです。

daemon(3) をコマンドラインから呼び出すための、 daemon(8) プログラムが追加されました。 このコマンドは制御端末を切り離して、コマンドラインに指定された プログラムを実行します。ユーザは任意のプログラムを、それが デーモンとして作成されているかのように実行することが可能です。

dump(8) に、単に予想ダンプサイズを表示して終了するという、 `-S` フラグが追加されました。

finger(1) が `.pubkey` ファイルに対応しました。

finger(1) に、GECOS 情報の表示をユーザのフルネームのみに制限する `-g` フラグが追加されました。

finger(1) に、リモートの問い合わせに使うアドレスファミリを指定する `-4` フラグと `-6` フラグが追加されました。

fold(1) に、指定バイト位置で改行する `-b` オプションと、 単語境界で改行する `-s` オプションが追加されました。

ftp(1) が、`epsv4` コマンドに対応しました。 これは、IPv4 で通信している時に、新しい EPSV/EPRT と従来の PASV/PORT を切り替えるものです。このコマンドは、 IPFilter などの、新しい FTP 要求に対応していないファイアウォールを経由して ftp(1) を運用する場合に発生する問題の解決を目的としています。

ftpd(8) に、新しく `-m` オプションが追加されました。 これは、ファイルシステム上の許可属性に従い、ゲストユーザも既存のファイルを 変更できるようにするものです。これは特に、ゲストユーザが アップロードする際の途中再送 (resume) を可能にします。

ftpd(8) に、新しく `-M` オプションが追加されました。 これは、ゲストユーザがディレクトリを作成できないようにします。

ftpd(8) に、新しく `-W` オプションが追加されました。 これは、FTP セションのログを wtmp(5) に記録しないようにします。

ifconfig(8) に、IPv6 アドレスの下位 64 ビットを自動的に設定する `eui64` コマンドが追加されました。この変更にともない、 prefix(8) は廃止されました。

ifconfig(8) に、インターフェイスをプロミスキャス (promiscuous) モードに する機能が追加されました。これは、新しく追加された `promisc` フラグを使います。

inetd(8) に、同一の IP アドレスからの同時アクセス数の最大値を 各サービスに対して設定する機能が追加されました。

lock(1) に、 現在使用している端末がロックされている時に VTY の切替えを無効にする `-v` フラグが追加されました。 これにより、ひとつの端末からコンソール全体をロックすることができるようになります。

ls(1) プログラムに、 リストを一行で表示する `-m` フラグ、 ディレクトリ名の後ろに `/` を付加する `-p` フラグ、ファイル名を行方向にソートして表示する `-x` フラグが追加されました。

mv(1) に、(非標準の) `-n` オプションが 追加されました。これは、ファイルを上書きする際の確認に対して、 自動的に ``no'' を回答するものです。

nice(1) に、実行するユーティリティの ``nice 値''を指定する `-n` オプションが追加されました。

od(1) に、入力アドレスの起点を指定する `-A` オプション、 ダンプするバイト数を指定する `-N` オプション、 ダンプを何バイトスキップするか指定する `-j` オプション、 符号付きの 10 進数で出力する `-s` オプション、 出力形式を指定する `-t` オプションが追加されました。

`no_fake_prompts` が設定されている場合、 pam_opie(8) は偽のチャレンジを送出しなくなりました。

pam_opieaccess(8) モジュールが追加されました。

pam_unix(8) が、2002 年 3 月 9 日時点の FreeBSD -CURRENT (OpenPAM に変更される前) と同期しました。

pwd(1) に、論理カレントディレクトリを表示する `-L` フラグが追加されました。

renice(8) コマンドに、プロセスの優先度に対する増分を指定する `-n` オプションが追加されました。

sed(1) に、指定ファイルそのものを編集する `-i` オプションが追加されました。

sh(1) に、出力のリダイレクトで 既存の通常ファイルを上書きする操作を禁止する `-C` オプションと、 未定義の変数を展開しようとした時にエラーを発生させる `-u` オプションが追加されました。

sh(1) 内蔵の `cd` コマンドに、 論理モードと物理モードを指定する `-L` フラグと `-P` フラグがそれぞれ追加されました。 デフォルトは論理モードです。このデフォルトは、 `physical` という sh(1) オプションで 変更できます。

sh(1) 内蔵の `jobs` コマンドに、 PID のみを表示する `-s` フラグと、 出力に PID を含める `-l` フラグが追加されました。

sh(1) 内蔵の `export` および `readonly` コマンドに、 ``portable'' フォーマットで出力する `-p` フラグが追加されました。

split(1) に、分割ファイルの接尾子に使用する文字数を指定する `-a` オプションが追加されました。

su(1) が、Kerberos V 認証に対応しました。

tr(1) が、一部の等価クラス (equivalence class, 対応しているロケールのみ) に対応しました。

unexpand(1) に、 expand(1) と同様のタブ位置を指定する `-t` オプションが追加されました。

vidcontrol(1) に、VTY の切替えを無効にする `-S` フラグが追加されました。

who(1) に数多くのオプションが追加されました。 `-H` はカラムヘッダを出力し、 `-T` は mesg(1) の設定を表示します。 また、`-m` は `am i` と等価であり、 `-u` はアイドル時間の表示、 `-q` はログイン名を列で表示します。

xargs(1) に、標準入力からのデータの挿入を コマンドラインの最後ではなく、指定できるようにするための `-I` `replstr` オプションが追加されました (同様の機能を実現する `-J` オプションがありますが、 これに対応しているのは FreeBSD のみであるため、より互換性の高い `-I` オプションの使用が推奨されています)。

xargs(1) に、入力を指定行数ごとに区切り、 それを引数にして入力がなくなるまで複数回コマンドを呼び出すという `-L` オプションが追加されました。

### 2.3.1. 寄贈ソフトウェア

BIND がバージョン 8.3.3 に更新されました。

binutils がバージョン 2.12.1 (具体的には 2002 年 7 月 20 日のスナップショット) に更新されました。

gcc が 2002 年 3 月 20 日時点の 2.95 ブランチに由来するスナップショットに更新されました。 バージョン番号は非公式の 2.95.4 になっています。

Heimdal Kerberos が 2002 年 8 月 29 日の pre-0.5 スナップショットに更新されました。

libpcap がバージョン 0.7.1 に更新されました。

NetBSD の FTP デーモン、lukemftpd の バージョン 1.2 beta 1 が統合され、 lukemftpd(8) として利用できるようになりました。

OpenBSD より、2002 年 4 月 26 日時点の m4(1) が統合されました。

OPIE one-time-password スイートがバージョン 2.4 に更新されました。

OpenSSH が バージョン 3.4p1 に更新されました。主な変更点は次のとおりです。

- `*2` という名前のファイルが廃止されました (たとえば 以前 `~/.ssh/known_hosts2` に書かれていた内容は `~/.ssh/known_hosts` に書かれるようになっています)。

- ssh-keygen(1) は、 SECSH Public Key File Format を使って、 商用の SSH 実装と暗号鍵を交換することができるようになりました。

- ssh-add(1) は、3 種類のデフォルト暗号鍵すべてを追加するようになりました。

- ssh-keygen(1) において、 暗号鍵タイプのデフォルトがなくなりました。 特定のタイプを、`-t` オプションで指定する必要があります。

- プログラムのバグや将来的に発見される可能性のある セキュリティ上の弱点の影響を小さくするために、 特権を持たないプロセスを使うという ``特権分離 (privilege separation)'' 機能 が追加されました。

- 整数変数のオーバフローによって権限の不正な獲得が可能になるという セキュリティホールなど、いくつかのバグが修正されました。

- SSH プロトコルのデフォルトは、 バージョン 1 (使えない場合はバージョン 2 にフォールバック) ではなく、 バージョン 2 (使えない場合はバージョン 1 にフォールバック) になっています。

OpenSSL がバージョン 0.9.6g に更新されました。

sendmail がバージョン 8.12.3 からバージョン 8.12.6 に更新されました。

smbfs ユーザランドユーティリティの バージョン 1.4.5 が統合されました。

GNU tar がバージョン 1.13.25 に更新されました。

tcsh が バージョン 6.12 に更新されました。

texinfo がバージョン 4.2 に更新されました。

寄贈ソフトウェアの tcp_wrappers に、新しく tcpd(8) デーモンが追加されました。厳密に言うと標準の FreeBSD インストールでは必要のないもの ( inetd(8) には、 相当の機能が搭載されています) ですが、 xinetd のような inetd(8) の代替物を使う場合に有用です。

tcpdump がバージョン 3.7.1 に更新されました。

top がバージョン 3.5b12 に更新されました。

### 2.3.2. Ports/Packages Collection

`emulators/linux_base` の port (Linux エミュレーション用に必要) でインストールされるライブラリのデフォルトが更新されました。 現在は Red Hat Linux 7.1 に含まれるものに対応しています。

XFree86 がバージョン 4.2.1 に更新されました。このバージョンは、バージョン 4.2.0 から いくつかのバグとセキュリティ上の修正が加えられています。

## 2.4. リリースエンジニアリングと統合

新規インストール時に `/usr/share/examples` が展開されないというバグが修正されました。

FreeBSD 4-STABLE ホスト上での FreeBSD 5-CURRENT の make release、および FreeBSD 5-CURRENT ホスト上での FreeBSD 4-STABLE の make release ができるようになりました。 クロスアーキテクチャのリリース構築 (ホストと異なるアーキテクチャの リリースを構築すること)も可能になっています。 詳しくは release(7) をご覧ください。

# 3. 以前の FreeBSD リリース版からのアップグレード

以前の FreeBSD リリース版からのアップグレードを行なうには、 主に次の 3 つの方法があります。

- sysinstall(8) のバイナリアップグレード機能を使う方法。 おそらくこの方法が最も時間のかからない方法なのですが、 これは FreeBSD のインストール時に 特別なコンパイルオプションを指定していないことを前提としています。

- FreeBSD を完全に再インストールする方法。 技術的にはアップグレード手段の一つとは言えませんし、 `/etc` の内容を手動で退避・復元したりする必要があるなど、 大抵の場合はバイナリアップグレード機能を使うより手間がかかります。 しかし、ディスクのパーティション分割を変更したい (とか、 変更しなければならない) 場合などには便利な方法でしょう。

- `/usr/src` のソースコードから構築する方法。 この手段は非常に柔軟な対応が可能ですが、 ディスク空間と時間、そして専門的なノウハウを必要とします。 詳細については FreeBSD ハンドブックの ```make world` を利用する'' という章をご覧ください。 また、非常に古いバージョンの FreeBSD からのアップグレードは問題が発生することが多いため、 そのような場合にはバイナリアップグレード、 もしくは完全な再インストールを行なった方が効果的でしょう。

なるべくアップグレードを始める前に詳細について `INSTALL.TXT` をご覧ください。 ソースからアップグレードする場合は `/usr/src/UPDATING` にも目を通す必要があります。

最後になりますが、FreeBSD の -STABLE もしくは -CURRENT ブランチを追いかけるために用意された手段の一つをとりたいと考えているなら、 FreeBSD ハンドブックの ``-CURRENT vs. -STABLE'' の節をご覧になるようお願いします。

> Important: もちろん言うまでもないことですが、 FreeBSD のアップグレードは、データと設定ファイルを すべて バックアップした後に行なうべきです。

このファイルの他、リリース関連の文書は ftp://ftp.FreeBSD.org/ からダウンロードできます。

FreeBSD に関するお問い合わせは、<questions@FreeBSD.org> へ質問を投稿する前に解説文書をお読みください。

FreeBSD 4-STABLE をお使いの方は、ぜひ <stable@FreeBSD.org> メーリングリストに参加ください。

この文書の原文に関するお問い合わせは <doc@FreeBSD.org> まで、
日本語訳に関するお問い合わせは <doc-jp@jp.FreeBSD.org> まで電子メールでお願いします。