SSTP срещу OpenVPN: един и същ порт 443, различен протокол
SSTP обвива PPP в HTTPS и се доставя с Windows. OpenVPN носи свой клиент и може да използва UDP. Номерът на порта не е протоколът.
И двата варианта могат да стоят зад TCP 443, затова хората приемат, че са взаимозаменяеми крайни точки. Не е така: SSTP сървър говори PPP вътре в HTTPS, докато сървър OpenVPN говори собствения си протокол върху TLS или през суров UDP поток. Насочването на един клиент към порта на другия дава връзка, която никога не стига до екран за вход. Изборът е за кой клиент и транспорт можете да поддържате, а не за номера.
Споделеният порт не прави споделен протокол
TLS ръкостискането може да завърши и пак да не води доникъде, защото клиентът и сървърът след това не са съгласни какво да кажат по-нататък. В снемане на пакети виждате чисто ръкостискане, последвано от данни на приложение, които отсрещната страна отхвърля или пренебрегва. Този модел е подписът на несъответствие на протоколи, а не на блокировка от защитна стена.
Нито преименуван профил, нито друг елемент от менюто превръща едното в другото. SSTP връзка се създава от настройките за VPN в Windows с адрес на сървър и данните за удостоверяване на оператора, докато OpenVPN връзката се нуждае от клиента и съответния конфигурационен файл. Спецификацията на SSTP от Microsoft описва първото и не описва OpenVPN ръкостискане.
Порт 443 е удобство на политиката. Той минава през мрежи, които допускат малко друго, и това е реално предимство, но не ви казва нищо за това кой протокол работи зад него.
SSTP тунелира PPP вътре в HTTPS
Името описва конструкцията: PPP кадри, пренасяни в HTTPS сесия, което означава TLS отдолу и сертификат, който клиентът може да провери. Windows го включва като вграден тип VPN, така че управляван лаптоп често може да се свърже без допълнителен софтуер освен профила, който операторът предоставя.
Другите платформи са друга история. Клиент за Linux или macOS се нуждае от поддържана реализация, а те се различават по това какво поддържат и как съобщават грешки. Проверете клиента, който наистина смятате да използвате, вместо да приемате, че вградената възможност на Windows се пренася, и потвърдете, че името на сървъра в профила съвпада със сертификата, който сървърът представя.
SSTP обикновено е само TCP. Този единствен транспорт влияе на поведението му при връзка със загуби, защото повторното предаване се случва както вътре в тунела, така и под него.
OpenVPN носи свой клиент и избор на транспорт
OpenVPN доставя свой клиент и профил, което ви дава диагностика, каквато вграденият диалог на Windows не показва. Сървърът може да слуша на UDP или TCP и конфигурацията на оператора решава кой от тях трябва да използва вашият клиент. Профил, насочен към грешния транспорт, се проваля преди удостоверяването.
Удостоверяването е еднакво зависимо от конфигурацията. Разгръщане може да изисква само сертификати, сертификати плюс потребителско име и парола или втори фактор отгоре, и клиентът трябва да съвпада точно с тази подредба. Фактът, че връзката стига до етапа TLS, не ви казва какви данни за вход ще поиска след това.
UDP е обичайното подразбиране, защото избягва вграждането на надежден поток в друг надежден поток. Режим TCP съществува за мрежи, които блокират UDP, и работи, но силните загуби могат да го направят по-неприятен от UDP пътя, който е заменил. Избирайте TCP, когато трябва, а не защото звучи по-надеждно.
Избирайте по клиент, транспорт и поддръжка
Три въпроса решават повечето от тези решения. Нуждае ли се всяко клиентско устройство от връзка, която работи без допълнителен софтуер? Разрешава ли мрежата, на която разчитате, UDP, или TCP 443 е единственият изход? И кой поддържа клиента, неговите актуализации и възстановяването му, когато профилът изтече?
Когато сравнявате двете, тествайте на същото устройство и същата мрежа за достъп. Ако крайната точка на SSTP и крайната точка на OpenVPN са различни сървъри или различни обекти, резултатът ви включва тези маршрути и машини, вместо да изолира протокола. Това е най-честият начин такива сравнения да дадат уверен, но грешен отговор.
След това потвърдете кое всъщност сте установили, преди да отстранявате каквото и да е друго:
> Get-VpnConnection -Name "Office SSTP" | Select-Object TunnelType, ServerAddress
> openvpn --config office.ovpn --verb 4
Както и да е, завършете с тестване на ресурса и DNS, от които се нуждаете, вместо да обявявате успех при състоянието на тунела. И двата протокола могат да бъдат конфигурирани да пренасят само избран частен трафик, а свързан тунел без работещо разрешаване на имена изглежда като счупен VPN, когато всъщност е разделен тунел или DNS схема.
В управляван парк разпространението на профили и поддръжката на актуализации обикновено решават въпроса много преди което и да е транспортно измерване.