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.
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à:
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.
Ư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:
Để hủy đăng ký máy chủ, hãy sử dụng lệnh này:
Để kiểm tra trạng thái của dịch vụ, hãy sử dụng lệnh này:
Để 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:
Proxy phải hỗ trợ tạo kết nối HTTPS và chuỗi proxy phải ở định dạng này:
Để á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:
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:
Để 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:
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ỉ".
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:
Chạy lệnh install với cờ -y để cài đặt nhanh các gói và phần phụ thuộc:
hoặc
Để cài đặt KernelCare, hãy chạy một trong hai lệnh sau:
hoặc:
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:
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:
Để kiểm tra trạng thái của dịch vụ, hãy chạy:
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:
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.
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
Mã:
sudo canonical-livepatch disable
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
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
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
Mã:
# uptrack-upgrade -y
Để 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
Mã:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
Mã:
# sh install-uptrack YOUR_ACCESS_KEY
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
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
Mã:
wget -qq -O – https://kernelcare.com/checker | python
Mã:
curl -s -L https://kernelcare.com/installer | bash
Mã:
wget -qq -O - https://kernelcare.com/installer | bash
Mã:
$ /usr/bin/kcarectl --register KEY
Để hủy đăng ký máy chủ, hãy chạy:
Mã:
sudo kcarectl --unregister
Mã:
sudo kcarectl --info
Mã:
/usr/bin/kcarectl –update