Mỗi peer OpenVPN có cần một dòng remote không? Không hẳn
remote cho biết gói đầu tiên đi đâu; nó không chọn vai trò máy khách, máy chủ hay TLS. Hãy đọc cách bố trí trước khi sao chép sang cả hai bên.
Hai cấu hình peer được so sánh cạnh nhau, một cái có dòng remote và cái kia không, và kết luận là một trong hai bị hỏng. Suy luận đó sai đủ thường xuyên để đáng mổ xẻ. Chỉ thị mô tả gói đầu tiên nên được gửi đi đâu. Nó không chọn việc tiến trình hoạt động như một máy khách khởi tạo hay một cổng chờ, và nó không quyết định bên nào chứng minh danh tính của mình với bên kia.
remote thực sự chỉ định điều gì
Một mục remote nêu tên một máy chủ, tùy chọn một cổng và một giao thức vận chuyển, và tùy chọn nhiều mục như vậy để thử theo thứ tự.
Việc nó vắng mặt có ý nghĩa xác định chứ không phải không xác định: tiến trình chờ và không xử lý gói từ một địa chỉ trừ khi peer đó xác thực. Vì vậy một cổng phục vụ người dùng di động không có lý do gì để nêu tên bất kỳ ai trong số họ trước.
Hãy đọc mục này như một quan hệ địa chỉ. Việc đầu xa có đáng tin hay không do chứng chỉ và các tùy chọn xác minh trả lời, không phải việc một địa chỉ đã được ghi ra.
Ba cách bố trí quyết định câu trả lời
Máy khách di động cần một đích đến, vì nó phải khởi tạo và không biết cổng ở đâu nếu không có đích. Cổng nhiều máy khách không cần đích đến cho từng người dùng, vì máy khách đến và xác thực. Một liên kết hai peer có chủ đích với các đầu mút đã biết có thể có đích ở một bên, cả hai bên hoặc không bên nào, tùy theo bên nào khởi tạo.
Dán một địa chỉ máy khách cố định vào một cổng chung là lỗi xuất phát từ việc bỏ qua các loại đó. Nó hiệu quả với peer duy nhất có địa chỉ được ghi lại và đánh lừa mọi người khác.
Không có gì trong chỉ thị biến một cấu hình thành máy chủ nhiều máy khách, và không có gì trong sự hiện diện của nó ngăn cản vai trò máy chủ. Tài liệu tham chiếu OpenVPN 2.6 ghi riêng các đối số tùy chọn và hành vi khi không có remote, đó là một gợi ý về mức độ độc lập của chúng.
| Arrangement | Needs a destination |
|---|---|
| Roaming client | Yes, which gateway to contact |
| Multi-client gateway | No, peers authenticate on arrival |
| Two known peers | Depends on which side initiates |
Vai trò vận chuyển là một trục khác
Với TCP, một bên chờ và bên kia quay số. Đó là các chỉ thị tách biệt khỏi đích đến, và trộn chúng tạo ra một cặp mà cả hai cùng chờ hoặc cả hai cùng quay số.
Cũng có vai trò bộ lọc nguồn TCP, đó là lý do câu nói phẳng rằng máy chủ không bao giờ được chứa remote là sai.
Với UDP không có kết nối để thiết lập, nên cả hai đầu dùng giao thức vận chuyển UDP tương ứng và chỉ thị chỉ nói nên nhắm vào đâu. Các thay đổi địa chỉ của một peer đã xác thực được xử lý bằng hành vi chuyên dụng chứ không phải bằng cách thêm mục. Việc đúng giao thức vận chuyển là điều kiện tiên quyết để đích đến có ý nghĩa, và trộn hai thứ này tạo ra những cấu hình trông hợp lý mà không bao giờ hoàn tất bắt tay.
Vì sao thiếu remote không phải cửa mở
Một tiến trình không có đích vẫn từ chối lưu lượng từ các peer không xác thực, và đó là phần người ta bỏ sót khi đọc dòng vắng mặt như một trình lắng nghe mở cho bất kỳ ai.
Xác thực và đích đến độc lập với nhau, và cái đầu tiên mới là cái quan trọng cho niềm tin.
Lỗi ngược lại nguy hiểm hơn. Một địa chỉ nguồn cố định có thể tạo cảm giác như kiểm soát truy cập vì nó cụ thể và dễ kiểm tra, nhưng nó không chứng minh gì về việc ai ở đầu kia. Hãy giữ việc xác minh chứng chỉ, và giữ các kiểm tra danh tính ràng buộc chứng chỉ với vai trò của nó. Thay chúng bằng khớp địa chỉ là đổi một kiểm soát thật lấy vẻ ngoài của nó.
Ghi ra những gì cấu hình giả định
Với mỗi bên, ghi lại ba điều: gói đầu tiên đến peer bằng cách nào, bên nào có thể chấp nhận giao thức vận chuyển, và mỗi bên xác minh điều gì về bên kia.
Những giả định đó là thiết kế. Các chỉ thị chỉ là cách viết của chúng.
Nếu hai tệp khác nhau, hãy kiểm tra xem chúng có diễn đạt các giả định khác nhau không thay vì cho rằng một trong hai sai. Một cặp tệp đối xứng không cần thiết cũng không đủ cho một đường hầm hoạt động, và sự bất đối xứng thường là phần khiến một tô-pô hoạt động.