Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách tránh reboot server với Ubuntu Livepatch

Cách tránh reboot server với Ubuntu Livepatch

Nếu bạn quản trị server riêng, sớm muộn bạn đối mặt vấn đề: phải reboot hệ điều hành, nhưng máy cung cấp dịch vụ quan trọng không thể gián đoạn.

Nhưng tại sao phải reboot? Mọi thứ似乎工作 tốt sau lệnh apt-get upgrade. Tuy nhiên, điều không phải lúc nào cũng như vẻ ngoài. Dù hệ thống tiếp tục chạy vui vẻ sau mỗi nâng cấp, không ép reboot như Windows, nó vẫn có thể cần reboot.

Ví dụ, khi lỗ hổng lõi hệ thống (kernel) được phát hiện, nó được vá và đẩy đến server như gói mới. Sau cài kernel đã vá, một số file ghi vào đĩa, nhưng vẫn là kernel cũ đang chạy, vì nó là cái được nạp vào bộ nhớ (RAM).

Điều này nghĩa là server vẫn dễ bị tấn công qua lỗ hổng bảo mật trước đây. Tiến trình, daemon, dịch vụ khác có thể tải lại (reload) không cần khởi động lại OS. Tuy nhiên, kernel nằm ở trung tâm hệ thống và chỉ có thể tải lại ở boot tiếp theo.

Ubuntu Livepatch giải quyết bằng cách cho bạn vá lỗ hổng bảo mật kernel không cần khởi động lại.这样, bạn có thể tránh hoặc trì hoãn reboot hàng tuần hoặc hàng tháng mà không làm giảm bảo mật.

Ý tưởng cốt lõi live patching đơn giản: khi hàm dễ bị tổn thương, viết lại nó, loại bỏ lỗi, và nạp hàm mới đâu đó vào bộ nhớ. Khi hàm được gọi, thay vì chạy mã trong kernel, chuyển hướng cuộc gọi dùng mã viết lại.

Cách tránh reboot server với Ubuntu Livepatch

Nhưng, như hầu hết việc trông đơn giản, triển khai và chi tiết kỹ thuật không đơn giản.

Cách thiết lập Livepatch trên Ubuntu

Vào trang này và tạo tài khoản Ubuntu One. (Hoặc đăng nhập nếu đã có.) Kiểm tra email và nhấp liên kết xác nhận tài khoản. Tiếp theo, truy cập trang Canonical Livepatch Service. Chọn bạn là "Ubuntu user", và nhấp nút tạo token. Trang tiếp theo sẽ hiển thị lệnh chính xác bạn phải nhập trên server. Sau lệnh đầu, nhập

sudo snap install canonical-livepatch

Đợi vài giây cho gói snap cài xong. Khi xong, bạn nhận kết quả như hình sau.

Cách tránh reboot server với Ubuntu Livepatch

Cuối cùng, với lệnh cuối từ trang Canonical,

sudo canonical-livepatch enable #PASTE_YOUR_TOKEN_HERE

dịch vụ kích hoạt và tự động áp dụng bản vá bảo mật cho kernel, khi cần, không cần can thiệp.

Cài đặt Snap Daemon nếu cần

Trên vài trường hợp hiếm, lệnh đầu phần trước có thể thất bại, với thông báo: -bash: /usr/bin/snap: No such file or directory. Trong trường hợp này nghĩa là nhà cung cấp server có image Ubuntu không bao gồm dịch vụ snap daemon mặc định. Cài nó với:

sudo apt update && sudo apt install snapd

Bây giờ chạy lại hai lệnh từ phần trước.

Giữ server cập nhật

Livepatch sẽ áp dụng mọi bản cập nhật bảo mật cần thiết cho kernel. Tuy nhiên, bạn vẫn nên nâng cấp phần còn lại của hệ thống định kỳ với lệnh như:

sudo apt update && sudo apt upgrade

Bạn nên làm hàng tuần, hoặc thậm chí thường hơn, nếu có thể. Gói hệ thống quan trọng có thể nhắc bạn cần khởi động lại để áp dụng bản vá mới.

Cách tránh reboot server với Ubuntu Livepatch

Đây thường là khởi động lại nhẹ nhàng (graceful restart), nghĩa là không làm gián đoạn dịch vụ. Ví dụ, trường hợp này, daemon SSH khởi động lại không ngắt phiên SSH hoạt động.

Trong tình huống khác, bạn có thể tự khởi động lại dịch vụ để chắc chắn mã mới đã vá được nạp vào bộ nhớ và bản vá bảo mật áp dụng. Ví dụ, nếu nhận thấy gói nginx đã nâng cấp, bạn chạy

systemctl restart nginx.service

để nạp lại daemon nginx vào bộ nhớ. Nếu không, dù gói nâng cấp, nó vẫn chạy với mã cũ, dễ bị tổn thương, đặt server ở rủi ro tấn công đã biết. Một số nâng cấp gói làm tự động, nhưng những cái khác không. Đó là lý do thói quen tốt để chú ý "apt upgrade" làm gì và khởi động lại dịch vụ nếu cần. Bạn cũng xem log xem việc này có tự động không.

Kết luận

Như bạn thấy, Canonical làm cho việc triển khai này trên server khá dễ. Về kernel, không có việc bảo trì cần thiết từ bạn. Điều duy nhất bạn làm là chạy

canonical-livepatch status

từng lúc để kiểm tra.