Tạo cặp khóa WireGuard cục bộ: các lệnh và lưu ý
Hai lệnh tạo ra cặp khóa; công việc thật nằm ở umask, vị trí tệp và việc biết rằng chỉ nửa công khai được gửi đến đối tác. Một hướng dẫn cục bộ.
Hai lệnh tạo ra một cặp khóa WireGuard và cả hai đều có sẵn trong bộ công cụ chuẩn, nên nhiệm vụ này không cần trang web nào đề nghị tạo khóa hộ bạn. Thứ hỏng không bao giờ là số học đường cong; đó là các bit quyền, nơi tệp rơi xuống và những gì được gửi tới đầu bên kia sau đó. Trình tự dưới đây bắt đầu trong một thư mục trống và kết thúc ở một đối tác có mang lưu lượng. Hãy đọc một lần trước khi chạy, vì dòng đầu tiên chỉ có ý nghĩa nếu dòng tiếp theo chạy trong cùng một shell.
Tạo cặp khóa trong một shell
Quy trình đã được ghi lại giới hạn việc tạo tệp trước khi giá trị riêng tư tồn tại, rồi suy ra giá trị công khai từ nó. Cả ba dòng thuộc về cùng một phiên shell:
umask 077 # applies to files created next, so keep the next line in this shell
wg genkey | tee privatekey | wg pubkey > publickey
wg pubkey < privatekey # re-derive and compare with publickey
wg genkey ghi một khóa riêng Curve25519 32 byte ở dạng base64; wg pubkey đọc nó và suy ra khóa công khai tương ứng, còn tee lưu giá trị riêng tư trong khi chuyển nó xuống theo đường ống. Chính thứ tự đó là lý do dòng quyền đến trước và lý do việc dán đường ống vào một terminal thứ hai âm thầm làm mất nó. Tên tệp chỉ là ví dụ, và điều quan trọng là cả hai tệp rơi vào nơi thiết bị sở hữu kiểm soát. Nếu một tệp riêng tư đã tồn tại với quyền mặc định, chmod 600 privatekey sửa tệp hiện tại và không làm gì với các bản sao đã tạo trước đó.
Giữ nửa riêng tư trên một thiết bị
Giá trị riêng tư thuộc về máy sẽ sở hữu danh tính, trong một thư mục mà máy đó bảo vệ và mà các bản sao lưu của nó coi là thông tin xác thực. Nó không thuộc về thư mục chia sẻ, tin nhắn gửi cho chính mình hay đoạn trích đính kèm phiếu hỗ trợ, và một bản sao nhúng vào làm tệp cấu hình nhạy cảm đúng bằng khóa. Một khóa đã sống ở ba nơi thì về sau không thể suy xét lại, và đó là lý do thực tế để giữ nó ở một nơi.
Cố ý tiêu hủy một tệp đã nghỉ hưu là một phần của cùng thói quen đó. Để nó trong thư mục tải xuống cho đến khi ai đó nhận ra thì không phải.
Điều người vận hành đối tác cần ở bạn
Phía bên kia cần giá trị công khai và cách bố trí địa chỉ mà người vận hành của họ đã chọn, không gì khác. Hãy gửi chuỗi công khai đó qua kênh mà người vận hành mong đợi, rồi xác nhận nó được gắn vào mục đối tác nào trước khi ai đó kiểm tra, vì một khóa đúng ở phần sai sẽ hỏng theo cách trông như vấn đề về khóa. Hãy gửi nó thành một dòng không xuống hàng, vì một khóa bị ngắt thành hai dòng sẽ dán vào tệp cấu hình mà không báo lỗi và sau đó không bao giờ khớp.
Việc tạo khóa không tự nó cho phép điều gì. Đối tác phải được cấu hình để chấp nhận nó, và bước cấu hình thuộc về người vận hành đầu đó.
Kiểm tra cặp khóa bằng một trao đổi thật
Một cặp khóa xác định một đầu của đường hầm; nó không tạo tuyến, mục phân giải, quy tắc chuyển tiếp hay quyền tường lửa nào. Sau khi đối tác được chuẩn bị, hãy kiểm tra trao đổi chứ không phải tệp: một cái bắt tay xuất hiện trong wg show, một địa chỉ trả lời bên trong đường hầm, và một yêu cầu ứng dụng phụ thuộc vào tuyến. Bộ ba đó tách một khóa sai khỏi một khóa đúng và khỏi một đường đi bị thiếu.
Giữ một danh tính cho mỗi thiết bị khi việc triển khai cho phép, để một đơn vị bị mất có thể bị thu hồi riêng thay vì buộc mọi người tạo lại khóa. Quyết định đó cũng là điều khiến quy trình thay thế dưới đây an toàn để chạy.
Thay khóa không có khoảng trống
Tạo khóa thay thế trên thiết bị, thêm khóa công khai mới như một đối tác bổ sung, xác nhận nó mang lưu lượng, và chỉ sau đó mới gỡ khóa cũ. Làm theo thứ tự đó nghĩa là đường hầm không bao giờ có khoảnh khắc không có danh tính hợp lệ, và việc quay lui chỉ là xóa mục bạn vừa thêm.
Giữ tệp riêng tư đã thay thế cho đến khi đối tác mới được xác nhận, rồi cố ý tiêu hủy nó. Bản khởi đầu nhanh của WireGuard là tài liệu tham chiếu cho chính các lệnh, và nó đủ ngắn để đọc trọn trước khi bắt đầu.