Linux · 1 min read · Nov 27, 2025

Linuxサーバーで自動再起動なしのカーネル更新を設定する方法

Linuxサーバーのカーネルをパッチ適用するのは簡単に思えます。dpkg、apt-get、またはkexecなどの一般的なツールを使用して行うことができます。しかし、組織が数百または数千のサーバーを運用している場合、これらの方法は複雑になります。多くのサーバーは、パッチを適用するために複数のディストリビューションを意味し、それぞれがsysadminやエンジニアの個別の注意を必要とします。

これらの手動パッチ適用方法は、再起動を必要とするためリスクも伴います。再起動はサーバーのダウンタイムを伴い、常に問題となるため、通常は再起動サイクルで行われます。手動パッチ適用はこれらのサイクル中に行われるため、ハッカーにサーバーインフラストラクチャを攻撃するための「時間の窓」を提供します。

数台以上のサーバーを運用している組織にとって、ライブパッチ適用はより良い選択肢です。これは、サーバーが稼働している間にLinuxカーネルをパッチ適用する自動化された方法であり、手動方法よりも効率的で安全です。Canonical、Oracle、Red Hat、CloudLinuxの4つの最も人気のあるライブパッチ適用システムを設定する方法を学びましょう。

ライブパッチ適用とは何か、そしてその仕組み

最終的に、カーネルとライブラリのライブパッチ適用には、仮の方法と永続的な方法の2つがあります。仮の方法は再起動なしでパッチを適用しますが、実際には後でサーバーを再起動する必要があります。永続的なライブパッチ適用は再起動を必要としません。

仮の方法

仮の方法(または「スタック」パッチ適用)は、パッケージ管理ソフトウェア(YUMプラグインなど)を使用して実行されます。パッチはリポジトリに配信され、ユーザーが指定した更新ワークフローに従って適用されます。

「スタック」パッチ適用はサーバーの再起動とダウンタイムを伴います。パッチをインストールした直後に再起動が必要ない場合でも、このタイプのライブ更新のアーキテクチャのために、セキュリティパッチが時間とともに重なり合い、パフォーマンスと安定性が低下する可能性があります。この問題の唯一の解決策は、サーバーを再起動して新しいカーネルをメモリにロードすることです。

仮のパッチ適用を提供するベンダーは以下の通りです:

  • Canonical Livepatch
  • kGraph
  • Amazon Linux 2カーネルライブパッチ適用

永続的な方法

永続的な方法の場合、サーバーは最新のパッチを保存し、これらのパッチは「モノリシック」と呼ばれ、以前のパッチを含んでいます。サーバーを更新するために、エージェントプログラムがバックグラウンドで実行され、パッチサーバーをチェックしてパッチを探します。パッチサーバーにカーネル用のパッチがある場合、エージェントはパッチ適用モジュールを呼び出し、パッチを適用します。

永続的なパッチ適用には他にも重要な利点があります:

  • 永続的な方法を使用するサーバーは、通常再起動が必要なハードウェアの脆弱性(Spectre、Meltdown、Zombieloadなど)を持っていても稼働し続けます。
  • 完全なパッチ適用プロセスの自動化により、サーバーの管理に必要な時間と労力が削減されます。
  • サーバーは、しばしば数年間稼働し続けることができます。

永続的なパッチ適用方法は通常、ベンダー料金が発生し、ほとんどのベンダーから無料トライアル期間が提供されています:

  • Ksplice
  • Kpatch
  • KernelCare

Linuxサーバーで自動再起動なしのカーネル更新を設定する

以下では、Livepatch、Kpatch、Ksplice、KernelCareサービスを使用して、Linuxサーバーで再起動なしのカーネル更新を設定する方法を示します。

注意:これらの手順を実行する前に、システムが最新でバックアップされていることを確認してください。

1. Canonical Livepatchの設定

Canonical Livepatchサービスは、インストール中またはインストール後に設定できます。apt-get upgradeコマンドを実行したときにのみカーネルセキュリティパッチがインストールされます(したがって、半自動的です)。

利点: シンプル。半自動。再起動は必要ありません。

欠点: 4台以上のホストには高額(ただし、3台までのホストは無料、Ubuntuコミュニティのメンバーであれば最大50台まで無料)。パッチのロールバックはありません。

料金、サーバーごと: 月額(利用不可)、年額($225)。

Ubuntu 20.04 LTSサーバーにLivepatchをインストールするには(16.04 LTS、14.04 LTS、18.04 LTSバージョンでも動作します)、ターミナルを開いて次の2つのコマンドを実行します:

sudo snap install canonical-livepatch  
sudo canonical-livepatch enable 

サーバーの登録を解除するには、次のコマンドを使用します:

sudo canonical-livepatch disable 

サービスの状態を確認するには、次のコマンドを使用します:

sudo canonical-livepatch status --verbose

2. Oracle Kspliceの設定

Oracle Cloud内でKspliceのインスタンスを実行していない限り、インストールするにはアクセスキーが必要です。これは、Unbreakable Linux Networkにログインし、Kspliceのためにシステムを登録する手順に従うことで取得できます。

Kspliceをインストールするには、システムがインターネットにアクセスできる必要があります。プロキシを使用している場合は、シェルにプロキシを設定します:

# export http_proxy=http://proxy.example.com:port
# export https_proxy=http://proxy.example.com:port

プロキシはHTTPS接続をサポートしている必要があり、プロキシ文字列は次の形式である必要があります:

[protocol://][username:password@][:port]
  • protocolはプロキシに接続するためのプロトコル(httpまたはhttps)です。
  • usernameとpasswordはプロキシを使用するために必要な認証情報(必要な場合)。
  • hostとportはプロキシに接続するために使用されるホスト名/IPアドレスとポート番号です。

次の手順をrootとして実行し、YOUR_ACCESS_KEYを前のステップで受け取ったアクセスキーに置き換えます。

Oracle Cloud内

Oracle Cloud内でKspliceをインストールしてカーネル更新を自動的にインストールするには、次のコマンドを実行します:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc --autoinstall

Uptrackに利用可能な更新を適用するには、カーネル更新を自動的にインストールするアプリケーションであるUptrackに次のコマンドを実行します:

# uptrack-upgrade -y

すでにUptrackをインストールしている場合は、Kspliceがインストールされた後に/etc/uptrack/uptrack.confでautoinstall = yesを設定することで有効にできます。

手動で更新を適用するようにKspliceをインストールするには、次のコマンドを実行します:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc****

Oracle Cloud外

Oracle Cloud外でKspliceをインストールしてカーネル更新を自動的にインストールするには、次のコマンドを実行します:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY --autoinstall

手動で更新を適用するようにKspliceをインストールするには、次のコマンドを実行します:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY

注意:DebianまたはUbuntuサーバーにKspliceをインストールする場合、最初に ca-certificates パッケージを apt-get install ca-certificates でインストールする必要があるかもしれません。このパッケージがないと、「証明書検証エラー」が表示されます。

4. Red Hat Kpatchの設定

Kpatchのインストールはシンプルで簡単です:

パッケージリポジトリを更新し、最新のパッケージ情報を取得するために更新コマンドを実行します:

sudo apt-get update -y  

パッケージと依存関係を迅速にインストールするために、-yフラグを付けてインストールコマンドを実行します:

sudo apt-get install -y patch

5. CloudLinux KernelCareの設定

実行中のカーネルがKernelCareによってサポートされているかどうかを確認するには、次のいずれかのコマンドを実行します:

curl -s -L https://kernelcare.com/checker | python

または

wget -qq -O – https://kernelcare.com/checker | python

KernelCareをインストールするには、次のいずれかのコマンドを実行します:

curl -s -L https://kernelcare.com/installer | bash

または:

wget -qq -O - https://kernelcare.com/installer | bash

IPベースのライセンスを使用している場合、他に必要なことはありません。キー ベースのライセンスを使用している場合は、次のコマンドを実行します:

$ /usr/bin/kcarectl --register KEY

KEYは、KernelCareを購入したときまたは無料トライアルにサインアップしたときに受け取った登録キーコード文字列です。ここでキーを取得できます。

サーバーの登録を解除するには、次のコマンドを実行します:

sudo kcarectl --unregister

サービスの状態を確認するには、次のコマンドを実行します:

sudo kcarectl --info

KernelCareは4時間ごとに新しいパッチを自動的にチェックします。自動的ではなく手動で更新を実行するには、次のコマンドを実行します:

/usr/bin/kcarectl –update

結論

これらのいくつかのライブパッチ適用ソリューションのインストール手順は、環境に1つをインストールするために必要なすべてのステップをリストしています。それが完了すれば、サーバーを停止することなくカーネルを更新できるライブパッチ技術の利点を享受でき、数ヶ月、あるいは数年にわたって再起動が不要になります。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。