Một dịch vụ VPN có đủ phủ máy tính để bàn Windows, Mac và Linux?
Một kế hoạch truy cập có thể phục vụ máy tính để bàn Windows, Mac và Linux, nhưng chỉ sau khi chốt danh tính cổng, thông tin đăng nhập, tuyến đường và chính sách trình phân giải.
Ba máy tính xách tay trong cùng một nhóm, ba menu VPN khác nhau và một phiếu yêu cầu nói rằng kết nối chạy ở mọi nơi trừ máy Mac. Kế hoạch đằng sau các ứng dụng khách đó có thể giống hệt nhau dù menu không giống. Những gì phải khớp thì hẹp hơn phần lớn các đợt triển khai vẫn giả định: một danh tính cổng, một loại thông tin đăng nhập, một bộ tuyến đường và một chính sách trình phân giải. Hãy ghi bốn điểm đó ra trước khi ai đó xuất một hồ sơ, và công việc nền tảng trở thành một danh sách kiểm tra thay vì một cuộc điều tra.
Bắt đầu từ hợp đồng truy cập, không phải tệp ứng dụng khách
Hợp đồng truy cập là năm dòng mà người đánh giá có thể kiểm tra mà không cần mở bảng điều khiển của nhà cung cấp. Nó nêu tên các tiền tố riêng phải tiếp cận được, các tên nội bộ phải phân giải được, trình phân giải trả lời chúng, lưu lượng được phép ở lại đường cục bộ và chứng chỉ cổng mà ứng dụng khách nên mong đợi thấy. Mọi thứ còn lại trong đợt triển khai chỉ là việc dịch những dòng đó sang một định dạng tệp.
Một ví dụ văn phòng làm hình dạng trở nên cụ thể: máy chủ ứng dụng trong 10.60.0.0/16, tên riêng dưới corp.example, một trình phân giải nội bộ tại 10.61.0.53 và việc duyệt web thông thường vẫn nằm trên đường mà thiết bị đã dùng. Mục cuối cùng là một quyết định chính sách chứ không phải mặc định của ứng dụng khách, và một số ứng dụng khách sẽ đẩy mọi thứ qua đường hầm nếu không ai nói khác. Hãy ghi lại hợp đồng kèm ngày và người phụ trách, vì chính bản ghi đó về sau cho bạn biết đường hầm đã đổi hay chính sách đã đổi.
Chọn một giao thức và một cặp xác thực mà bạn có thể bảo vệ
IKEv2 với xác thực cổng dựa trên chứng chỉ và EAP cho người dùng là lựa chọn thông thường khi cả ba nền tảng phải chạy mà không cần phần mềm bổ sung, vì Windows, macOS và NetworkManager đều cung cấp sẵn một ứng dụng khách IKEv2. Vấn đề là hỗ trợ IKEv2 chỉ mô tả một nhãn, không phải một bộ tính năng. Các phương thức EAP, khoá được phần cứng bảo vệ, ánh xạ chứng chỉ sang tài khoản và tự động kết nối lại đều được triển khai theo từng nền tảng. Một tổ hợp chạy được trên hai trong ba nền tảng đủ phổ biến để bạn phải giả định như vậy cho tới khi kiểm thử.
Hãy kiểm thử cặp đó trên mọi nền tảng mục tiêu trước khi viết hướng dẫn triển khai, không phải sau. Một cổng cung cấp cả EAP-MSCHAPv2 lẫn EAP-TLS cho bạn chỗ để có đường dự phòng, miễn là đường dự phòng đó được ghi nhận là được hỗ trợ chứ không phải phát hiện ra trong lúc có sự cố. Hai đường được hỗ trợ là một khoản bảo hiểm rẻ; đường thứ ba không có tài liệu là một phiếu yêu cầu trong tương lai.
Khi không có cặp nào bao phủ cả ba ứng dụng khách, các lựa chọn trung thực là thêm một ứng dụng khách, thêm một hồ sơ trên cổng, hoặc thu hẹp danh sách nền tảng được hỗ trợ. Tắt kiểm tra chứng chỉ trên nền tảng kêu ca to nhất không nằm trong số đó. Thay đổi ấy biến một khoảng trống tương thích thành rủi ro bị chặn bắt, và không bước nào về sau trong đợt triển khai sửa được nó.
Dựng một sản phẩm cho mỗi nền tảng từ hợp đồng
Windows dùng hồ sơ VPNv2, được phân phối qua MDM hoặc tạo cục bộ bằng Add-VpnConnection cùng tải trọng XML của nó. Phần dễ sụp là phạm vi và sự tin cậy. Hồ sơ theo phạm vi thiết bị và hồ sơ theo phạm vi người dùng được cài vào các kho khác nhau, nên chứng chỉ mà ứng dụng khách cần phải nằm trong kho khớp với phạm vi bạn đã chọn. Ghép sai chỗ này tạo ra một hồ sơ nhập vào trơn tru rồi hỏng ngay lần kết nối đầu.
macOS dùng hồ sơ cấu hình với tải trọng VPN được quản lý, được ký và phát qua MDM hoặc cài thủ công cho một đợt thí điểm. Danh tính và chuỗi CA đi dưới dạng các tải trọng riêng, đó là lý do một hồ sơ có thể cài đặt không chút phàn nàn rồi vẫn hỏng lúc kết nối. Hãy kiểm tra danh sách tải trọng, không chỉ kết quả cài đặt.
Linux phụ thuộc vào phần phụ trợ phía sau NetworkManager, và strongSwan cùng plugin NetworkManager là hai gói riêng. Các thuộc tính kết nối mang tính riêng của plugin chứ không phải khoá VPN chung, nên một khoá chép từ plugin khác thường lưu được không lỗi rồi hỏng khi kích hoạt. Hãy dựng kết nối trên một ảnh sạch để xác nhận plugin có mặt đúng nơi nó sẽ thực sự chạy.
Ba sản phẩm khác nhau về định dạng, nhưng mỗi cái đều mã hoá cùng năm dòng hợp đồng. Đó là phép thử xem một sản phẩm đã xong chưa: mọi dòng đều được thể hiện ở đâu đó và không có gì thừa bị bịa ra dọc đường.
| Platform | Artifact | Check before handoff |
|---|---|---|
| Windows | VPNv2 profile or Add-VpnConnection | Scope matches certificate store |
| macOS | Managed VPN payload plus certificate payload | Both payloads present in one profile |
| Linux | NetworkManager connection with strongSwan backend | Plugin package installed on the image |
Kiểm tra tuyến đường, trình phân giải và kết nối lại trên một tài khoản sạch
Đã kết nối không phải là bài kiểm tra nghiệm thu. Trên Windows, Get-VpnConnection hiển thị hồ sơ và route print cho biết tiền tố riêng đã vào giao diện đường hầm chưa. Trên macOS, scutil --nc list xác nhận dịch vụ đang hoạt động trong khi scutil --dns hiển thị thứ tự trình phân giải mà hệ thống thực sự sẽ dùng.
Trên Linux, nmcli connection show --active chứng minh kết nối đang hoạt động và resolvectl status hiển thị DNS theo từng liên kết. Một trình phân giải có trong tệp kết nối nhưng thiếu trong đầu ra theo liên kết nghĩa là DNS chia tách chưa được áp dụng. Đó là khác biệt giữa tên phân giải được và tên phân giải qua đường hầm, và nó đổi việc nhóm hỗ trợ nào nhận bước tiếp theo. Hãy so sánh đầu ra theo liên kết trước và sau khi kết nối lên, không chỉ sau.
Chạy toàn bộ phần kiểm tra bằng một tài khoản mới, không có thông tin đăng nhập trong bộ nhớ đệm và không có chứng chỉ do quản trị viên cài. Sau đó lặp lại sau khi tạm dừng và khôi phục, và một lần nữa sau khi buộc nhập lại thông tin đăng nhập. Hai chuyển trạng thái đó làm lộ ra phần lớn lỗi kết nối lại mà lần kết nối đầu không bao giờ cho thấy.
Đánh phiên bản cho gói và giữ một đường quay lại
Gắn thẻ cho mỗi gói nền tảng bằng bản sửa đổi hợp đồng mà nó triển khai, và ghi lại phiên bản ứng dụng khách cùng cổng mà bạn đã nghiệm thu nó. Khi hành vi thay đổi sau một lần cập nhật ứng dụng khách, thẻ đó chỉ vào một hợp đồng cần kiểm thử lại chứ không phải một tệp cần đoán.
Giữ gói trước của mỗi nền tảng sao cho lấy ra được, và viết lệnh gỡ bỏ ngay bên cạnh. Gỡ một hồ sơ VPN không phải là hình ảnh phản chiếu của việc cài nó trên Windows, macOS hay Linux, và những khác biệt ấy lộ ra đúng vào lúc tệ nhất. Hãy tập gỡ một lần trên một thiết bị dự phòng để kho lưu trữ trở thành kế hoạch chứ không phải hy vọng.