OpenVPN у Windows: аўтазапуск тунеля і захаванне маршрутаў
Служба Windows можа ўзняць тунель да таго, як хто-небудзь увойдзе ў сістэму, а прасунуты маршрут трымае прэфікс сайта толькі пакуль злучэнне актыўнае.
Тут пераплятаюцца два патрабаванні: тунель павінен узняцца да таго, як хто-небудзь увойдзе ў сістэму, а трафік да другога сайта павінен ісці за ім. Гэта асобныя праблемы з асобнымі механізмамі. Запуск службы вырашае першую, а час жыцця маршруту — другую. Рашэнне адной пакідае другую там жа, дзе яна была.
Крок першы: пакладзіце профіль туды, дзе яго шукае служба
Служба Windows чытае профілі з фіксаванага каталога, і графічны інтэрфейс чытае адтуль жа, таму профіль, які працуе пры імпарце, можа заставацца нябачным пры загрузцы. Пакладзіце файлы .ovpn у каталог config усталёўкі, які звычайна знаходзіцца ў Program Files. Профіль, пакінуты ў каталозе Downloads карыстальніка, зусім не ўваходзіць у поле зроку службы.
Старыя рэкамендацыі паказваюць на каталог config-auto, які паважалі некаторыя зборкі эпохі 2.5, а пазнейшыя выпускі — не. Менавіта таму абнаўленне можа ператварыць працоўны аўтазапуск у цішыню, без нічога ў журнале пра ўліковыя даныя. Перад пераносам любых файлаў пацвердзіце, які каталог на самай справе чытае ўсталяваная зборка.
Калі на адной машыне некалькі профіляў, дайце кожнаму названы адаптар праз dev-node. Інакш яны змагаюцца за адзін інтэрфейс, і другі церпіць няўдачу так, што гэта выглядае як праблема з уліковымі данымі.
Крок другі: запусціце службу, а не значок у трэі
Перавод службы OpenVPN у рэжым Automatic прымушае яе запускацца пры загрузцы без уваходу. Гэта і ёсць механізм, а значок у трэі не ўваходзіць у яго. Калі злучэннем валодае служба, графічны інтэрфейс можа не паказваць ні значка, ні статусу, і гэта чакана, а не памылка.
Вынік такі: адключэнне азначае прыпынак службы, а не націск на Disconnect. Паведаміце таму, хто падтрымлівае машыну, інакш першы званок у падтрымку будзе пра адсутны значок.
Праверце, што ўліковы запіс службы можа чытаць профіль і ключавы матэрыял. Праблема з правамі пры загрузцы выглядае ў журнале сапраўды як збой аўтэнтыфікацыі.
Крок трэці: прывяжыце маршрут да тунеля
Пастаянны запіс тут — няправільны інструмент. Даданне маршруту з -P дазваляе яму перажыць перазагрузкі і, што горш, перажыць закрыццё тунеля. Калі VPN выключаны, прэфікс па-ранейшаму паказвае на шлюз, якога няма, таму хост не можа дасягнуць гэтага пункта прызначэння, пакуль хто-небудзь не выдаліць запіс.
Тры альтэрнатывы паводзяць сябе правільна. Праштурхніце маршрут з сервера: ён дадае яго пры злучэнні і выдаляе пры адключэнні. Дадайце яго ў скрыпт route-up, які чытае route_vpn_gateway, каб наступны крок браўся з узгодненага тунеля. Або выкарыстайце Add-VpnConnectionRoute з родным профілем VPN Windows, які прывязвае прэфікс да гэтага злучэння.
Калі сервер прапануе больш, чым патрэбна гэтаму сайту, route-nopull адхіляе прасунутыя маршруты і пакідае табліцу цалкам лакальнай. Гэта падыходзіць агульнаму профілю, карыстальнікі якога не павінны атрымліваць карпаратыўны маршрут па змаўчанні.
Крок чацвёрты: перажыць халодную загрузку
Запуск службы да з'яўлення сеткавага стэка дае адну няўдалую спробу і без паўтору. Пераключэнне на Automatic (Delayed Start) або даданне залежнасці ад сеткавай службы прыбірае гэтую гонку. Затым паўтарыце тэст загрузкі і праверце, што другая спроба больш не патрэбная.
Змены маршрутаў і адаптараў патрабуюць правоў адміністратара. Ярлык аўтазапуску для асобнага карыстальніка іх не мае, таму скрыпт, які працуе з падвышанай абалонкі, можа пры ўваходзе моўчкі нічога не зрабіць. Заплануйце яго як заданне з найвышэйшымі прывілеямі або дазвольце службе ўласнаручна ўнесці змену. Затым праверце яго ад імя карыстальніка, які сапраўды ўвойдзе.
Тэстуйце паслядоўнасць, якую вы сапраўды разгортваеце, а не тую, якую можна запусціць уручную. Халодная загрузка — адзіны тэст, які правярае парадак.
Крок пяты: праверце без графічнага інтэрфейсу
Пасля перазагрузкі і ўваходу праверце тры рэчы, не адкрываючы графічны інтэрфейс. Адаптар павінен мець адрас,табліца маршрутаў павінна паказваць прэфікс сайта з шлюзам тунеля як наступным крокам, а ping на адрас на далёкім баку павінен адказаць. Кожная праверка адпавядае іншаму механізму з крокаў вышэй.
Калі адаптар ніколі не з'яўляецца, падазроны — драйвер, а не профіль. Гэтыя два збоі ў журнале выглядаюць зусім па-рознаму, і толькі адзін з іх рэагуе на пераўсталёўку праграмнага забеспячэння.