読者です 読者をやめる 読者になる 読者になる

ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

Ubuntuとライブパッチ

Linuxでサービスを稼働する上で懸念点となるのがLinuxカーネルのパッチ充て。 LinuxカーネルLinuxの中核であり、通常パッチを充てた後は再起動が必要です。…というのは過去の話。

Linux カーネルのバージョン4.0からライブパッチ機能が実装され、再起動不要でパッチを当てられるようになっています。詳しくは以下を参照のこと。

qiita.com

ただし見てわかるように、ライブパッチを自分で作業するのはちょっと大変です。そんな中、Ubuntuではこういうサービスが展開されています。

第443回 再起動なしにカーネルを更新する「Canonical Livepatch Service」:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

基本的にこの機能は有償サポートサービスの一部として提供されますが、Ubuntuユーザーでも適用できる数は限定されるものの、ライブパッチ機能をインストール済みのUbuntu Server 16.04に適用することができます。詳しくは公式サイトをどうぞ。

Canonical Livepatch Service | Server | Ubuntu

ちなみにUbuntuのライブパッチ機能を有効にして数ヶ月放置したサーバーにアクセスしたらこんな感じでした。ちゃんとライブパッチが機能しているのがわかると思います。

$ sudo canonical-livepatch status --verbose
client-version: "6"
machine-id: 
machine-token: 
architecture: x86_64
cpu-model: Intel Core i7 9xx (Nehalem Class Core i7)
last-check: 2017-02-23T11:23:29.7+09:00
boot-time: 2017-02-23T11:23:16+09:00
uptime: 6m24s
status:
- kernel: 4.4.0-57.78-generic
  running: true
  livepatch:
    checkState: checked
    patchState: applied
    version: "18.1"
    fixes: |-
      * CVE-2016-0758
      * CVE-2016-1583
      * CVE-2016-2117
      * CVE-2016-2184
      * CVE-2016-2185
      * CVE-2016-2186
      * CVE-2016-2187
      * CVE-2016-2188
      * CVE-2016-3136
      * CVE-2016-3137
      * CVE-2016-3138
      * CVE-2016-3140
      * CVE-2016-3156
      * CVE-2016-3672
      * CVE-2016-3689
      * CVE-2016-3713
      * CVE-2016-3951
      * CVE-2016-3955
      * CVE-2016-4470
      * CVE-2016-4482
      * CVE-2016-4485
      * CVE-2016-4486
      * CVE-2016-4557
      * CVE-2016-4565
      * CVE-2016-4581
      * CVE-2016-4805
      * CVE-2016-5195
      * CVE-2016-5243
      * CVE-2016-5244
      * CVE-2016-5400
      * CVE-2016-5696
      * CVE-2016-5728
      * CVE-2016-5829
      * CVE-2016-6828
      * CVE-2016-7039
      * CVE-2016-7425
      * CVE-2016-8655
      * CVE-2016-8658
      * CVE-2016-8666
      * CVE-2016-9756
      * CVE-2017-6074

ライブパッチ機能サポートはUbuntu Xenialの機能の一つでしかありませんが、LXD、LXC、Juju、MAASといったインフラ構築と管理アプリケーション、柔軟なアプリケーションやハードウェアのサポートなど、Ubuntuには便利なものがたくさんありますし、カーネル更新の手間が軽減できるのを考えると、12.04 LTSや14.04 LTSを使っているユーザーは、Ubuntu 16.04 LTSに移行すべきですね!

[追記] 先の出力について。現在、上記サーバーのUbuntuはkernel: 4.4.0-57.78-genericが利用されており、このバージョン以降のカーネルのセキュリティフィックスがfixesの一覧に列挙されています。カーネル以外のパッケージ更新は次のようにやっておけばよいでしょう。

$ sudo apt-get update
$ sudo apt-get upgrade