GNU/Linux >> Linux の 問題 >  >> Linux

Linuxサーバーで自動リブートレスカーネルアップデートを設定する方法

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

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

複数のサーバーを実行している組織の場合、ライブパッチ適用がより適切なオプションです。これは、サーバーの実行中にLinuxカーネルにパッチを適用する自動化された方法であり、手動の方法よりも効率的かつ安全になります。 Canonical、Oracle、Red Hat、CloudLinuxの最も人気のある4つのライブパッチシステムをセットアップする方法を学びましょう。

ライブパッチとは何ですか。その仕組み

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

一時的な方法

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

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

一時的なパッチを提供しているベンダーは次のとおりです。

  • 正規のLivepatch
  • kGraph
  • AmazonLinux2カーネルのライブパッチ適用

永続的な方法

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

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

  • 永続的な方法を使用するサーバーは、Spectre、Meltdown、Zombieloadなど、パッチを適用するために通常は再起動が必要なハードウェアの脆弱性があっても、稼働し続けます。
  • パッチ適用プロセスの自動化を完了することで、サーバーの管理に必要な時間と労力を削減します。
  • これにより、サーバーは、多くの場合、一度に何年も稼働し続けることができます。

永続的なパッチ適用方法には通常、ベンダー料金が含まれ、ほとんどのベンダーから無料の試用期間が利用できます。

  • Ksplice
  • Kpatch
  • KernelCare

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

以下に、Livepatch、Kpatch、Ksplice、およびKernelCareサービスを使用してLinuxサーバーでリブートレスカーネル更新をセットアップする方法を示します。

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

1。 CanonicalLivepatchの設定

Canonical Livepatch Serviceは、インストール中またはインストール後にセットアップできます。コマンドapt-getupgrade(したがって、半自動)を実行した場合にのみ、カーネルセキュリティパッチがインストールされます。

長所: 単純。半自動。再起動は必要ありません。

短所: 4つ以上のホストの場合は高価です(ただし、Ubuntuコミュニティのメンバーの場合は、すべてのマシンで最大3つのホストを解放し、最大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 <your key>

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

sudo canonical-livepatch disable <your key>

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

sudo canonical-livepatch status --verbose

2。 OracleKspliceの設定

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:[email protected]]<host>[:port]
  • プロトコルは、プロキシ(httpまたはhttps)に接続するためのプロトコルです
  • ユーザー名とパスワードは、プロキシを使用するために必要な認証情報です(存在する場合)。
  • ホストとポートは、プロキシへの接続に使用されるホスト名/IPアドレスとポート番号です

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

OracleCloudの内部

KspliceをOracleCloud内にインストールして、カーネルの更新が自動的にインストールされるようにするには、次のコマンドを実行します。

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

カーネル更新を自動的にインストールするアプリケーションである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

OracleCloudの外部

KspliceをOracleCloudの外部にインストールして、カーネルの更新が自動的にインストールされるようにするには、次のコマンドを実行します。

# 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

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

4。 RedHatKpatchのセットアップ

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

updateコマンドを実行して、パッケージリポジトリを更新し、最新のパッケージ情報を取得します。

sudo apt-get update -y

-yフラグを指定してinstallコマンドを実行し、パッケージと依存関係をすばやくインストールします。

sudo apt-get install -y patch

5。 CloudLinuxKernelCareのセットアップ

実行中のカーネルが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つをインストールするために必要なすべての手順がリストされています。それが完了すると、ライブパッチテクノロジーのメリットを享受できます。サーバーを停止せずにカーネルを更新でき、その後数か月、さらには数年も再起動する必要がありません。


Linux
  1. Linuxデスクトップでカーネルをアップグレードする方法

  2. Rocky / AlmaLinux8でNFSサーバーとクライアントをセットアップする方法

  3. NAT を使用して Linux サーバーをルーターとして設定する方法

  1. ArchLinuxでSFTPサーバーをセットアップする方法

  2. CentOS8でVSFTPDを設定する方法

  3. Linux で Wekan Kanban サーバーをセットアップする方法

  1. Linuxでプリンタを設定する方法

  2. LinuxPCにVPNサーバーをセットアップする

  3. Debianで自動更新を設定する方法