Người ta hỏi liệu WireGuard đã sẵn sàng cho môi trường sản xuất chưa, nghe như câu hỏi về mật mã nhưng thực ra là câu hỏi về môi trường của bạn. Giao thức đã được xem xét nhiều năm; việc triển khai vẫn phải trả lời liệu mạng của bạn có mang được phần vận chuyển của nó không, ai ghi danh và cho nghỉ các thiết bị, và ai vá gói ở cả hai đầu. Những câu trả lời đó khác nhau giữa hai máy chủ trong một rack và một nghìn máy tính xách tay. Giao thức giống nhau trong cả hai trường hợp; còn vận hành thì không.

Câu hỏi đằng sau câu hỏi

Điều người ta thường muốn biết là liệu họ có thể cam kết với một thiết kế không khiến họ xấu hổ sau sáu tháng hay không. Đó là câu hỏi triển khai gồm bốn phần, và mỗi phần có thể thất bại độc lập với các phần khác. Trả lời tốt ba phần không bù được phần thứ tư.

Một cảnh báo cũ về bản chụp trước khi phát hành là sự thật về bản chụp đó, không phải nhãn cố định trên mọi gói sau này. Tương tự, không bài viết blog nào có thể tuyên bố tổ hợp nhân, ứng dụng khách, mạng và nhân sự cụ thể của bạn đã sẵn sàng. Việc cần làm là làm cho tổ hợp đó rõ ràng và kiểm tra nó.

Hãy coi sự sẵn sàng như một tập hợp các cổng mà bạn hoặc đi qua hoặc ghi nhận là còn mở. Điều đó biến một cuộc tranh luận thành danh sách kiểm tra có người phụ trách. Nó cũng làm cho các mục còn mở hiển thị với người phê duyệt, thay vì bị chôn trong báo cáo thí điểm.

Cổng thứ nhất: đường đi phải mang UDP

WireGuard mang lưu lượng của mình qua UDP và ghi rõ rằng nó không cung cấp chế độ TCP hay che giấu lưu lượng. Một thiết kế dựa vào việc trông giống lưu lượng web thông thường, hoặc dựa vào việc đổi cổng để có hành vi TCP, đang đứng trên một giả định mà phần mềm không hỗ trợ.

Vì vậy cổng đầu tiên là một cuộc khảo sát, không phải bài kiểm tra trên một máy. Liệt kê các môi trường truy cập mà người dùng của bạn thật sự làm việc, sau đó xác minh đường UDP đã được phê duyệt ở từng môi trường và quyết định điều gì xảy ra khi nó không khả dụng.

Một kết nối chạy được từ văn phòng không chứng minh gì về mạng khách sạn, tường lửa khuôn viên hay nhà mạng di động xử lý UDP theo cách khác. Chính những môi trường đó là lý do các triển khai truy cập từ xa thất bại sau một thí điểm thành công. Thí điểm không sai; nó hẹp. Mở rộng nó chính là cổng.

Cũng hãy ghi lại đường dự phòng. Nếu câu trả lời là không có đường dự phòng, đó là quyết định đáng được tuyên bố trước thay vì phát hiện trong một chuyến công tác.

Cổng thứ hai: phải có người sở hữu các khoá

Các peer của WireGuard xác thực bằng khoá, một cặp cho mỗi người tham gia. Điều đó dễ mô tả và khó về vận hành, vì không có gì trong giao thức ghi danh thiết bị, theo dõi ai giữ khoá nào hay thu hồi quyền truy cập khi một máy tính xách tay bị mất. Giao thức giả định các khoá đã đúng, và sự đúng đắn là việc của một ai đó.

Hãy nêu tên người ghi danh thiết bị, bản ghi liên kết khoá công khai với một người và một thiết bị, và quy trình thu hồi. Nếu việc thu hồi phụ thuộc vào việc nhớ nơi đã cài các bản sao của tệp cấu hình, quy trình chưa hoàn tất.

Chọn một thiết bị trong thí điểm và cho nó nghỉ từ đầu đến cuối. Bài tập đó tạo ra thông tin hữu ích hơn một bài kiểm tra kết nối nữa, vì nó phơi ra các lỗ hổng trong hồ sơ của bạn.

Cổng thứ ba: gói cần người bảo trì

WireGuard có thể đến dưới dạng triển khai trong nhân, gói phân phối hoặc ứng dụng khách trong không gian người dùng, và mỗi dạng có đường cập nhật riêng. Câu hỏi vận hành là bạn chạy dạng nào, nó đến từ đâu và ai áp dụng bản tin bảo mật.

Chúng tôi dùng WireGuard không phải là bản kiểm kê. Nó không chỉ ra gói cần vá, phiên bản trên cổng hay người có thể lùi một bản cập nhật tồi.

Cổng thứ tư: hãy chấp nhận khối lượng công việc, không phải cái bắt tay

Tiêu chí chấp nhận nên mô tả điều người dùng làm. Đến được một ứng dụng nội bộ, phân giải tên riêng của nó, bị từ chối ở một đích không được phép và tuân theo hành vi đã định khi đường hầm ngừng đều quan sát được, và một cái bắt tay thành công không phải là điều nào trong số đó.

Hãy chạy các kiểm tra đó qua một lần đổi mạng, một lần khởi động lại thiết bị và một cửa sổ bảo trì cổng, vì chính ở những chuyển tiếp đó các triển khai vỡ.

Giữ bằng chứng bên cạnh các tiêu chí, bao gồm trạng thái cục bộ đã tạo ra chúng:

wg show
ss -lunp | grep 51820
ip -4 route get 10.63.0.1

Một bài kiểm tra xanh trên mạng yên tĩnh với một máy tính xách tay là quan sát ban đầu. Đó không phải tuyên bố về độ tin cậy, và đối xử với nó như vậy chính là cách một thiết kế chạy được trở thành một thiết kế được tin dùng.

Bài viết liên quan