UbuntuLivepatchでサーバーの再起動を回避する方法
独自のサーバーを管理している場合、遅かれ早かれこの問題に直面します。オペレーティングシステムを再起動する必要がありますが、マシンは中断できない重要なサービスを提供します。
しかし、そもそもなぜ再起動するのでしょうか。 apt-get upgrade
の後、すべてが正常に機能しているようです 指図。ただし、物事は必ずしも見た目どおりではありません。システムはアップグレードのたびに正常に動作し続け、Windowsのように再起動を強制することはありませんが、それでも再起動が必要になる場合があります。
たとえば、システムのコア(カーネル)に脆弱性が発見されると、パッチが適用され、新しいパッケージとしてサーバーにプッシュされます。パッチを適用したカーネルをインストールすると、一部のファイルがディスクに書き込まれますが、メモリ(RAM)にロードされているため、showを実行しているのは古いカーネルです。
これは、サーバーが以前に発見されたセキュリティホールに対して依然として脆弱であることを意味します。他のプロセス、デーモン、およびサービスは、オペレーティングシステムを再起動せずに再ロードできます。ただし、カーネルはシステムの中心にあり、次回の起動時にのみ再ロードできます。
Ubuntu Livepatchは、再起動せずにカーネルのセキュリティホールを閉じることができるようにすることで、これを解決します。このようにして、セキュリティを損なうことなく、再起動を回避または遅延させることができます。
ライブパッチの背後にある基本的な考え方は単純です。関数が脆弱な場合は、関数を書き直し、欠陥を排除し、新しい関数をメモリのどこかにロードします。関数が呼び出されると、カーネルでコードを実行する代わりに、書き換えられたコードを使用するように呼び出しをリダイレクトします。
しかし、単純に機能しているように見えるほとんどのものと同様に、実装と技術的な詳細はそれほど単純ではありません。
UbuntuでLivepatchを設定する方法
このページに移動して、UbuntuOneアカウントを作成します。 (または、すでにログインしている場合はログインしてください。)メールを確認し、後でアカウント確認リンクをクリックしてください。次に、CanonicalLivepatchServiceページにアクセスします。 「Ubuntuユーザー」であることを選択し、ボタンをクリックしてトークンを生成します。次のページには、サーバーで入力する必要のある正確なコマンドが表示されます。最初のコマンドの後に、
と入力しますsudo snap install canonical-livepatch
スナップパッケージが完全にインストールされるまで数秒待ちます。完了すると、次の図に示すような結果が得られます。
最後に、Canonicalのページの最後のコマンドで
sudo canonical-livepatch enable #PASTE_YOUR_TOKEN_HERE
サービスがアクティブになり、必要に応じて、ユーザー側で入力を必要とせずに、セキュリティパッチがカーネルに自動的に適用されます。
必要に応じてスナップデーモンをインストールする
まれに、前のセクションの最初のコマンドが失敗し、次のエラーメッセージが表示される場合があります。-bash: /usr/bin/snap: No such file or directory
。この場合、サーバープロバイダーにデフォルトでスナップデーモンサービスが含まれていないUbuntuオペレーティングシステムイメージがあることを意味します。インストール方法:
sudo apt update && sudo apt install snapd
ここで、前のセクションの2つのコマンドをもう一度実行します。
サーバーを最新の状態に保つ
Livepatchは、必要なすべてのセキュリティ更新をカーネルに適用します。ただし、次のようなコマンドを使用して、システムの残りの部分を定期的にアップグレードする必要があります。
sudo apt update && sudo apt upgrade
これは毎週、または可能であればもっと頻繁に行う必要があります。重要なシステムパッケージでは、最新のセキュリティ修正を適用するために再起動する必要があるというプロンプトが表示される場合があります。
これらは通常、正常な再起動です。つまり、プロセスのサービスを中断することはありません。たとえば、この場合、アクティブなSSHセッションを中断せずにSSHデーモンが再起動されました。
他の状況では、サービスを自分で再起動して、パッチが適用された新しいコードが再ロードされ、セキュリティ修正が適用されていることを確認できます。たとえば、nginxパッケージがアップグレードされていることに気付いた場合は、実行できます
systemctl restart nginx.service
nginxデーモンをメモリにリロードします。そうしないと、パッケージがアップグレードされても、古い脆弱なコードで実行され、サーバーが既知の攻撃の危険にさらされる可能性があります。一部のパッケージアップグレードはこれを行いますが、そうでないものもあります。そのため、「apt upgrade」の機能に注意を払い、必要に応じて一部のサービスを再起動することをお勧めします。ログを見て、これが自動的に行われたかどうかを確認することもできます。
結論
ご覧のとおり、Canonicalを使用すると、サーバーにこれを実装するのがかなり簡単になります。カーネルに関する限り、あなたの側でメンテナンス作業は必要ありません。あなたができる唯一のことは実行することです
canonical-livepatch status
時々物事をチェックするために。
-
LinuxTimeをNTPサーバーと同期する方法
コンピューターの時計は完璧ではありません。数日、数週間、または数か月を考えると、それらはドリフトし、リアルタイムの表示を停止します。簡単に言えば、ドリフトした後、実際には「10:33」であるのに「10:30」と表示される場合があります。古いコンピューターでは、コンピューターの時計を手動で定期的に再調整するのが一般的でした。しかし、インターネット接続が普及した後、最新のオペレーティングシステムはNTPサーバーの助けを借りて時計を自動的に調整し始めました。 NTPとは何ですか? NTPは、NetworkTimeProtocolの頭字語です。これは、ネットワーク接続を介してコンピュータークロック
-
NginxでDDoS攻撃を防ぐ方法
分散型サービス拒否攻撃または「DDoS」攻撃は、不正なデジタル通信戦術を通じてサーバーのリソースを隔離します。これらのタイプの攻撃は、コンピューターの世界で組織化された襲撃です。数多くの厄介なアンチライクアクションが組み合わさって、ベテランのサーバーをそのトラックで停止させるのに十分な恐ろしい脅威を生み出します。何よりも悪いことに、疑いを持たないサーバーに対してそのようなゲリラWeb戦争を行う複数の手段があります。幸いなことに、サーバーは反撃するように構成できます。 Unixマシンで非常に人気のあるサーバーシステムであるNginxには、DDoS攻撃の効果を大幅に制限するのに十分な機能が組み込