Khôi phục máy chủ là quyết định về việc lớp nào đã hỏng, không phải bài tập sao chép tệp. Cấu hình, thông tin xác thực và phiên bản gói di chuyển theo những đồng hồ khác nhau, và khôi phục một thứ trong khi những thứ khác vẫn mới sẽ tạo ra một máy chủ trông khỏe mạnh nhưng hành xử không nhất quán. Trình tự dưới đây giả định một thay đổi đã đi sai và yêu cầu bạn khôi phục trạng thái nhất quán nhỏ nhất. Hãy làm theo thứ tự, và coi việc kiểm tra truy cập ngoài băng là bước không ai nên bỏ qua.

Tạo một điểm kiểm tra mà bạn thực sự có thể khôi phục

Ghi lại cấu hình mà dịch vụ đọc khi khởi động, cùng với phiên bản đã phân tích nó lần cuối. Một tệp từng tải sạch trong bản phát hành cũ có thể bị từ chối hoặc bị bỏ qua một cách âm thầm sau khi nâng cấp, vì vậy phiên bản thuộc cùng một ghi chú. Bao gồm cả tài liệu mà cấu hình trỏ tới: khóa riêng, đường dẫn chứng chỉ, định nghĩa trình lắng nghe và các mục DNS cùng tường lửa giúp dịch vụ có thể truy cập. Nếu việc khôi phục cần một tệp bạn không lưu, điểm kiểm tra đó chưa đầy đủ.

Đặt tên chủ sở hữu cho từng thiết lập khi hệ thống còn khỏe mạnh. Tuyến do bảng điều khiển nhà cung cấp cài đặt, tuyến do tường lửa của máy chủ thêm vào và tuyến được đẩy tới máy khách là ba đối tượng khác nhau, và khôi phục nhầm cái sẽ để hai cái kia nguyên chỗ. Một bảng ngắn gồm thiết lập, chủ sở hữu và đường dẫn tệp là đủ.

Giữ việc thu hồi tách khỏi cấu hình

Cấu hình cũ có thể âm thầm kết nối lại một thiết bị mà bạn đã cố ý gỡ bỏ, điều này biến một lần phục hồi thành một bước thoái lùi về bảo mật. Giữ danh sách thu hồi hiện tại và các tài khoản đã vô hiệu hóa trong khi khôi phục chính sách mạng, rồi áp dụng lại chúng trước khi dịch vụ nhận máy khách.

Coi trạng thái danh tính là một lần khôi phục riêng với bằng chứng riêng. Các tệp thu hồi chứng chỉ, việc vô hiệu hóa tài khoản và đăng ký MFA hiếm khi nằm cùng chỗ với cấu hình daemon, và việc khôi phục cấu hình sẽ không đụng tới chúng. Hãy kiểm tra trạng thái hiện tại trước để biết điều gì phải sống sót. Sau khi khôi phục, xác nhận rằng danh tính đã gỡ vẫn không thể kết nối.

Tiếp cận máy chủ khi đường hầm hỏng

Mở một đường tới máy không phụ thuộc vào thành phần đang bị thay đổi. Bảng điều khiển hypervisor, địa chỉ quản trị trên một giao diện riêng hoặc bảng điều khiển nối tiếp đều đạt; một phiên SSH mang qua đường hầm thì không. Nếu lối vào duy nhất là VPN mà bạn sắp khởi động lại, một tuyến hoặc quy tắc tường lửa sai sẽ lấy đi khả năng sửa nó. Hãy thử đường thay thế trước khi thay đổi, không phải sau đó. Đăng nhập qua nó một lần, xác nhận sudo hoạt động và ghi lại địa chỉ chính xác bạn đã dùng.

Bài kiểm tra rất đơn giản: hạ đường hầm trong khi đang kết nối qua đường thay thế và xem phiên có sống sót không. Nếu nó rớt, bạn đã tìm ra lỗi trước khi nó kịp làm bạn mắc kẹt.

Chỉ áp dụng một bản sửa đổi và biết khi nào nó có hiệu lực

Dùng tài liệu reload hoặc restart của dịch vụ và tìm hiểu chỉ thị nào được đọc vào thời điểm nào. Một số giá trị áp dụng khi reload, số khác chỉ khi một phiên hoặc tiến trình mới bắt đầu, nên việc sửa tệp không chứng minh gì về trạng thái đang chạy. Khôi phục một bản sửa đổi duy nhất thay vì trộn tệp mới với trạng thái chạy cũ. Khi nghi ngờ, khởi động lại toàn bộ dịch vụ dễ lập luận hơn một lần reload từng phần.

Kiểm tra định nghĩa unit trước khi chọn: systemctl show -p ExecReload openvpn@server cho bạn biết liệu có móc reload hay không. Sau đó áp dụng bản sửa đổi và đọc nhật ký để tìm những lỗi mới đầu tiên trước khi thay đổi bất cứ điều gì khác.

Xác minh, ghi lại và điều tra sau đó

Kết nối một máy khách được cấp phép và thử những gì dịch vụ dùng để làm: phân giải tên, kết nối lại và ứng dụng đã hỏng. Xác nhận danh tính bị thu hồi vẫn bị từ chối. Ghi lại bản sửa đổi đã khôi phục, thời gian và lý do, vì người vận hành tiếp theo sẽ cần cả ba. Một lần khôi phục không ai ghi lại sẽ thành ẩn số vào lần tới khi dịch vụ hành xử tệ.

systemctl status openvpn@server --no-pager
journalctl -u openvpn@server -n 50 --no-pager

Khi dịch vụ đã ổn định, tái hiện thay đổi đã hỏng trên một máy chủ hoặc ảnh chụp có thể vứt bỏ. Điều đó tách cấu hình tồi khỏi gói tồi hoặc chứng chỉ hết hạn. Giữ cấu hình đã khôi phục dưới kiểm soát phiên bản để điểm kiểm tra tiếp theo bắt đầu từ một commit đã biết. Mục đích của bài tập là một điểm kết thúc được ghi lại, không phải hạ cấp vĩnh viễn.

Bài viết liên quan