Ubuntu Pro:個人サーバーも「アップグレード」すべき理由とは?
Linuxを触り始めたばかりの多くの方は、Ubuntu LTSをインストールすれば5年間は「枕を高くして寝られる」と思いがちです。しかし、現実はそう単純ではありません。5年が経過すると、公式のセキュリティパッチの提供が停止します。さらに懸念されるのは、標準のUbuntuを使用している場合、Redis、Node.js、Pythonなどのuniverseリポジトリにある何千ものパッケージが放置されがちであるという点です。
Ubuntu Proは、この問題に対する「救世主」です。以前は高価で企業向けのサービスでしたが、現在、Canonicalは個人ユーザーに対して最大5台まで無料で利用できるように開放しています。私はUbuntu 22.04を実行しているサーバークラスターでこの構成を試しましたが、結果は非常に印象的でした。システムは安定しており、カーネルパッチはダウンタイムなしで即座に適用されました。
今すぐUbuntu Proを有効にすべき3つの理由は以下の通りです:
- ESM (Extended Security Maintenance): セキュリティパッチの保守期間を、デフォルトの5年から最大10年に延長します。
- Livepatch: サーバーの稼働中にカーネルの脆弱性を修正します。午前2時にサーバーを再起動するために待機する必要はもうありません。
- Universeリポジトリのセキュリティ: Ubuntuのコアシステム以外にある23,000以上のオープンソースパッケージを保護します。
アカウント登録とトークンの取得手順
まず、Ubuntu Oneのアカウントが必要です。登録はわずか2分ほどで完了し、完全に無料です。
- 公式サイトubuntu.com/proにアクセスします。
- 個人アカウントで登録またはログインします。
- Your subscriptionsセクションに、Tokenと呼ばれる長い文字列が表示されます。サーバーの「魔法」のために、このコードをコピーしておいてください。
次に、サーバーのターミナルを開きます。実行前にライセンス管理ツールを最新バージョンに更新しておくと、細かなエラーを避けることができます。
sudo apt update && sudo apt upgrade -y
sudo apt install ubuntu-advantage-tools -y
実際の設定:セキュリティの鎧を有効化する
通常のUbuntuサーバーをPro版にアップグレードするには、コマンドを1行実行するだけです。YOUR_TOKEN_HEREを取得したコードに置き換えてください:
sudo pro attach YOUR_TOKEN_HERE
コマンドの実行が完了すると、利用可能なサービスがターミナルにリストされます。通常、esm-appsとesm-infraは自動的に有効になります。しかし、最も価値のある機能であるLivepatchは、手動で有効化が必要な場合があります。
1. 再起動をスキップするためにLivepatchを有効化する
Livepatchを使用すると、カーネル更新のたびにメンテナンスのスケジュールを組んだり、ユーザーに説明したりする手間が省けます。この機能を有効にするには、以下を入力します:
sudo pro enable livepatch
システムは自動的にcanonical-livepatchデーモンをインストールします。今後、重大なカーネルの脆弱性(リモートコード実行など)が見つかった場合、サーバーはアプリケーションを中断することなく、パッチを直接RAMにロードします。
2. ESM-Appsでアプリケーションリポジトリを保護する
デフォルトでは、Ubuntu LTSはmainリポジトリのセキュリティのみを保証しています。Docker、Nginx、または標準リポジトリのPythonライブラリを使用している場合、ハッカーに古い脆弱性を悪用されないようにするためにESM-Appsが必要です。
sudo pro enable esm-apps
3. Pro Fixで脆弱性を特定して対処する
私が非常に気に入っている機能の一つは、特定のCVE脆弱性をチェックできる機能です。例えば、ニュースで話題になっている新しい脆弱性が自分のサーバーに影響するかどうかをすぐに確認できます:
pro fix CVE-2023-XXXXX
このコマンドはステータスを報告するだけでなく、瞬時にパッチを適用する方法も案内してくれます。
成果を確認する
完了後、すぐにターミナルを閉じないでください。すべてが正常に動作しているか、次のコマンドで確認しましょう:
pro status
STATUS列に注目し、すべてがenabledと表示されていることを確認してください。ロードされたカーネルパッチの詳細を確認するには、次のコマンドを使用します:
canonical-livepatch status
kernel: ... server check-in: succeededという行が表示されれば、もう枕を高くして寝ることができます。
管理者へのまとめ
4〜5台のVPSを管理している場合、手動でコマンドを入力するのは手間がかかります。私は通常、セットアップスクリプトにattachコマンドを含めるか、Ansibleを使用して完全に自動化しています。10年間のセキュリティシステムを無料で利用できるのは、ラボ環境を構築したり個人プロジェクトを運営したりする方にとって非常に大きなメリットです。サーバーが攻撃されるまで

