FreeBSD/alpha 4.6.2-RELEASE リリースノート

FreeBSD プロジェクト

$FreeBSD: src/release/doc/ja_JP.eucJP/relnotes/common/new.sgml,v 1.5.2.24.2.5 2002/08/19 21:43:22 hrs Exp $

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


Table of Contents
1. はじめに
2. 更新情報
3. 以前の FreeBSD リリース版からのアップグレード

1. はじめに

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

この FreeBSD 4.6.2-RELEASE は ``ポイントリリース版'' です。これは FreeBSD 4.6-RELEASE の公開後に発見された (特にセキュリティ関連の) 問題点を解決したものです。このリリースはもともと 4.6.1 というバージョン番号での公開が予定されていたのですが、 リリースエンジニアリングの工程でいくつかの問題が新たに浮上したため、 4.6.1 の公開は予定よりも延期されることになりました。 このような経緯から、リリースエンジニアリングチームと セキュリティオフィサチームは、混乱を避けるために、 このリリースのバージョンを 4.6.2 に変える方がよいと判断しました。

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


2. 更新情報

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

[4.6.2] という印は、 このポイントリリースで追加されたリリースノート項目です。


2.1. カーネルの変更点

ローダから変更可能な変数 dumpdev が新たに追加されました。これはカーネルダンプデバイスを設定するものです。 これにより、カーネル初期化の最後の段階 (システムがシングルユーザモードに入る前) で発生した panic のクラッシュダンプを取得することが可能です。

snp(4) ドライバは静的にカーネルに組み込む必要はなくなり、 モジュールとしてコンパイルできるようになりました。


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

an(4) ドライバが ``Home'' WEP 暗号鍵に加えて 新しく Cisco LEAP にも対応しました。 Linux Aironet ユーティリティは現在、 エミュレーション環境下での動作に対応しています。

dc(4) ドライバが VLAN に対応しました。

fpa(4) ドライバが Alpha マシンで動作するようになりました。

my ドライバが追加されました。 これは Myson Fast Ethernet アダプタおよび Gigabit Ethernet アダプタをサポートするものです。

wi(4) ドライバが Prism II および Prism 2.5 ベースの NIC に対応しました。 また、104/128 ビット WEP 暗号化が Prism カードで動作するようになりました。

wi(4) ドライバが bsd-airtools に対応しました。

xe ドライバがモジュールとして構築できるようになりました。

ネットワーク攻撃や過負荷に対するシステムの耐性を強化するため、 いくつかのネットワークデバイスに準ポーリングモードが実装されました。 このポーリングを有効にするには、 カーネルコンフィグレーションファイルに 次のオプションを追加する必要があります。

    options DEVICE_POLLING
    options HZ=1000 # 必須ではないが、これも付けることを強く推奨
これに加えて sysctl 変数 kern.polling.enable を設定すると、ポーリングモードを有効にすることができます。 この時、kern.polling.user_frac sysctl 変数は ユーザランド用に予約された CPU 時間の割合を百分率で示します。 ポーリングに対応したデバイスは、現時点で dc(4)fxp(4)rl(4)sis(4) です。 詳細については polling(4) のマニュアルページを参照してください。


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

bridge(4) が複数の完全に独立したブリッジクラスタに対応し、 ブリッジの動的な追加・削除に対する安定性が向上しました。 また、VLAN にも完全に対応しています。

IPsec の IPv4 処理において、 上り SPD チェックが無視されるというバグが修正されました。

ng_eiface netgraph モジュールが新たに追加されました。 Netgraph フックへイーサネットフレームを配送する イーサネットインターフェースとして振舞います。

ng_etf(4) netgraph ノードが新たに追加されました。 これは、異なるフック間のイーサネットパケットを ethertype に応じてフィルタする機能を実現します。

tcp(4) syncache 実装に存在していた、 カーネルパニックを引き起こす可能性のあるバグが修正されました。

TCP 実装は、IP 層のブロードキャストアドレス宛のパケットを 正しく破棄するようになりました。


2.1.5. ディスク・記憶装置

ahc(4) ドライバが 2002 年 4 月 29 日時点の FreeBSD -CURRENT と同期しました。

ata(4) ドライバが 2002 年 5 月 18 日時点の FreeBSD -CURRENT と同期しました。

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

ata(4) ドライバが、atacontrol(8) を使った ATA RAID の生成、削除、クエリ、再構築に対応しました。

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


2.1.6. ファイルシステム

新しいカーネルやソフトウェアのインストールといった、 ファイルシステムに負荷のかかる作業を行った直後に システムをシャットダウンした場合、 ファイルシステムを破壊する可能性がある soft updates のバグが修正されました。


2.1.9. 寄贈ソフトウェア

2.1.9.1. IPFilter

IPFilter が 3.4.27 に更新されました。


2.2. セキュリティ勧告

OpenSSH の多重化に関するコードにおいて ``一つ違い (off-by-one)'' バグが修正されました。 このバグは認証されたリモートユーザが sshd(8) に任意のコードをスーパユーザ権限で実行したり、 悪意のある SSH サーバがクライアントユーザの権限で (クライアントユーザの) システム上の任意のコードを実行することが可能です。 詳細はセキュリティ勧告 FreeBSD-SA-02:13 をご覧ください。

zlib には、 メモリを複数回解放するように仕向けることが可能な プログラミング上の誤りが存在します。 FreeBSD が採用している malloc(3)/free(3) ルーチンは この誤りによるセキュリティ上の弱点はありませんが、 アプリケーションが特殊な細工が施された不正な圧縮データブロックを 受け取った場合、この仕組みを悪用して 機能を正常に働かなくさせたり異常終了させることが可能です。 なお、この zlib のバグは修正済みです。 この問題の回避方法および解決策はセキュリティ勧告 FreeBSD-SA-02:18 をご覧ください。

TCP SYN cache (``syncache'') と SYN cookie (``syncookie'') の実装にあった、 正規の TCP/IP トラフィックによりマシンを クラッシュさせる可能性のあるバグが修正されました。 この問題の回避方法やパッチはセキュリティ勧告 FreeBSD-SA-02:20 をご覧ください。

リモートの攻撃者にターゲットのマシン上のメモリを 枯渇させる可能性のある経路表のメモリリークが修正されました。 回避方法やパッチはセキュリティ勧告 FreeBSD-SA-02:21 をご覧ください。

システムクラッシュを起こす可能性のある memory-mapped I/O のバグが修正されました。 詳細と解決策はセキュリティ勧告 FreeBSD-SA-02:22 をご覧ください。

標準入出力ファイル記述子を操作することによって、 SUID されたプログラムを悪用して不正にファイルを 読み書きすることが可能なセキュリティホールが修正されました。 この問題に関する解決策はセキュリティ勧告 FreeBSD-SA-02:23 をご覧ください。

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

k5su(8) は (su(1) のように) 権限を行使するユーザが wheel グループに 所属していることを必要としないため、予想に反した挙動を示す可能性があります。 このような状況を回避するために、 k5su(8) はデフォルトで (事実上、上記の機能を無効化するために) SUID せずにインストールされるようになりました。 詳細はセキュリティ勧告 FreeBSD-SA-02:24 をご覧ください。

bzip2(1) ユーティリティに、 事前に警告することなく既存のファイルを上書きしたり、 許可属性の競合状態により意図しないユーザにファイルのアクセスを許す といった複数の弱点が発見されました。 この問題は新しい bzip2 の import により修正されました。 詳細はセキュリティ勧告 FreeBSD-SA-02:25 をご覧ください。

TCP SYN cache (``syncache'') の実装において accept filter (accept_filter(9) 参照) が使用されていた時に リモートの攻撃者がサービス妨害を実現できる可能性のあるバグが修正されました。 より詳しい情報は FreeBSD-SA-02:26 を参照してください。

rc(8) においてシェルのグロブ演算子が不適切な使われ方をしていたため、 /tmp/.X11-unix が存在せず、システムを再起動可能な場合、 ユーザが任意のファイルの中身を消すことができるようになっていました。 このバグは修正されています (セキュリティ勧告 FreeBSD-SA-02:27 を参照)。

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

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

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

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

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

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

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

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

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


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

atacontrol(8) が追加されました。 これは ata(4) ドライバの各種制御を可能にします。

cdcontrol(1) が、 ATAPI CDROM ドライブの最大速度を設定する speed コマンドに対応しました。

ctags(1) が、ソースファイルに (C++ スタイルの) // コメントが使用されている場合でも 壊れたタグファイルを生成しなくなりました。

dump(8) は、進行状況をプロセスタイトルに出力するようになりました。 これは自動化したバックアップを監視する際に有用です。

/etc/rc.firewall/etc/rc.firewall6 は、 firewall_type 変数にルールファイルが設定された場合と 存在しないファイアウォールの種類が指定された場合に ハードコーディングされたルールを追加しなくなりました (この変更の目的は、サイトのファイアウォールポリシが 仮定していることに、影響を与えないようにするためです)。 また、ファイアウォールタイプに closed が設定されている場合、rc.firewall(8) のマニュアルページに記述どおりに動作するようになりました。

ローカルでのカスタマイズや保守の手間を軽減するため、 /etc/security の機能が periodic(8) フレームワークにおけるスクリプト群に移動されました。 現在、これらのスクリプトは /etc/periodic/security/ に置かれています。

ifconfig(8)ether アドレスファミリが より一般的な link ファミリに変更されました (ether は後方互換性のためにまだ利用できます)。

fsdb(8) が 特定の inode によって割り当てられたブロック一覧を表示するための blocks コマンドに対応しました。

ispppcontrol(8) が削除され、 その機能が spppcontrol(8) に統合されました。

k5su(8) がデフォルトで root に SUID されたバイナリとしてインストールされなくなりました。 この機能が必要なユーザは、手動で k5su(8) の実行ファイルの許可属性を変更するか、 ソースからのアップグレードの前に ENABLE_SUID_K5SU=yes/etc/make.conf に加えてください。

ldd(1) が実行ファイルに加え、 共有ライブラリに対しても使用できるようになりました。

last(1)-y フラグに対応しました。 これは、セッションの開始時刻に年の表示を含めるようにします。

libstand が 複数の物理メディアをまたがって分割された 大きなカーネルやモジュール群をロードできるようになりました。

libusb の名前が libusbhid に変更されました。 これは NetBSD の命名規則に従ったものです。

lpd(8)-p フラグと同じ意味を持ち、よりわかりやすい -s フラグを認識するようになりました (これらのフラグは lpd(8) が ネットワーク経由のプリントジョブ用ソケットを開かないようにします)。

lpd(8) に、 新たに rc printcap オプションが実装されました。 この bool オプションがリモートホストのプリントキューに指定されると、 lpr -#n によるユーザ要求に対して、必要な回数分繰り返してデータファイルが lpd(8) により転送されます。

ls(1)-h フラグを受け付けるようになりました。 -l フラグと組み合わせると、 ファイルに単位 (訳注: B, KB, MB など) をつけて 3 以下の桁数でファイルサイズを出力させることができます。

m4(1) が、cpp(1) で利用するための #line 指示子を出力するように指示する -s フラグを受け付けるようになりました。

mergemaster(8) が新たに次の 2 つのフラグに対応しました。 -p フラグは ``pre-buildworld'' モードを有効にします。 これは、 buildworld および installworld の システムアップグレードステップを成功させるために不可欠なファイル群を比較するものです。 -C フラグは mergemaster(8) がうまく動作した後、 /etc/rc.conf で指定されているオプションと /etc/defaults/rc.conf で 定義されているデフォルトのオプションを比較します。

ngctl(8) が新しく write コマンドに対応しました。 これは指定したフックにデータパケットを送ります。

patch(1) に、標準入力ではなく、 ファイルからパッチを読み込むことを指定する -i コマンドラインフラグが追加されました。

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

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

[4.6.2] pam_radius(8), pam_ssh(8), pam_tacplus(8) が、 2002 年 7 月 3 日時点の FreeBSD -CURRENT と同期しました。

pam_ssh(8) モジュールが追加されました。 これは、SSH のパスフレーズと暗号鍵対を使った認証の利用を実現します。 また、このモジュールは ssh-agent(1) を起動することでセッション管理も行ないます。

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

pr(1) が、端末への出力を一時停止するよう指示する -f-p フラグに対応しました。

ps(1)-W オプション (指定したスワップデバイスから情報を抽出する) が削除されました。 このオプションは少し前から使えなくなっていたものです。

reboot(8) は次の起動時のカーネルを指定するための -k オプションを受け付けるようになりました。

sshd(8) は S/Key を有効化していないユーザに対して 偽の S/Key チャレンジを出力しないようになりました。 以前の動作は、比較的新しいいくつかの SSH クライアントが FreeBSD システムに接続した時に、ユーザを混乱させる無意味な one-time-password のプロンプトを出力していました。

未完成ですが、sysinstall(8) が (複数の CD による配布のような) 複数のボリュームを利用するインストールにおいて、正しいボリュームから package を拾い出す機能に対応しました。

tftp(1)tftpd(8) が IPv6 に対応しました。

USB Human Interface Device を操作するための usbhidctl(1) ユーティリティ追加されました。

uuencode(1)uudecode(1) に、 出力ファイルを指定する -o オプションが追加されました。 uuencode(1)-m フラグを指定すると base64 エンコーディングを行なうようになりました。 また、uudecode(1) は自動的に base64 ファイルをデコードするようになっています。

watch(8)-f オプションが追加されました。 これは、利用する snp(4) デバイスを指定します。

*.EUC 形式の locale 名が *.euc?? 形式へ改名されました。 たとえば、ja_JP.EUCja_JP.eucJP になります。 これは FreeBSD CURRENT、X11R6 および、他のたくさんの UNIX のバージョンとの locale 名との互換性を向上するものです。

locale 対応が FreeBSD -CURRENT のコードと同期しました。 この変更により strftime(3) の改良、 locale 定義の改訂、 多くのベースシステムプログラムの地域化が改良されており、 さらに LC_NUMERICLC_MONETARY および LC_MESSAGES カテゴリに対応しています。


2.3.1. 寄贈ソフトウェア

[4.6.2] BIND が 8.3.3 に更新されました。

bzip2 が 1.0.2 に更新されました。

Heimdal Kerberos が 0.4e に更新されました。

ISC DHCP クライアントが to 3.0.1RC8 に更新されました

[4.6.2] 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)'' 機能 が追加されました。

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

Note: FreeBSD 4.6-RELEASE と同様に、 /etc/ssh/ssh_config では Protocol 1,2 の設定がデフォルトになっています。 FreeBSD-CURRENT (および、現時点の FreeBSD 4-STABLE), では、デフォルトは Protocol 2,1 に変更されました。



texinfo が 4.1 に更新されました

timezone database が tzdata2002c リリースに更新されました。


2.3.1.1. Sendmail

sendmail が 8.12.3 に更新されました。 sendmail(8)root に set-user-ID されたバイナリとしてインストールされなくなりました (現在は smmsp に set-group-ID されています)。 詳細は /usr/src/contrib/sendmail/RELEASE_NOTES/etc/mail/README をご覧ください。

この sendmail の更新にともない、 複数の sendmail デーモン (外へ出ていくメールを扱うために必要なもの) は sendmail_enable 変数が NO に設定されている場合にも、 rc(8) によって起動されるようになりました。 sendmail を完全に無効化するには、 sendmail_enableNONE に設定しなければなりません。 また、別の MTA を利用するシステムでは mta_start_script 変数を用いて異なる起動スクリプトを指定することが可能です (詳細は rc.sendmail(8) をご覧ください)。

/etc/mail/Makefile から構築される sendmail の alias ファイル、 map データベースの許可属性は、 ファイルロックに対するローカルからのサービス妨害攻撃を防ぐために デフォルトが 0640 になりました。 これは make.confSENDMAIL_MAP_PERMS という新しいオプションの設定で変更することが可能です。

sendmail の統計ファイル (/var/log/sendmail.st) の許可属性が ファイルロックに対するローカルからのサービス妨害攻撃を防ぐために 0644 から 0640 へ変更されました。

[4.6.2] DNS マップ (デフォルトの設定では使われないコード) におけるバッファオーバフローのバグが修正されました。

Note: これは、FreeBSD 4.6-STABLE に新しいバージョンの sendmail を導入したことによるものです。




2.3.2. Ports/Packages Collection

Ports Collection において、(訳注: 各 port が) 依存する X Window System のデフォルトのバージョンが XFree86 4.2.0 に変更されました。 XFree86 3.3.6 に戻すには、 /etc/make.conf に次の行を加えてください。

    XFREE86_VERSION=3

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

XFree86 4.2.0 は sysinstall(8) が対応する X Window System のデフォルトのバージョンになりました。 sysinstall(8)XFree86 を標準のバイナリパッケージセットとしてインストールするため、 pkg_info(1) のような通常の package ユーティリティを使って それらのコンポーネントを調べたり操作することが可能です。

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


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

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

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

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

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


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

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

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

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