SSTP so với OpenVPN: cùng cổng 443, khác giao thức
SSTP bọc PPP trong HTTPS và đi kèm Windows. OpenVPN mang theo máy khách riêng và có thể dùng UDP. Số hiệu cổng không phải là giao thức.
Cả hai lựa chọn đều có thể nằm sau TCP 443, nên mọi người cho rằng chúng là các điểm cuối có thể hoán đổi cho nhau. Không phải vậy: SSTP máy chủ nói PPP bên trong HTTPS, trong khi máy chủ OpenVPN nói giao thức riêng của nó trên TLS hoặc qua một luồng UDP thô. Trỏ một máy khách vào cổng của bên kia tạo ra kết nối không bao giờ tới được lời nhắc đăng nhập. Lựa chọn xoay quanh máy khách và phương thức truyền tải nào bạn có thể hỗ trợ, không phải con số.
Cổng chung không tạo ra giao thức chung
Bắt tay TLS có thể hoàn tất mà vẫn không đi đến đâu, vì sau đó máy khách và máy chủ không thống nhất được sẽ nói gì tiếp theo. Trong bản ghi gói tin bạn thấy một cuộc bắt tay sạch sẽ, tiếp theo là dữ liệu ứng dụng mà bên kia từ chối hoặc bỏ qua. Mẫu đó là dấu hiệu của sự không khớp giao thức, không phải của việc tường lửa chặn.
Cả hồ sơ được đổi tên lẫn một mục menu khác đều không biến cái này thành cái kia. Kết nối SSTP được tạo từ cài đặt VPN của Windows với địa chỉ máy chủ và thông tin xác thực của nhà vận hành, trong khi kết nối OpenVPN cần máy khách và tệp cấu hình tương ứng. Đặc tả SSTP của Microsoft mô tả trường hợp thứ nhất và không mô tả cuộc bắt tay OpenVPN.
Cổng 443 là một tiện lợi về chính sách. Nó đi qua được những mạng chỉ cho phép rất ít thứ khác, và đó là một lợi thế thật, nhưng nó không nói gì về giao thức nào đang chạy phía sau.
SSTP tạo đường hầm PPP bên trong HTTPS
Cái tên mô tả cấu trúc: các khung PPP được mang bên trong một phiên HTTPS, nghĩa là TLS ở bên dưới và một chứng chỉ mà máy khách có thể kiểm tra. Windows bao gồm nó như một loại VPN gốc, nên một máy tính xách tay được quản lý thường có thể kết nối mà không cần phần mềm thêm ngoài hồ sơ do nhà vận hành cung cấp.
Các nền tảng khác là câu chuyện khác. Máy khách Linux hoặc macOS cần một bản triển khai được duy trì, và chúng khác nhau về những gì hỗ trợ và cách báo lỗi. Hãy kiểm tra máy khách bạn thực sự định dùng thay vì giả định khả năng tích hợp của Windows sẽ chuyển sang, và xác nhận rằng tên máy chủ trong hồ sơ khớp với chứng chỉ mà máy chủ trình bày.
SSTP thường chỉ dùng TCP. Phương thức truyền tải duy nhất đó ảnh hưởng đến cách nó hoạt động trên một liên kết có mất gói, vì việc truyền lại diễn ra cả bên trong đường hầm lẫn bên dưới nó.
OpenVPN mang theo máy khách riêng và một lựa chọn truyền tải
OpenVPN cung cấp máy khách và hồ sơ riêng, điều này cho bạn chẩn đoán mà hộp thoại gốc của Windows không hiển thị. Máy chủ có thể lắng nghe trên UDP hoặc TCP, và cấu hình của nhà vận hành quyết định máy khách của bạn phải dùng cái nào. Một hồ sơ trỏ sai phương thức truyền tải sẽ thất bại trước khi xác thực.
Xác thực cũng phụ thuộc vào cấu hình như vậy. Một triển khai có thể yêu cầu chỉ chứng chỉ, chứng chỉ cùng tên người dùng và mật khẩu, hoặc thêm yếu tố thứ hai ở trên, và máy khách phải khớp chính xác với cách sắp xếp đó. Việc kết nối tới được giai đoạn TLS không cho biết nó sẽ yêu cầu thông tin đăng nhập nào tiếp theo.
UDP là mặc định thông thường vì nó tránh lồng một luồng tin cậy vào trong một luồng tin cậy khác. Chế độ TCP tồn tại cho những mạng chặn UDP, và nó hoạt động, nhưng mất mát nặng có thể khiến nó cảm giác tệ hơn đường UDP mà nó thay thế. Hãy chọn TCP khi buộc phải, không phải vì nó nghe có vẻ tin cậy hơn.
Chọn theo máy khách, truyền tải và hỗ trợ
Ba câu hỏi giải quyết phần lớn các quyết định này. Mỗi thiết bị khách có cần một kết nối hoạt động mà không cần phần mềm thêm không? Mạng bạn phụ thuộc có cho phép UDP, hay TCP 443 là lối ra duy nhất? Và ai hỗ trợ máy khách, các bản cập nhật và việc khôi phục của nó khi hồ sơ hết hạn?
Khi so sánh hai cái, hãy thử trên cùng thiết bị và cùng mạng truy cập. Nếu điểm cuối SSTP và điểm cuối OpenVPN là các máy chủ khác nhau hoặc các địa điểm khác nhau, kết quả của bạn bao gồm cả những tuyến và máy đó thay vì cô lập giao thức. Đây là cách phổ biến nhất khiến những so sánh như vậy cho ra câu trả lời tự tin nhưng sai.
Sau đó xác nhận bạn thực sự đã thiết lập cái nào trước khi gỡ lỗi bất cứ điều gì khác:
> Get-VpnConnection -Name "Office SSTP" | Select-Object TunnelType, ServerAddress
> openvpn --config office.ovpn --verb 4
Dù thế nào, hãy kết thúc bằng việc kiểm tra tài nguyên và DNS mà bạn cần thay vì tuyên bố thành công ở trạng thái đường hầm. Cả hai giao thức đều có thể được cấu hình để chỉ mang lưu lượng riêng đã chọn, và một đường hầm đã kết nối mà không có phân giải tên hoạt động trông giống như VPN hỏng khi thực tế đó là thiết kế đường hầm chia tách hoặc DNS.
Trong một đội máy được quản lý, việc phân phối hồ sơ và hỗ trợ cập nhật thường quyết định câu hỏi từ rất lâu trước bất kỳ phép đo truyền tải nào.