CentOS7.7 リリースノート気になったところまとめ

# はじめに
CentOS7.7が出ていたのでRHEL7.7のリリースノートをギル祭周回しながら読んだ結果。
ながらで読んだので思い出せるよう気になった点のまとめ。

なお、そもそもLinuxに触って2年目くらいの雑魚キャラが個人的に気になったところなので、重要な点が抜けていると思います。

出典：https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/7.7_release_notes/index

## python3パッケージ追加
CentOS8のデフォらしい。Ansibleの対応状況とかも調べないといけない。

>新しいパッケージ - python3

>RHEL 7 では、Python 3.6 インタープリターと、pip ユーティリティーおよび setuptools ユーティリティーを提供する、新しい python3 パッケージが利用できます。以前は、Red Hat Software Collections で、Python 3 バージョンが利用できました。

>Python 3 のインストール時、起動時、対話時には、Python のメジャーバージョンを常に指定します。たとえば、Python 3 をインストールする場合のコマンドは、yum install python3 になります。Python 関連のすべてのコマンドでバージョンを指定する必要があります (例: pip3)。

>Python 3 は、RHEL 8 におけるデフォルトの Python 実装であるため、Python 2 のコードを Python 3 に移行することが推奨されます。大規模なコードベースを Python 3 に移行する方法は 「The Conservative Python 3 Porting Guide」 を参照してください。

## Kernel ライブパッチ
カーネルアップデート時に再起動などが不要になる仕組みができるらしい。
`kpatch-patch-3_10_0-1062` が必要な模様。
日本語版リリースノートには記載がない？様子。

>カーネルのライブパッチが利用可能になりました

>カーネルのライブパッチkpatchは、プロセスを再起動または再起動することなく、実行中のカーネルにパッチを適用するメカニズムを提供します。 重要なCVEと重要なCVEを修正するために、 Extended Update Support（EUS）ポリシーの対象となるRHELの選択されたマイナーリリースストリームに対して、カーネルのライブパッチが提供されます。

>カーネルのRHEL 7.7バージョンのkpatchストリームをサブスクライブするには、 RHEA-2019：2011アドバイザリが提供するkpatch-patch-3_10_0-1062パッケージをインストールします。

>詳細については、 『カーネル管理ガイド』の「 カーネルライブパッチによるパッチの適用 」を参照してください。

## Spectre V2対応方法の変更
Spectre・・正月・・・うっ・・・頭が・・・・・となる人が多そう（当時関係薄い業務だったのであまり体感はない）
セキュリティ的に影響は少ないと思われるがこのパラメーターにするのはどうなんだ、という議論が起きそう。


>RHEL 7.7 の新規インストールで、Spectre V2 の軽減策のデフォルトが、IBRS から Retpoline へ変更

>RHEL 7.7 の新規インストールで、第 6 世代 Intel Core プロセッサーと、その類似の派生製品 [1] が搭載されているシステムにおける Spectre V2 脆弱性 (CVE-2017-5715) のデフォルトの軽減策は、Indirect Branch Restricted Speculation (IBRS) から Retpoline へ変更しました。Red Hat は、Linux コミュニティーで使用されているデフォルトに合わせて、失われたパフォーマンスを回復するようにとの Intel 社からのアドバイスを受け、この変更を実装しました。ただし、状況によっては、Retpoline を使用しても Spectre V2 を完全に軽減できない場合があります。Intel の Retpoline ドキュメント [2] は、露出の例を示しています。この攻撃の危険の程度は、このドキュメントでは、「低」と示されています。

>RHEL 7.6 以前のインストールでは、IBRS がデフォルトの移行でした。RHEL 7.7 以降のバージョンでは、カーネルコマンドラインに spectre_v2=retpoline が追加されました。RHEL 7 の以前のバージョンから、RHEL 7.7 へのアップグレードについては、変更がありません。

>spectre_v2 の軽減策は選択できます。Retpoline を選択する場合は、カーネルコマンドラインに "spectre_v2=retpoline" フラグを追加するか、ランタイム時に echo 1 > /sys/kernel/debug/x86/ibrs_enabled コマンドを実行します。

>IBRS を選択する場合は、カーネルコマンドラインから spectre_v2=retpoline フラグを削除するか、ランタイム時に echo 1 > /sys/kernel/debug/x86/ibrs_enabled コマンドを実行します。

>1 つ以上のカーネルモジュールが Retpoline サポートで構築されていない場合、/sys/devices/system/cpu/vulnerabilities/spectre_v2 ファイルは脆弱性を示し、/var/log/messages ファイルでその脆弱性が発生しているモジュールを特定します。詳細は「How to determine which modules are responsible for spectre_v2 returning "Vulnerable: Retpoline with unsafe module(s)"?」を参照してください。

## bind デフォルトバージョン変更
DNSサーバーを作ろうとしていてbindをちょうど入れようとしていたので。
これまでは9.9系っぽい（9/19に同期したrepo調べ）
9.9と9.11で結構違う模様。
https://dnsops.jp/event/20180627/DNSSummerDay2018_BIND9.11%E5%A4%89%E6%9B%B4%E7%82%B9auth.pdf

>bind がバージョン 9.11 にリベース

>bind パッケージがアップストリームバージョン 9.11 にアップグレードし、以前のバージョンにバグ修正および機能拡張が数多く追加されました。

## ipset デフォルトバージョン変更
firewall許可を国内だけ許可とかやるのに使っていたので。
これまでは6.38っぽい（9.19に同期したrpeo調べ）
そんなに変わってないといいな。

>ipset がバージョン 7.1 にリベース

>ipset パッケージがアップストリームバージョン 7.1 にアップグレードし、以前のバージョンにバグ修正および機能拡張が数多く追加されました。

>ipset プロトコルのバージョン 7 では、IPSET_CMD_GET_BYNAME および IPSET_CMD_GET_BYINDEX オペレーションが導入されました。また、ユーザー領域のコンポーネントが、カーネルコンポーネントがサポートする正しい互換性レベルを検出できるようになりました。
メモリーリークや、解放済みメモリー領域を使用するバグなど、非常に多くのバグが修正されました。

## NetworkManager ブリッジポートでのVLANサポート？
この前のAnsibleもくもく会でVLANってそもそも何レベルだったのでVLANというワードに反応だけ。
NetworkManagerがよくわかっていないので意味がよくつかめていない。ブリッジポートとは。

>NetworkManager が、ブリッジインターフェースの VLAN フィルタリングに対応

>この機能を使用して、管理者は、対応する NetworkManager 接続プロファイルで、ブリッジインターフェースに仮想 LAN (VLAN) フィルタリングを設定できます。これにより、管理者がブリッジポートで直接 VLAN を定義できます。

## NetworkManager ポリシールーティングルールが構成
ルーティングルールってfirewalldとかiptablesでやるものでは？
NetworkManagerよくわからないので調べる。

>NetworkManager は、ポリシールーティングルールの設定に対応

>以前は、ユーザーが、NetworkManager 以外で (たとえば、NetworkManager-dispatcher-routing-rules パッケージが提供するディスパッチャースクリプトを使用して) ポリシールーティングルールを設定する必要がありました。今回の更新で、ユーザーが接続プロファイルにルールを設定できるようになりました。その結果、NetworkManager は、プロファイルが有効になった場合はルールを追加し、プロファイルが無効になった場合はルールを無効にします。

## selinuxのタイプ追加
正直常時OFFのためどうでも良いですがコンフィグファイルのSELINUXTYPEの例には載っていなかった。
そこだけ気になった。

>新しい SELinux のタイプ - boltd_t

>新しい SELinux のタイプ boltd_t は、Thunderbolt 3 デバイスを管理するシステムデーモン boltd を制限します。その結果、boltd は unconfined_service_t を制限しないで実行することはなくなります。

## chrony デフォルトバージョン3.4に変更
これまでは3.2.2っぽい。

>chrony がバージョン 3.4 にリベース

>chrony パッケージがアップストリームバージョン 3.4 にアップグレードし、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。主な変更は以下の通りです。

>ハードウェアタイムスタンプのサポートが改善しました。
>サポートされるポーリング間隔の範囲が広がりました。
>burst オプションおよび filter オプションが NTP ソースに追加されました。
>chronyd -q コマンドがシステムサービスを破損しないように、pid ファイルが修正されました。
>NTPv1 クライアントとの互換性が修正されました。

## 非推奨パッケージ
3452パッケージ。全部見てないけれどyumプラグインがたくさんあるのは見えた。
CentOSではdnfになるようで。
あとはpython2も非推奨。


## Ansible role
CentOSにも適用できるのかな？見てみたくはある。

>Ansible を使用した Red Hat Enterprise Linux System Roles
>Red Hat Enterprise Linux System Roles の postfix ロールがテクノロジープレビュー

>Red Hat Enterprise Linux System Roles は、Red Hat Enterprise Linux サブシステム向けの設定インターフェースです。>Ansible Roles を使用することでシステム設定が容易になります。このインターフェースにより、複数バージョンの Red Hat Enterprise Linux でシステム設定を管理することや、新しいメジャーリリースを導入することもできます。

>Red Hat Enterprise Linux 7.4 以降、Red Hat Enterprise Linux System Roles パッケージは Extras チャンネルから配信されています。Red Hat Enterprise Linux System Roles の詳細は「Red Hat Enterprise Linux (RHEL) System Roles」を参照してください。

>Red Hat Enterprise Linux System Roles には、現在以下の 5 つのロールから構成されます。

>selinux
>kdump
>network
>timesync
>postfix
>postfix ロールは、Red Hat Enterprise Linux 7.4 以降テクノロジープレビューとして利用できます。

>残りのロールは、Red Hat Enterprise Linux 7.6 以降で完全にサポートされます。