Как стать автором
Обновить

VPN-сервер на роутере. Автоподключение VPN в Windows с блокировкой доступа к интернету кроме VPN-соединения

Время на прочтение4 мин
Количество просмотров193K
Всего голосов 12: ↑10 и ↓2+8
Комментарии28

Комментарии 28

PPTP в 2021 году — серьезно? «Предоставление кому-либо в любой точке мира именно вашего IP» станет реальностью, но не так, как вы этого ожидаете.
Долгожданная рубрика «Windows для домохозяек». Во что превратился Хабр…
Господа, вы безжалостны и бессердечны. Я вот все хочу запилить статью как можно на одном Микротике (домашнем) поднять ППТП-сервер, а на втором (выездном) ППТП-клиент и тогда на Виндоус-машине не придется ничего менять (Профит!). Но чувствую меня на хабре за такую статью поднимут на смех :(((
За PPTP вообще нужно не то что на смех, а сразу бан.
Или это был сарказм? ^.^
Есть множество куда более адекватных способов маршрутизировать трафик двух сетей без подобной некрофилии, с минимальным оверхедом, и с полной автоматизацией, тем более на микротиках.
Нет, к сожалению, я действительно ретроград. ППТП мне кажется простым и надежным, и вроде как 128-битное шифрование присутствует.

А что бы вы порекомендовали вместо него? ППТП настраивается за минуты, а вот когда я последний раз настраивал ИПСек между микротиками (году в 2005) мне это показалось чересчур сложным и муторным делом.
ППТП мне кажется простым и надежным

Почитайте про узявимости пптп — многое прояснится про надёжность. Любой юный кулхацкер вскроет ключ шифрования MPPE за небольшое время, менее суток в самых сложных случаях.

Как минимум, l2tp+ipsec — ничего сложного в настройке нет.

А L2TP/IPSec будет работать когда только у сервера известен заранее айпи адрес? Мне помнится что можно было проложить туннель через ИПСек только между двумя фиксированными айпи адресами, т.е. «филиал к филиалу». Интересует сценарий «из любой гостиницы в филиал»

IKEv2/IPSec работает по DNS имени без особых проблем. Где будет клиентская точка — безразлично, хоть через обычный lte выходите. Настраивается без особых проблем по официальной вики микротика.

IKEv2/IPSeC умеет в виде ID использовать user fqdn — specifies a fully-qualified username string, for example, «user@domain.com». Даже DNS не нужен.

В вашем случае domain.com кто-то всё же должен держать. Чаще всего это просто удобнее, нежели делать туннель на фиксированный адрес — при смене адреса на сервере не придётся менять его на всех клиентах.

В моем случае domain.com это образец. user fqdn (в документациях циски его называют просто email) это же просто ID — в IKEv1 в роли него выступал ip, в IKEv2 появилось разнообразие. Т.е мы не знаем, с какого ip к нам придут, потому разрешаем any (0.0.0.0), но при этом знаем, что он должен представиться определенным образом, в данном случае в виде псевдо-email. Такая схема у меня связала strongswan с фиксированым адресом и mikrotik, который физически непонятно где, типа коворкинга.
Ок, а что вы скажете насчет ССТП? Вроде как очень похож на ППТП но с сертификатами.
Настройка нетривиальная, есть нюансы как в теории, так и на практике. А ещё высокий оверхед.
Стоит с этим извращаться, только если провайдер блокирует почти всё. Полагаю, вам лучше не лезть в это дело на данном уровне квалификации.
Пользуйтесь L2tp+ipsec, и всё будет более чем отлично. Если интересует, могу подсказать более-менее универсальный алгоритм настройки.
В случае Микротиков можете попробовать SSTP — настраивается тоже не ахти как сложно. Летом делал связь с дачной Йоты(ибо НА неё не попасть, IP серый) на домашнюю сеть.

Плюс на Win10 поддержка подключения к SSPT VPN «из коробки». Правда по умолчанию Win весь трафик пытается загнать в тонель. Чтобы этого не происходило надо поменять настройки подключения через PowerShell(после чего переподключиться):
Set-VpnConnection -Name "Home" -SplitTunneling $true 


Если за Микротиком есть другие сети, то можно так же на клиенте добавить маршруты для этих сетей через то же соединение(опять PS):
 Add-VpnConnectionRoute -ConnectionName "home" -DestinationPrefix 10.10.2.0/24 -PassThru 
 Add-VpnConnectionRoute -ConnectionName "home" -DestinationPrefix 10.10.3.0/24 -PassThru


Я с рабочего ноута таким образом цепляюсь на домашний микротик, и имею доступ к ноуту в дачной сети(конечно на микротиках нужно ещё прописать правила для пропускания трафика).

А вот под Linux, как я понял, с поддержкой SSTP слабо, что жаль.
-Name «Home»

Полагаю, если человек сможет настроить туннель SSTP по сертификату, убрать галочку с «использовать основной шлюз по умолчанию» труда не составит.

ибо НА неё не попасть, IP серый

Так создайте обратный туннель, где ваша дача через йоту по vpn цепляется к дому. И через этот туннель уже проворачивайте, что душе угодно.
Если ip адрес серый, чем вам поможет SSTP? От него только нагрузка на CPU, смысла ноль. Пользуйте IKEv2 (умеет и в NAT/CGNAT, и в динамические соединения, шустрее и безопаснее всех прочих, работает в ядре), если не получается — L2TP+IPSEC.
Полагаю, если человек сможет настроить туннель SSTP по сертификату, убрать галочку с «использовать основной шлюз по умолчанию» труда не составит.

В шатном интерфейсе десятки такой галки нет(у меня). В rasphone тоже таковой не наблюдаю. Может «галка» есть в конфиге подключения, но если уж посылать в дебри — пусть уж лучше это будет команда PS.

Так создайте обратный туннель

Так я его и создал, о чём и написано в моём сообщении.

Выбор SSTP никак с серостью IP не связан, скорее с моей «серостью» :). Я не линуксоид(по крайней мере не полноценный), и не сетевик. Мне оказалось проще осилить SSTP чем все эти IKEv2 и прочие IPSEC. Пытался конечно, но без соответствующего образования самому бывает дойти до решения не просто, а в Интернет в основном тиражируются как под копирку однотипные мануалы для сценариев которые мне не подходили.

Дополнительным плюсом поддержка в десятке(хотя в десятке почти все основные типы вроде есть), и то что канал завёрнут в https — в случае йоты это может быть небесполезно. Что до нагрузки на CPU — пока проблем не было. Когда тестировал на скорость был ограничен соткой со стороны провайдера, серьёзных нагрузок при этом не заметил(точнее в полку загрузка проца не упиралась).
У SSTP есть архитектурная проблема. Он работает через TCP, что для VPN'ов сильно не рекомендуется. Т.е. только как крайняя мера, когда всё остальное не работает (тут-то SSTP, косящий под https вполне вариант).
Проблема в том, что во-первых оверхед, а во-вторых весёлые проблемы при плохой связи. Т.е. на уровне IP потерять пакет — не проблема. Тут же его будут повторять, может получиться что внутренняя сеть посчитает пакет потерянным и повторит отправку, а снаружи будут его упорно доставлять. Т.е. хорошая эсклация трафика будет (а связь и так не фонтан).
А ведь кто-то это из песочницы вынул.
Как уже выше писали, pptp сейчас — это даже не моветон. Это ошибка и большая. Пункт 4 (про блок трафика) — спасибо. Но ведь не факт, что у клиента включен стандартный firewall. Так что тут ширше надо смотреть на вопрос.

Но PPTP…
очень много проблем с l2tp, если у клиента между компом и инетом стоит говнороутер от провайдера, который диким образом блочит l2tp.
Тогда надо менят роутер, запускать openvpn. PPTP нельзя же из-за этого использовать. есть примеры людей, которые говорили — да кому я нужен. Но стукнуло разок — и все сразу норм стало.
Если это написано для людей совершенно не владеющих даже базовыми знаниями о сетях, то я бы посоветовал добавить пункт о необходимости выделенного «белого» статического IP адреса. По умолчанию провайдер такое не предоставляет, только за отдельную денежку. А также стоит поинтересоваться у провайдера на предмет фильтрации TCP/1723 (раньше для физлиц многие фильтровали, как раз с целью недопущения подобного, как сейчас обстоит — не знаю).
А зачем статический? Динамического вполне хватит (Dynamic DNS никто не отменял).
В статье не хватает способа автоматически подключаться к VPN при обрыве, а не только при старте/входе.
Если ничего не менять, при такой настройке при обрыве Windows самостоятельно будет пытаться восстановить соединение.
Что-то я в этом сильно сомневаюсь…
Раздел второй, подпункт 6-й данной статьи. Окно свойств подключения, вкладка «Параметры», раздел «Параметры повторного звонка». Здесь можно установить параметры повторного подключения при разрыве соединения. По умолчанию 3 попытки через каждую минуту.
Не всегда оно(то что у вас на скриншоте) есть — у меня в этой вкладке только «запомнить учётные данные», настройка таймаута для отключения и параметры РРР(Win 10 Pro [Version 10.0.19042.746]). Да и прописывание ручками в конфиге соединения(который в AppData\Roaming\Microsoft\Network\Connections\Pbk\) у меня не сработало.

Настроил переподключение ноута через таск по событию в логах(id 629, 829, 10001 — правда первые два у меня не появляются, возможно они от старых версий Win). Но у меня соединение чисто для пользователя, так что после ребута приходится тимвьюером сначала входить чтобы залогиниться и поднять первый раз подключение(перезагрузка только под винапдейт, редко, так что меня положение вещей устраивает).

В результате работает довольно стабильно(судя по логу переподключений). А вот причину периодических обрывов так и не понял — закономерностей не выявил(может несколько дней без разрыва работать, может несколько раз за день переподключить).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации