第5章 buster で注意すべき点

目次

5.1. buster へのアップグレード特有の事項
5.1.1. Procfs の hidepid マウントオプションの無効化について
5.1.2. ypbind の -no-dbus 起動での不具合について
5.1.3. sshd での認証の不具合について
5.1.4. デーモンの起動不具合や起動時のハングアップ様の現象について
5.1.5. 旧式ネットワークインターフェイス名からの移行について
5.1.6. Module configuration for bonding and dummy interfaces
5.1.7. OpenSSL のバージョンとセキュリティレベルについて
5.1.8. Waylandで動作するGNOMEの一部アプリケーションの不具合について
5.1.9. 特記すべき時代遅れとなったパッケージたち
5.1.10. buster で非推奨となったコンポーネント
5.1.11. アップグレード後、再起動前にすること
5.1.12. SysV init related packages no longer required
5.2. セキュリティサポートにおける制限事項
5.2.1. Security status of web browsers and their rendering engines
5.2.2. Go based packages
5.3. パッケージ特有の問題
5.3.1. Semantics for using environment variables for su changed
5.3.2. Existing PostgreSQL databases need to be reindexed
5.3.3. mutt and neomutt
5.3.4. Accessing GNOME Settings app without mouse
5.3.5. gnome-disk-utility fails to change LUKS password causing permanent data loss
5.3.6. evolution-ews has been dropped, and email inboxes using Exchange, Office365 or Outlook server will be removed
5.3.7. Calamares installer leaves disk encryption keys readable

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

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

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

5.1.1. Procfs の hidepid マウントオプションの無効化について

hidepid マウントオプションを /proc に適応すると、現行の systemd でも問題が生じていました。そのため systemd アップストリームでサポートが終了されました。もし /etc/fstab を編集してこのオプションを有効にしている場合は、必ずアップグレードの前に無効にして、buster でのログインセッションに問題が生じないようにしてください (再度有効化する方法については Wiki の Hardening ページをご覧ください)。

5.1.2. ypbind の -no-dbus 起動での不具合について

ypbind の標準オプションが変更されました。しかし設定ファイルを編集している場合には、古い設定が引き継がれてしまうため、必ず YPBINDARGS= オプションを /etc/default/nis で確認して -no-dbus が含まれていないようにしてください。-no-dbus オプションがあった場合には、ypbind は起動に失敗し、ログイン不能になります。詳細については bug #906436 をご一読ください。

5.1.3. sshd での認証の不具合について

PubkeyAcceptedKeyTypes の構文と、類似した HostbasedAcceptedKeyTypes オプションが sshd で変更されています。以前は受理する鍵の種類を設定していましたが、今パージョンでは受理する認証方法に応じた署名アルゴリズムを指定することになっています。この点は RSA/SHA2 署名アルゴリズムである rsa-sha2-256rsa-sha2-512 とそれらの証明書関連で問題になりえます。それらのオプションを上書きはしているものの、アルゴリズム名を省略してしまっている場合には、認証で失敗が生じます。

それらのオプションを標準のままで運用されている場合は、特に作業は不要です。

5.1.4. デーモンの起動不具合や起動時のハングアップ様の現象について

systemd は起動時に十分なエントロピーを必要とすることになりましたが、十分なエントロピーが得られない場合にはカーネルはそのようなシステムコールをブロッキング扱いします。ランダムネスサブシステムが十分に初期化するまでに、数分から場合によっては数時間止まっているように見えることがあります (random: crng init done が完了するまでの過程です)。amd64 システムではRDRAND 命令があるため、この問題は Debian カーネルの標準設定では回避されます(CONFIG_RANDOM_TRUST_CPU のオプションをご覧ください)。

amd64 以外のシステムや、ある種の仮想マシンで高速な起動を維持するには、エントロピー確保に別の手段を要します。Debian インストーラープロジェクトは haveged をこの目的のために選択しました。ハードウェアによるエントロピー確保ができないシステムの場合に役立ちます。仮想マシンについてはホストから各仮想マシンへ virtio_rng を用いて提供してください。

もし遠隔システムをこの文書を確認される前に buster にアップグレードしてしまった場合は、ping をネットワーク経由で当該システムに送信し続けてください。それによってエントロピーが増してランダムネスプールが確保されれば、システムへの ssh アクセスが再度可能になります。

See the wiki and DLange's overview of the issue for other options.

5.1.5. 旧式ネットワークインターフェイス名からの移行について

If your system was upgraded from an earlier release, and still uses the old-style network interface names that were deprecated with stretch (such as eth0 or wlan0), you should be aware that the mechanism of defining their names via /etc/udev/rules.d/70-persistent-net.rules is officially not supported by udev in buster (while it may still work in some cases). To avoid the danger of your machine losing networking after the upgrade to buster, it is recommended that you migrate in advance to the new naming scheme (usually meaning names like enp0s1 or wlp2s5, which incorporate PCI bus- and slot-numbers). Take care to update any interface names hard-coded in configuration for firewalls, ifupdown, and so on.

The alternative is to switch to a supported mechanism for enforcing the old naming scheme, such as a systemd .link file (see systemd.link(5)). The net.ifnames=0 kernel commandline option might also work for systems with only one network interface (of a given type).

新しい形式の命名が適応できるかを検討する前に、まず現状のインターフェイス名をご確認ください:

$ echo /sys/class/net/[ew]*
    

結果出力の名前ごとに、設定ファイルでの利用状況の確認と、udev が選択するであろう名前の確認を行います:

$ sudo rgrep -w eth0 /etc
$ udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
    

以上の情報があれば移行に必要な情報は揃います。(もしも udevadm 出力に オンボード 名が含まれていたら、それを優先してください。MACベース名は通常は予備用途ですが、USB ネットワークハードウェアでは必須の場合もあります)。

命名規則の変更準備が整ったら、70-persistent-net.rules をファイル名変更か各行毎のコメントアウトで無効にします。仮想マシンでは /etc/systemd/network/99-default.link を削除し、(もし virtio ネットワークデバイスを利用していれば) /etc/systemd/network/50-virtio-kernel-names.linkも削除します。その後に initrd を再生成してください:

$ sudo update-initramfs -u
    

その後に再起動すれば、システムは新規命名スタイルを利用します。その他に関連する設定ファイルを修正し、システム動作を試験してください。

詳細は upstream documentationudevREADME.Debian をご覧ください。

5.1.6. Module configuration for bonding and dummy interfaces

Systems using channel bonding and/or dummy interfaces, for instance to configure a machine as a router, may encounter problems upgrading to buster. New versions of systemd install a file /lib/modprobe.d/systemd.conf (intended to simplify configuration via systemd-networkd) which contains the lines

 options bonding max_bonds=0
 options dummy numdummies=0
    

Admins who were depending on different values will need to ensure they are set in the correct way to take precedence. A file in /etc/modprobe.d will override one with the same name under /lib/modprobe.d, but the names are processed in alphabetical order, so /lib/modprobe.d/systemd.conf follows and overrides (for instance) /etc/modprobe.d/dummy.conf. Make sure that any local configuration file has a name that sorts after systemd.conf, such as /etc/modprobe.d/zz-local.conf.

5.1.7. OpenSSL のバージョンとセキュリティレベルについて

各種セキュリティ勧告に基づき、TLS の最低バージョンは TLSv1 から TLSv1.2 に引き上げられました。

TLS 接続のセキュリティレベルについても同様で、レベル 1 からレベル 2 に変更されています。これは 80 bit から 112 bit へのセキュリティレベル変更と 2048 ビット長以上の RSA ないし DHE 鍵を必要とすることを意味し、224 ビット長以上の ECC 鍵と SHA-2 ハッシュも要件となります。

システムレベルでの設定は /etc/ssl/openssl.cnf で変更できます。各アプリケーションはそれぞれの設定項目でそれらを上書きも可能です。

In the default /etc/ssl/openssl.cnf there is a MinProtocol and CipherString line. The CipherString can also set the security level. Information about the security levels can be found in the SSL_CTX_set_security_level(3ssl) manpage. The list of valid strings for the minimum protocol version can be found in SSL_CONF_cmd(3ssl). Other information can be found in ciphers(1ssl) and config(5ssl).

システムレベルの /etc/ssl/openssl.cnf による設定は次の設定で元の値に戻すことができます:

        MinProtocol = None
        CipherString = DEFAULT
      

標準設定で問題が生じる場合は、当該する遠隔サイトへ連絡して頂くことを推奨します。

5.1.8. Waylandで動作するGNOMEの一部アプリケーションの不具合について

GNOME in buster has changed its default display server from Xorg to Wayland (see 「GNOME defaults to Wayland」). Some applications, including the popular package manager synaptic, the default Simplified Chinese input method, fcitx, and most screen recording applications, have not been updated to work properly under Wayland. In order to use these packages, one needs to log in with a GNOME on Xorg session.

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

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

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

  • mcelog はカーネル 4.12からサポート対象外になりました。rasdaemon が代替として利用可能です。

  • パスワードを管理する revelation パッケージは buster に含まれません。keepass2 は XML ファイル形式で revelation からエクスポートされたパスワードデータベースをインポートできます。アップグレードの前には、パスワードアクセス方法の喪失を防ぐために、必ず revelation のエクスポートを行ってください。

  • phpmyadmin パッケージは buster には含まれません。

  • ipsec-toolsracoon パッケージは、上流ソースが新たな脅威への適応に追従できておらず、buster からは除外されました。

    それらを利用している場合は libreswan への移行を推奨します。より広範なプロトコルと互換性があり、上流での更新も活発に行われています。

    libreswanracoon で利用されている通信プロトコルの上位互換を提供しているため、完全な互換性があると考えられています。

  • シンプルなMTA ssmtp パッケージは buster では無くなりました。これは TLS 証明の検証の問題に起因します。詳細は bug #662960 をご覧ください。

  • The ecryptfs-utils package is not part of buster due to an unfixed serious bug (#765854). At the time of writing this paragraph, there was no clear advice for users of eCryptfs, except not to upgrade.

5.1.10. buster で非推奨となったコンポーネント

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

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

  • Python 2 will stop being supported by its upstream on January 1, 2020. Debian hopes to drop python-2.7 for Debian 11. If users have functionality that relies on python, they should prepare to migrate to python3.

  • Icinga 1.x is EOL upstream since 2018-12-31; while the icinga package is still present, users should use the buster lifetime to migrate to Icinga 2 (icinga2 package) and Icinga Web 2 (icingaweb2 package). The icinga2-classicui package is still present to use the Icinga 1.x CGI web interface with Icinga 2, but the support for it will be removed in Icinga 2.11. Icinga Web 2 should be used instead.

  • The Mailman mailing list manager suite version 3 is newly available in this release. Mailman has been split up into various components; the core is available in the package mailman3 and the full suite can be obtained via the mailman3-full metapackage.

    The legacy Mailman version 2.1 remains available in this release in the package mailman, so you can migrate any existing installations at your own pace. The Mailman 2.1 package will be kept in working order for the foreseeable future, but will not see any major changes or improvements. It will be removed from the first Debian release after Mailman upstream has stopped support for this branch.

    Everyone is encouraged to upgrade to Mailman 3, the modern release under active development.

  • The packages spf-milter-python and dkim-milter-python are no longer actively developed upstream, but their more feature-rich replacements, pyspf-milter and dkimpy-milter, are available in buster. Users should migrate to the new packages before the old ones are removed in bullseye.

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

When apt full-upgrade has finished, the formal upgrade is complete. For the upgrade to buster, there are no special actions needed before performing a reboot.

5.1.12. SysV init related packages no longer required

[注記]注記

This section does not apply if you have decided to stick with sysvinit-core.

After the switch to systemd as default init system in Jessie and further refinements in Stretch, various SysV related packages are no longer required and can now be purged safely via

apt purge initscripts sysv-rc insserv startpar

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

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

[注記]注記

The package debian-security-support helps to track the security support status of installed packages.

5.2.1. Security status of web browsers and their rendering engines

Debian 10 includes several browser engines which are affected by a steady stream of security vulnerabilities. The high rate of vulnerabilities and partial lack of upstream support in the form of long term branches make it very difficult to support these browsers and engines with backported security fixes. Additionally, library interdependencies make it extremely difficult to update to newer upstream releases. Therefore, browsers built upon e.g. the webkit and khtml engines[6] are included in buster, but not covered by security support. These browsers should not be used against untrusted websites. The webkit2gtk source package is covered by security support.

For general web browser use we recommend Firefox or Chromium. They will be kept up-to-date by rebuilding the current ESR releases for stable. The same strategy will be applied for Thunderbird.

5.2.2. Go based packages

The Debian infrastructure currently doesn't properly enable rebuilding packages that statically link parts of other packages on a large scale. Until buster that hasn't been a problem in practice, but with the growth of the Go ecosystem it means that Go based packages won't be covered by regular security support until the infrastructure is improved to deal with them maintainably.

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

5.3. パッケージ特有の問題

大抵の場合、stretch から buster へのアップグレードは淀み無く進むべきです。しかし、アップグレードの前後に介入が必要となる場合がある例が少数ですが存在します。これらについて、パッケージごとに詳細を説明します。

5.3.1. Semantics for using environment variables for su changed

su has changed semantics in buster and no longer preserves the user environment variables DISPLAY and XAUTHORITY. If you need to run graphical applications with su, you will have to explicitly set them to allow access to your display. See bug #905409 for an extensive discussion.

5.3.2. Existing PostgreSQL databases need to be reindexed

When upgrading from stretch to buster, the glibc locale data is upgraded. Specifically, this changes how PostgreSQL sorts data in text indexes. To avoid corruption, such indexes need to be REINDEXed immediately after upgrading the locales or locales-all packages, before putting the database back into production.

Suggested command:

sudo -u postgres reindexdb --all

Alternatively, upgrade the databases to PostgreSQL 11 using pg_upgradecluster. (This uses pg_dump by default which will rebuild all indexes. Using -m upgrade or pg_upgrade is not safe because it preserves the now-wrong index ordering.)

Refer to the PostgreSQL Wiki for more information.

5.3.3. mutt and neomutt

In stretch, the package mutt had patches applied from the sources at https://neomutt.org. Starting from buster, the package providing /usr/bin/mutt will instead be purely based on the original sources from http://www.mutt.org, and a separate neomutt package is available providing /usr/bin/neomutt.

This means that some of the features that were previously provided by mutt are no longer available. If this breaks your configuration you can install neomutt instead.

5.3.4. Accessing GNOME Settings app without mouse

Without a pointing device, there is no direct way to change settings in the GNOME Settings app provided by gnome-control-center. As a work-around, you can navigate from the sidebar to the main content by pressing the Right Arrow twice. To get back to the sidebar, you can start a search with Ctrl+F, type something, then hit Esc to cancel the search. Now you can use the Up Arrow and Down Arrow to navigate the sidebar. It is not possible to select search results with the keyboard.

5.3.5. gnome-disk-utility fails to change LUKS password causing permanent data loss

Users should not change the LUKS password of encrypted disks with the GNOME graphical interface for disk management. The gnome-disk-utility package in buster has a very nasty bug (#928893) when used to change the LUKS password: it deletes the old password but fails to correctly set the new one, making all data on the disk inaccessible.

5.3.6. evolution-ews has been dropped, and email inboxes using Exchange, Office365 or Outlook server will be removed

Users using evolution as their email client and connecting to a server running Exchange, Office365 or Outlook using the evolution-ews plugin should not upgrade to buster without backing up data and finding an alternative solution beforehand, as evolution-ews has been dropped due to bug #926712 and their email inboxes, calendar, contact lists and tasks will be removed and will no longer be accessible with Evolution.

5.3.7. Calamares installer leaves disk encryption keys readable

When installing Debian from live media using the Calamares installer (「News from Debian Live team」) and selecting the full disk encryption feature, the disk's unlock key is stored in the initramfs which is world readable. This allows users with local filesystem access to read the private key and gain access to the filesystem again in the future.

This can be worked around by adding UMASK=0077 to /etc/initramfs-tools/conf.d/initramfs-permissions and running update-initramfs -u. This will recreate the initramfs without world-readable permissions.

A fix for the installer is being planned (see bug #931373) and will be uploaded to debian-security. In the meantime users of full disk encryption should apply the above workaround.



[6] These engines are shipped in a number of different source packages and the concern applies to all packages shipping them. The concern also extends to web rendering engines not explicitly mentioned here, with the exception of webkit2gtk.