Cách thiết lập cập nhật kernel tự động không cần khởi động lại trong máy chủ Linux

theanh

Administrator
Nhân viên
Việc vá lỗi kernel trên máy chủ Linux có vẻ đơn giản. Có thể thực hiện bằng các công cụ phổ biến như dpkg, apt-get hoặc kexec. Tuy nhiên, các phương pháp này trở nên phức tạp nếu một tổ chức chạy hàng trăm hoặc hàng nghìn máy chủ. Nhiều máy chủ có nghĩa là nhiều bản phân phối cần vá, mỗi bản phân phối đều yêu cầu sự chú ý cá nhân từ quản trị viên hệ thống hoặc kỹ sư.

Các phương pháp vá lỗi thủ công này cũng có rủi ro ở chỗ chúng yêu cầu phải khởi động lại. Việc khởi động lại liên quan đến thời gian ngừng hoạt động của máy chủ, điều này luôn có vấn đề, vì vậy chúng thường được thực hiện trong các chu kỳ khởi động lại. Vì việc vá lỗi thủ công được thực hiện trong các chu kỳ này, nên nó cung cấp cho tin tặc một "khoảng thời gian" để chúng có thể tấn công cơ sở hạ tầng máy chủ.

Đối với các tổ chức chạy nhiều máy chủ, việc vá lỗi trực tiếp là lựa chọn tốt hơn. Đây là cách tự động vá lỗi hạt nhân Linux trong khi máy chủ đang chạy, cho phép nó vừa hiệu quả vừa an toàn hơn so với các phương pháp thủ công. Hãy cùng tìm hiểu cách thiết lập bốn hệ thống vá lỗi trực tiếp phổ biến nhất từ Canonical, Oracle, Red Hat và CloudLinux.

Vá lỗi trực tiếp là gì và hoạt động như thế nào​

Cuối cùng, có hai phương pháp vá lỗi trực tiếp cho hạt nhân và thư viện: tạm thời và liên tục. Phương pháp tạm thời áp dụng bản vá mà không cần khởi động lại nhưng thực tế yêu cầu khởi động lại máy chủ sau đó. Bản vá trực tiếp liên tục không yêu cầu khởi động lại.

Phương pháp tạm thời

Phương pháp tạm thời(hoặc bản vá "stack") được thực hiện bằng phần mềm quản lý gói (chẳng hạn như plugin YUM). Các bản vá được gửi đến kho lưu trữ và áp dụng theo quy trình cập nhật do người dùng chỉ định.

Việc vá lỗi "xếp chồng" đồng nghĩa với việc khởi động lại máy chủ và thời gian ngừng hoạt động, mặc dù bạn có thể không cần khởi động lại ngay sau khi cài đặt bản vá, nhưng do kiến trúc của loại cập nhật trực tiếp này, các bản vá bảo mật sẽ chồng lên nhau theo thời gian, có khả năng làm giảm hiệu suất và tính ổn định. Giải pháp duy nhất cho vấn đề này là khởi động lại máy chủ để tải một hạt nhân mới vào bộ nhớ.

Các nhà cung cấp cung cấp bản vá tạm thời là:

Phương pháp Persistent

Trong trường hợp của phương pháp Persistent, máy chủ lưu trữ các bản vá mới nhất và các bản vá này được gọi là "monolithic" vì chúng chứa các bản vá trước đó. Để cập nhật máy chủ, một chương trình tác nhân chạy ở chế độ nền, kiểm tra máy chủ bản vá để tìm các bản vá. Nếu có bản vá cho hạt nhân trên máy chủ bản vá, tác nhân sẽ gọi mô-đun vá và áp dụng bản vá.

Bản vá liên tục có những lợi thế quan trọng khác:​

  • Máy chủ sử dụng phương pháp liên tục vẫn hoạt động ngay cả khi có lỗ hổng phần cứng thường yêu cầu khởi động lại để vá, chẳng hạn như Spectre, Meltdown và Zombieload;
  • Phương pháp này giúp giảm thời gian và công sức cần thiết để quản trị máy chủ bằng cách tự động hóa toàn bộ quy trình vá lỗi;
  • Phương pháp này cho phép máy chủ luôn hoạt động, thường xuyên trong nhiều năm.
Phương pháp vá lỗi liên tục thường liên quan đến phí nhà cung cấp, với thời gian dùng thử miễn phí có sẵn từ hầu hết các nhà cung cấp:

Thiết lập cập nhật Kernel tự động không cần khởi động lại trong Linux server​

Dưới đây chúng tôi sẽ hướng dẫn bạn cách thiết lập cập nhật kernel không cần khởi động lại trong máy chủ Linux bằng các dịch vụ Livepatch, Kpatch, Ksplice và KernelCare.

Lưu ý: Trước khi bắt đầu triển khai các hướng dẫn này, hãy đảm bảo hệ thống của bạn được cập nhật và sao lưu.

1. Thiết lập Canonical Livepatch

Dịch vụ Canonical Livepatch có thể được thiết lập trong hoặc sau khi cài đặt. Nó sẽ cài đặt các bản vá bảo mật kernel chỉ khi bạn chạy lệnh apt-get upgrade (do đó, bán tự động).



Ưu điểm: Đơn giản. Bán tự động. Không cần khởi động lại.

Nhược điểm: Đắt đối với 4 máy chủ trở lên (nhưng miễn phí cho tối đa 3 máy chủ cho tất cả và tối đa 50 máy nếu bạn là thành viên của Cộng đồng Ubuntu). Không có bản vá khôi phục.

Phí, cho mỗi máy chủ: Hàng tháng (Không khả dụng), Hàng năm ($225).



Để cài đặt Livepatch trên Ubuntu 20.04 LTS Server (cũng hoạt động trên các phiên bản 16.04 LTS, 14.04 LTS và 18.04 LTS), hãy mở một thiết bị đầu cuối và chạy hai lệnh sau:
Mã:
sudo snap install canonical-livepatch[B]sudo canonical-livepatch enable
Để hủy đăng ký máy chủ, hãy sử dụng lệnh này:
Mã:
sudo canonical-livepatch disable
Để kiểm tra trạng thái của dịch vụ, hãy sử dụng lệnh này:
Mã:
sudo canonical-livepatch status --verbose

2. Thiết lập Oracle Ksplice

Trừ khi bạn đang chạy phiên bản Ksplice bên trong Oracle Cloud, bạn sẽ cần khóa truy cập để cài đặt dịch vụ. Bạn có thể thực hiện điều này bằng cách đăng nhập vào Unbreakable Linux Network và làm theo hướng dẫn để đăng ký hệ thống của bạn cho Ksplice.

Để cài đặt Ksplice, hệ thống của bạn phải có quyền truy cập internet. Nếu bạn đang sử dụng proxy, hãy thiết lập proxy trong shell của bạn:
Mã:
# export http_proxy=http://proxy.example.com:port
Mã:
# export https_proxy=http://proxy.example.com:port
Proxy phải hỗ trợ tạo kết nối HTTPS và chuỗi proxy phải ở định dạng này:

Mã:
[protocol://][username:password@][:port]
  • protocol là giao thức để kết nối với proxy (http hoặc https)
  • tên người dùng và mật khẩu là thông tin xác thực cần thiết để sử dụng proxy của bạn (nếu có).
  • máy chủ và cổng là tên máy chủ/địa chỉ IP và số cổng được sử dụng để kết nối với proxy
Chạy các hướng dẫn sau với tư cách là root, thay thế YOUR_ACCESS_KEY bằng khóa truy cập mà bạn nhận được ở bước trước.

Bên trong Oracle Cloud[/b]​

Để cài đặt Ksplice bên trong Oracle Cloud để các bản cập nhật hạt nhân được cài đặt tự động, hãy chạy các lệnh sau:
Mã:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
Mã:
# sh install-uptrack-oc --autoinstall
Để áp dụng các bản cập nhật khả dụng cho Uptrack, ứng dụng tự động cài đặt các bản cập nhật kernel, hãy chạy lệnh này:
Mã:
# uptrack-upgrade -y
Nếu bạn đã cài đặt Uptrack, bạn có thể bật nó bằng cách thiết lập autoinstall = yes trong /etc/uptrack/uptrack.conf sau khi Ksplice được cài đặt.

Để cài đặt Ksplice để các bản cập nhật được áp dụng theo cách thủ công, hãy chạy các lệnh này lệnh:
Mã:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
Mã:
# sh install-uptrack-oc[B][/b]

Ngoài Oracle Cloud

Để cài đặt Ksplice ngoài Oracle Cloud để các bản cập nhật hạt nhân được cài đặt tự động, hãy chạy các lệnh sau:
Mã:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
Mã:
# sh install-uptrack YOUR_ACCESS_KEY --autoinstall
Để cài đặt Ksplice để các bản cập nhật được áp dụng theo cách thủ công, hãy chạy các lệnh sau:
Mã:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
Mã:
# sh install-uptrack YOUR_ACCESS_KEY
Lưu ý: Nếu bạn đang cài đặt Ksplice trên máy chủ Debian hoặc Ubuntu, trước tiên bạn có thể cần cài đặt ca-certificates gói với apt-get install ca-certificates. Nếu không có gói này, bạn sẽ thấy "lỗi xác minh chứng chỉ".

4. Thiết lập Red Hat Kpatch

Cài đặt Kpatch rất đơn giản và dễ hiểu:

Chạy lệnh update để cập nhật kho lưu trữ gói và nhận thông tin gói mới nhất:
Mã:
sudo apt-get update -y
Chạy lệnh install với cờ -y để cài đặt nhanh các gói và phần phụ thuộc:


Mã:
sudo apt-get install -y patch

5. Thiết lập CloudLinux KernelCare

Để xem kernel đang chạy có được KernelCare hỗ trợ hay không, hãy chạy một trong hai lệnh sau:
Mã:
curl -s -L https://kernelcare.com/checker | python
hoặc
Mã:
wget -qq -O – https://kernelcare.com/checker | python
Để cài đặt KernelCare, hãy chạy một trong hai lệnh sau:
Mã:
curl -s -L https://kernelcare.com/installer | bash
hoặc:
Mã:
wget -qq -O - https://kernelcare.com/installer | bash
Nếu bạn đang sử dụng giấy phép dựa trên IP, không cần thực hiện bất kỳ thao tác nào khác. Nếu bạn đang sử dụng giấy phép dựa trên khóa, hãy chạy lệnh này:
Mã:
$ /usr/bin/kcarectl --register KEY
KEY là chuỗi mã khóa đăng ký mà bạn nhận được khi mua KernelCare hoặc đăng ký dùng thử miễn phí. Bạn có thể nhận khóa tại đây.

Để hủy đăng ký máy chủ, hãy chạy:
Mã:
sudo kcarectl --unregister
Để kiểm tra trạng thái của dịch vụ, hãy chạy:
Mã:
sudo kcarectl --info
KernelCare tự động kiểm tra các bản vá lỗi mới sau mỗi 4 giờ. Để thực hiện cập nhật thủ công thay vì tự động, hãy chạy:
Mã:
/usr/bin/kcarectl –update

Kết luận​

Các hướng dẫn cài đặt này cho một số giải pháp vá lỗi trực tiếp liệt kê tất cả các bước cần thiết để cài đặt một giải pháp trong môi trường của bạn. Sau khi hoàn tất, bạn sẽ tận hưởng những lợi ích của công nghệ vá lỗi trực tiếp: có thể cập nhật hạt nhân mà không cần dừng máy chủ, không cần khởi động lại sau đó trong nhiều tháng hoặc thậm chí nhiều năm.

 
Back
Bên trên