第5章 bullseye で注意すべき点

目次

5.1. bullseye へのアップグレード特有の事項
5.1.1. XFS ファイルシステムで barrier/nobarrier オプションが使用できなくなります
5.1.2. レポジトリのセキュリティに関するアーカイブ構成が変更されます
5.1.3. パスワードの暗号化ハッシュがデフォルトで yescrypt になります
5.1.4. NSS NIS と NIS+ を利用するのに、新しいパッケージが必要になります
5.1.5. unbound の設定ファイルを断片化したとき、動作が変わりました
5.1.6. 非推奨になる rsync のパラメタがあります
5.1.7. Vim のアドオンについて
5.1.8. OpenStack と cgroups v1 について
5.1.9. OpenStack API ポリシーのファイルについて
5.1.10. アップグレード中の sendmail のダウンタイムについて
5.1.11. FUSE 3
5.1.12. GnuPG オプションファイル
5.1.13. Linux がユーザーの名前空間をデフォルトで有効にするようになる
5.1.14. bullseye に redmine がない
5.1.15. Exim 4.94
5.1.16. SCSI device probing is non-deterministic
5.1.17. アップグレード後、再起動前にすること
5.2. アップグレード後も影響がある項目
5.2.1. セキュリティサポートにおける制限事項
5.2.2. GNOME のアプリケーションにマウスを使用せずにアクセスする
5.2.3. root パスワードなしでの rescue ブートは使用できません
5.3. Obsolescence and deprecation
5.3.1. 特記すべき時代遅れとなったパッケージたち
5.3.2. bullseye で非推奨となったコンポーネント

新しいリリースで導入された変更点には副作用が避けられず、どこか他の場所でバグを出してしまうことがあります。この章では、現時点で私たちが知っている問題点を記載しています。正誤表・関連パッケージの付属文書・バグ報告や、「もっと読みたい」で触れられているその他の情報も読んでください。

5.1. bullseye へのアップグレード特有の事項

この項では buster から bullseye へのアップグレードに関連した項目を取り扱います。

5.1.1. XFS ファイルシステムで barrier/nobarrier オプションが使用できなくなります

XFS ファイルシステムでマウントオプション barriernobarrier がなくなりました。アップデート前に /etc/fstab を確認し、該当するキーワードがないか確認することをお勧めします。また、存在する場合は、削除してください。これらのオプションを使用しているパーティションは、マウントできなくなります。

5.1.2. レポジトリのセキュリティに関するアーカイブ構成が変更されます

bullseye では buster/updates から bullseye-security に変更されます。OS のアップグレード時に、ユーザが自分で APT のファイルのソースリストを更新してください。

例えば APT のセキュリティのソースラインは、以下のようになります。

deb https://deb.debian.org/debian-security bullseye-security main contrib

5.1.3. パスワードの暗号化ハッシュがデフォルトで yescrypt になります

ローカルアカウントに対して、デフォルトのパスワード暗号化 が SHA-512 から yescrypt (詳細は crypt(5)) になります。(変更の経緯について) この変更によって、辞書からパスワードを予想してくる攻撃に対して時間と空間の計算量の観点から、安全性を向上させることが期待できます。

安全性の向上のためこの機能を利用するには、パスワードを変更する必要があります。passwd などで変更してください。

どのような方法で古いパスワードを生成していたとしても、 そのパスワードは使い続けることができます。

yescrypt は Debian 10 (buster) では利用できません。そのため、bullseye のshadow パスワードファイル(/etc/shadow)を、buster にはコピーしないでください。これらのファイルが、bullseye で変更された場合、buster では動作しません。同様に、bullseye で暗号化されたパスワードは、buster にコピーして貼り付けできません。

bullseye と bulster で互換性が必要ならば、/etc/pam.d/common-password を以下の様に変更してください。

password [success=1 default=ignore] pam_unix.so obscure yescrypt
	

そして、 yescryptsha512 にしてください。

5.1.4. NSS NIS と NIS+ を利用するのに、新しいパッケージが必要になります

NSS NISNIS+ のサポートは、libnss-nislibnss-nisplus という別のパッケージに分けられました。残念ながら、現時点では glibc はそれらのパッケージに依存しておらず、推奨のみしています。

そのため NIS もしくは NIS+ を使用しているシステムでは,OS のアップグレード後にそれらのパッケージがインストールされているか確認することをお勧めします。

5.1.5. unbound の設定ファイルを断片化したとき、動作が変わりました

DNS リソルバ unbound は設定のファイル断片化による動作を変更しました。include: ディレクティブを使用し、複数の外部ファイルにより設定を定義しているならば、次の文章を読むことをお勧めします。the NEWS file.

5.1.6. 非推奨になる rsync のパラメタがあります

The rsync parameters --copy-devices and --noatime have been renamed to --write-devices and --open-noatime. The old forms are no longer supported; if you are using them you should see the NEWS file. Transfer processes between systems running different Debian releases may require the buster side to be upgraded to a version of rsync from the backports repository.

5.1.7. Vim のアドオンについて

長らく vim のアドオンは vim-scripts として提供されていました。しかし vim-addon-manager ではなくVim のネイティブ package をそのまま使用するようになります。Vim のユーザーはNEWS fileに従いアップグレードの準備をしてください。

5.1.8. OpenStack と cgroups v1 について

OpenStack Victoria (bullseye でリリース) は QoS ブロックデバイスに cgroup v1 が必要です。bullseye では cgroup v2 がデフォルトになりました。(詳細は 「コントロールグループ v2」)そのため、sysfs ツリー /sys/fs/cgroup にはv1 の機能を含みません。例えば、/sys/fs/cgroup/blkio やそれに伴なう cgcreate -g blkio:foo などは動作しません。OpenStack nova-computecinder-volumeが動作しているノードでは、デフォルトの設定を上書きして従来の cgroup 階層に戻すために、systemd.unified_cgroup_hierarchy=falsesystemd.legacy_systemd_cgroup_controller=false をカーネルコマンドラインに加えることを強く推奨します。

5.1.9. OpenStack API ポリシーのファイルについて

以下は開発元からの勧めです。bullseye でリリースされた OpenStack Victoria が新らしい YAML フォーマットを使用するため、OpenStack API が更新され互換性がなくなります。その結果、そのままでは Nova、 Glance と Keystone を含む、policy.json ファイルに全て API ポリシーが明記されているほとんどの OpenStack サービスは動作しません。そのため デフォルトで全てのポリシーが記述された00_default_policy.yaml を含む/etc/PROJECT/policy.d が配布されるようになります。このファイルは、デフォルトで全てコメントアウトされています。

従来のファイル policy.json が参照されるのを防ぐためにDebian OpenStack はファイル名を disabled.policy.json.old に変更します。policy.json を単純に削除してしまった方が良い場合もあるかもしれません。そのため、アップデート前にpolicy.json をバックアップしておく事を強く推奨します。

より詳細は upstream documentation を参照してください。

5.1.10. アップグレード中の sendmail のダウンタイムについて

通常のアップグレードとは異り、buster から bullseye への更新中は sendmail が停止し、通常よりも長いダウンタイムを発生します。一般的な対処法ですが、ダウンタイムを縮小するためにはこちらをご覧ください「サービスのダウン期間の準備」

5.1.11. FUSE 3

gvfs-fusekio-fusesshfsはFUSE 3に移行しました。アップグレード中にfuse3がインストールされ、fuseパッケージは削除されます。

特別な環境、例えば4章Debian 10 (buster) からのアップグレード に記述されている推奨されるアップデート手順ではなく、apt-get dist-upgradeのみ実行してアップグレードする場合、fuse3 に依存するパッケージは、アップデート中に更新されないかもしれません。「システムのアップグレード」 で説明されている手順をとるか、bullseye で apt を実行する、もしくは手動でアップデートすると、未更新の状態は解消されます。

5.1.12. GnuPG オプションファイル

2.2.27-1 以降では, GnuPG のユーザー毎の設定が ~/.gnupg/gpg.conf に、そして ~/.gnupg/options は 使用されなくなりました。 必要であれば、ファイル名を変更するか、内容を適切な場所に移してください。

5.1.13. Linux がユーザーの名前空間をデフォルトで有効にするようになる

Linux 5.10 から, 全てのユーザーはデフォルトで、ユーザーの名前空間を作ることができるようになりました。これにより、ウェブブラウザやコンテナマネージャが、信頼できないコードのために、ルート権限なしにサンドボックスを作成できるようになりました。

以前の Debian ではこの機能はルート権限で実行されるプロセスのみに制限されていました。なぜなら、この機能はカーネル内のセキュリティの問題をより晒すことになるからです。 しかし、この機能の実装が成熟したことによって、セキュリティよりもこの機能による恩恵の方が上まわったと自信を抱いています。

ユーザーが希望するなば、sysctl を下記の様にすることにより、この機能を制限することができます。

kernel.unprivileged_userns_clone = 0
      

WebKitGTK, FlatpakGNOME サムネイルなどのウェブブラウザを含んだ様々なデスクトッップアプリやコンテナの機能はこの制限下では動作しないでしょう。

5.1.14. bullseye に redmine がない

The package redmine is not provided in bullseye, as it was too late migrating over from the old version of rails which is at the end of upstream support (receiving fixes for severe security bugs only) to the version which is in bullseye. The Ruby Extras Maintainers are following upstream closely and will be releasing a version via backports as soon as it is released and they have working packages. If you can't wait for this to happen before upgrading, you can use a VM or container running buster to isolate this specific application.

5.1.15. Exim 4.94

Please consider the version of Exim in bullseye a major Exim upgrade. It introduces the concept of tainted data read from untrusted sources, like e.g. message sender or recipient. This tainted data (e.g. $local_part or $domain) cannot be used among other things as a file or directory name or command name.

This will break configurations which are not updated accordingly. Old Debian Exim configuration files also will not work unmodified; the new configuration needs to be installed with local modifications merged in.

Typical nonworking examples include:

  • Delivery to /var/mail/$local_part. Use $local_part_data in combination with check_local_user.

  • Using

    data = ${lookup{$local_part}lsearch{/some/path/$domain/aliases}}
    

    instead of

    data = ${lookup{$local_part}lsearch{/some/path/$domain_data/aliases}}
    

    for a virtual domain alias file.

The basic strategy for dealing with this change is to use the result of a lookup in further processing instead of the original (remote provided) value.

To ease upgrading there is a new main configuration option to temporarily downgrade taint errors to warnings, letting the old configuration work with the newer Exim. To make use of this feature add

.ifdef _OPT_MAIN_ALLOW_INSECURE_TAINTED_DATA
 allow_insecure_tainted_data = yes
.endif

to the Exim configuration (e.g. to /etc/exim4/exim4.conf.localmacros) before upgrading and check the logfile for taint warnings. This is a temporary workaround which is already marked for removal on introduction.

5.1.16. SCSI device probing is non-deterministic

Due to changes in the Linux kernel, the probing of SCSI devices is no longer deterministic. This could be an issue for installations that rely on the disk probing order. Two possible alternatives using links in /dev/disk/by-path or a udev rule are suggested in this mailing list post.

5.1.17. アップグレード後、再起動前にすること

apt full-upgrade が完了した時点で、正規のアップグレードは完了しています。bullseye へのアップグレードについては、再起動の実行前に必要となる特別な作業はありません。

5.2. アップグレード後も影響がある項目

5.2.1. セキュリティサポートにおける制限事項

Debian がセキュリティ問題に対する最小限のバックポートを約束できないパッケージがいくつか存在しています。これらについては以下の章で触れられています。

[注記]注記

debian-security-support パッケージが、インストールされたパッケージのセキュリティサポート状況を確認するのに役立ちます。

5.2.1.1. ウェブブラウザとレンダリングエンジンにおけるセキュリティ更新の状態

Debian 11 は複数のブラウザエンジンを含んでおり、これらは一定の割合でセキュリティ脆弱性の影響を受けます。高い脆弱性率と一部開発元での長期間サポートブランチの欠落によって、セキュリティ修正をバックポートしてこれらのブラウザならびにブラウザエンジンをサポートする事が難しくなっています。さらに、ライブラリへの内部依存性のため、開発元での新しいリリースへの更新を極めて難しくしています。従って bullseye に含まれているものの例として webkit や khtml エンジン[6]を使ったブラウザがありますが、これらはセキュリティサポートはされません。一般的にこれらのブラウザを信用できないウェブサイトを閲覧するのに使うべきではありません。webkit2gtk ソースパッケージはセキュリティサポートの対象となっています。

一般的なウェブブラウザ利用として我々は Firefox または Chromium を推奨しています。安定版向けに現行の ESR リリースをリビルドすることで最新を維持します。同じ手法が Thunderbird にも適用されます。

5.2.1.2. OpenJDK 17

Debian bullseye には、煩わしいブートストラップ問題を回避するために OpenJDK 17 が採用されます。 (このバージョンは次期 OpenJDK 11 後のOpenJDK LTS の候補です) OpenJDK 17 の更新計画では、2021 年 10 月に開発元からのアップデートが完了する予定です。その間、ベストエフォートでセキュリティの更新をする予定ですが、3 ヶ月ごとに、開発元がセキュリティに関するアップデートを確実に提供するとは考えないでください。

5.2.1.3. Go-based packages

The Debian infrastructure currently has problems with rebuilding packages of types that systematically use static linking. Before buster this wasn't a problem in practice, but with the growth of the Go ecosystem it means that Go-based packages will be covered by limited security support until the infrastructure is improved to deal with them maintainably.

If updates are warranted for Go development libraries, they can only come via regular point releases, which may be slow in arriving.

5.2.2. GNOME のアプリケーションにマウスを使用せずにアクセスする

gnome-control-center の他にポインティングデバイスなしで、GNOME の設定を直接変更する方法はありません。回避方法として、Right Arrow を 2 回押下するとサイドバーからメインコンテントに移ることができます。サイドバーに戻るには、Ctrl+F, で検索を開始して、何か打ちこんでください。そして、Esc で検索をキャンセルします。そうしたら、Up ArrowDown Arrow でサイドバーを操作してください。検索結果をキーボードだけで、選択する方法はありません。

5.2.3. root パスワードなしでの rescue ブートは使用できません

buster より使用されているsulogin により、rescue オプションでブートする場合、常にパスワードが必要になります。もし、未設定ならば、レスキューモードでのブートが使用できなくなります。しかし、カーネルパラメターのinit=/sbin/sulogin --forceにより、このモードを使用することができます。

systemd をレスキューモードと同じ環境にするには、sudo systemctl edit rescue.service を実行して、下記の様に設定してください。 (このモードはシングルユーザーモードとも呼ばれていますsystemd(1))

[Service]
Environment=SYSTEMD_SULOGIN_FORCE=1
      

emergency.service ユニットも便利かもしれません。このユニットは、特定のエラー時か、emergency がカーネルコマンドラインに追加されている場合 (レスキューモードが使えない時など)、自動的にシングルユーザーモードを起動します。(特定のエラーについての詳細は systemd.special(7))

背景とセキュリティに関する考察については、 #802211 を参照してください。

5.3. Obsolescence and deprecation

5.3.1. 特記すべき時代遅れとなったパッケージたち

以下は、よく知られていて特に時代遅れとなってしまったパッケージの一覧です (説明については 「利用されなくなったパッケージ」 参照)。

時代遅れとなったパッケージの一覧には以下が含まれます:

  • lilo はbullseyeから削除されました。liloの後継のブートローダーはgrub2です。

  • Mailmanメーリングリストマネージャはバージョン3のみが使えます。Mailmanは複数のコンポーネントへと分割されました。コアとなるのがmailman3パッケージで、すべてをインストールするにはmailman3-fullメタパッケージによりインストールできます。

    Mailman バージョン2.1はインストールできません。(以前はmailmanとして使われていたパッケージです) DebianではインストールできなくなっているPython 2に依存しているためです。

    アップグレード手順については、プロジェクトの移行ドキュメントを参照してください。

  • Linuxカーネルはisdn4linux (i4l) のサポートを提供しません。結果として、関連するユーザーランドのパッケージであるisdnutilsisdnactivecardsdrdslibodパッケージはアーカイブから削除されました。

  • libappindicatorライブラリは提供されません。結果としてlibappindicator1libappindicator3-1libappindicator-devも提供されません。システムトレイやインジケータサポートのためにサードパーティーのソフトウェアが依然としてlibappindicatorへ依存しているなど、依存関係のエラーが発生することが予期されます。

    Debianはlibayatana-appindicatorをlibappindicatorの後継として採用しています。技術的な背景については、アナウンスを参照してください。

  • Debianではchefを提供しません。もしChefを構成管理に使っているなら、最も良い移行先はChef Incの提供するパッケージに切り替えることです。

    削除の背景については、該当する削除リクエストを参照してください。

  • Python 2はEOLをすでに過ぎており、セキュリティーアップデートも受けられません。Python 2はサポートされていないので、実行しているアプリケーションや、それが依存しているパッケージはPython3に移行するか削除すべきです。しかしながら、Debian bullseyeではPython 2.7を依然として含んでいます。これは python-setuptoolsのようにPython 2に依存しているビルドツールがあるためです。これらはPython 3への移行がすすんでいない、ごくわずかなアプリケーションをビルドするために必要とされています。

  • The aufs-dkms package is not part of bullseye. Most aufs-dkms users should be able to switch to overlayfs, which provides similar functionality with kernel support. However, it's possible to have a Debian installation on a filesystem that is not compatible with overlayfs, e.g. xfs without d_type. Users of aufs-dkms are advised to migrate away from aufs-dkms before upgrading to bullseye.

5.3.2. bullseye で非推奨となったコンポーネント

次のリリースである Debian 12 (コードネーム bookworm) では、いくつかの機能が非推奨となります。12 へ更新する際にトラブルを防ぐためには、ユーザーは他の選択肢へ移行する必要があります。

これには以下の機能が含まれます:

  • 歴史的な経緯から、/usr配下とは別に /bin/sbin/libがあるのはもはや妥当ではありません。Freedesktop.org 要約を参照してください。Debian bullseyeがディレクトリ構成が統合されていない最後のリリースとなります。再インストールすることなく既存のディレクトリ構成を変換するためにusrmergeパッケージがあります。

  • bullseyeはapt-keyコマンドを提供する最後のリリースとなります。鍵は/etc/apt/trusted.gpg.dにファイルとして管理されるべきです。バイナリ形式ならgpg --exportコマンドで.gpg拡張子のファイルにし、テキスト形式ならASCII armoredと呼ばれる.asc拡張子の形式にします。

    apt-key listを使ってキーリングを調べる代替手段は計画されていますが、まだありません。



[6] これらのエンジンは、異ったソースからパッケージが提供されているので、懸念が付きまといます。これらの懸念について、webkit2gtk.以外のレンダリングエンジンについては特筆しません。