Рухавік OpenVPN ці Tunnelblick: каму належыць сеанс VPN на Mac?
Тэрмінал — не раздзяляльная лінія. Вызначце, каму належыць сеанс: рухавіку, які вы запускаеце, ці мэнэджару, які займаецца DNS, уліковымі данымі і ачысткай.
Homebrew усталёўвае праграму OpenVPN; Tunnelblick усталёўвае мэнэджар, які запускае адзін або некалькі рухавікоў. Гэта розныя ўзроўні, і карыснае пытанне не ў тым, ці падабаецца вам карыстацца тэрміналам. Яно ў тым, каму належыць канфігурацыя, змены DNS, запыт уліковых даных і ачыстка пасля сканчэння сеанса. Адзіны ўладальнік гэтых узроўняў — гэта тое, што робіць наладу прадказальнай.
Прайдзіце пяць праверак ніжэй па парадку. Першая, у якой два ўладальнікі, — тая, што стварае дзіўныя паўпадключаныя станы, якія людзі спісваюць на сам OpenVPN. Кожная праверка называе доказ, які яе вырашае.
Праверка першая: які менавіта бінарны файл OpenVPN працуе
Выканайце pgrep -fl openvpn падчас злучэння і прачытайце поўны радок загаду. Першы шлях — гэта рухавік, які сапраўды працуе. На Apple Silicon усталёўка Homebrew звычайна знаходзіцца ў /opt/homebrew, тады як Intel Mac выкарыстоўваюць /usr/local, а Tunnelblick запускае рухавік знутры ўласнага пакета праграмы.
Tunnelblick змяшчае рухавікі і дазваляе канфігурацыі выбраць адзін з іх. Абнаўленне формулы Homebrew змяняе асобны бінарны файл, а не рухавік, які запускае профіль Tunnelblick. Калі вы параўноўваеце версіі, каб растлумачыць адрозненне ў паводзінах, параўноўвайце рухавік у спісе працэсаў, а не той, што ў мэнэджеры пакетаў. Адна толькі радок версіі не скажа вам, які профіль загрузіў гэты рухавік.
Скапіяваны профіль таксама можа зрабіць два рухавікі аднолькавымі на выгляд, хоць яны чытаюць розныя файлы. Шлях профілю ў радку загаду паказвае, якую канфігурацыю загрузіў працэс, які працуе; профіль, адкрыты ў рэдактары, не з’яўляецца доказам. Параўнайце гэты шлях перад параўнаннем паводзін.
Праверка другая: хто змяняе DNS і маршруты
Рухавік можа выконваць уласныя дырэктывы up і down OpenVPN, але мэнэджар можа валодаць тым жа жыццёвым цыклам. Налады сервера імёнаў Tunnelblick кіруюць яго стандартнымі скрыптамі злучэння і адключэння, і калі гэтая інтэграцыя ўключана, канкуруючыя дырэктывы ў профілі могуць ігнаравацца.
Гэта важна, бо DNS — месца, дзе працоўны тунель часцей за ўсё выглядае зламаным. Праверце scutil --dns падчас злучэння, заўважце, які рэзалвер першы, і пераканайцеся, што ён вяртаецца пасля адключэння. Калі профіль разлічвае ўсталяваць DNS сам, а мэнэджар таксама кіруе ім, адзін з двух прайграе.
Вызначце, які ўзровень валодае DNS, да першага злучэння, затым выдаліце тую дырэктыву, што прайграе, замест таго каб пакінуць абедзве. Змены маршрутаў падпарадкоўваюцца таму ж правілу: адзін уладальнік, бачны ў канфігурацыі, з дакументаваным шляхам аднаўлення.
Праверка трэцяя: адкуль бяруцца ўліковыя даныя
Інтэрактыўны запыт і працэс без нагляду маюць розныя патрабаванні. Уліковыя даныя, захаваныя адной праграмай, не даступныя аўтаматычна іншаму працэсу, а элемент звязкі ключоў, прывязаны да мэнэджара, можа быць нябачным для асобнага рухавіка, запушчанага з абалонкі.
Пералічыце крыніцу ўліковых даных для профілю: кліенцкі сертыфікат і ключ, запыт імені карыстальніка і пароля або токен, які падае знешні памочнік. Затым пераканайцеся, што выбраны ўладальнік можа дасягнуць гэтай крыніцы без чалавека, калі злучэнне павінна перажыць перазапуск.
Праверка чацвёртая: хто запускае, кантралюе і спыняе працэс
Асобнае разгортванне патрабуе наглядальніка, калі яно павінна працаваць пастаянна. Launchd можа запускаць рухавік пры ўваходзе або па запыце, перазапускаць яго пасля збою і акуратна спыняць, але хтосьці павінен напісаць гэтую задачу і валодаць ёй. Запуск загаду ў тэрмінале падыходзіць для тэсту і не падыходзіць для карыстальніка, які закрывае акно.
Калі Tunnelblick застаецца ўладальнікам, выкарыстоўвайце яго падтрыманыя сродкі кіравання замест запуску другога рухавіка. Бінарны файл Homebrew, атрымаўшы скапіяваны профіль, адкрывае незалежнае злучэнне з уласнай канфігурацыяй і кантэкстам інтэграцыі, а не кіруе існуючым сеансам Tunnelblick.
Якога б уладальніка вы ні выбралі, вызначце, што адбываецца пры сне, змене сеткі і выхадзе. Мэнэджар звычайна апрацоўвае гэтыя падзеі; голы працэс звычайна не, і ў выніку састарэлы маршрут або рэзалвер лёгка палічыць збоем сервера.
Праверка пятая: як правяраецца перадача
Праверце новага ўладальніка з адключаным старым, затым праверце старога зноў, калі плануеце яго пакінуць. Прыватны рэсурс, які адказвае ў адным працэсе і не адказвае ў другім, — гэта доказ пра адсутную інтэграцыю, а не пра сервер.
Для перадачы асобнаму рухавіку запішыце шлях профілю, шлях бінарнага файла, наглядальніка, уладальніка DNS і крыніцу ўліковых даных. Затым праверце прыватны рэсурс, шлях у публічны інтэрнэт і чыстае адключэнне ў гэтым парадку. Калі DNS або маршруты застаюцца пасля адключэння, новы ўладальнік не завершаны.
Для перадачы Tunnelblick выберыце рухавік для канфігурацыі, уключыце інтэграцыю DNS, якую маеце на ўвазе, і выдаліце дырэктывы профілю, што ёй супярэчаць. Затым паўтарыце тыя ж тры праверкі. Злучэнне, якое працуе, але пакідае рэзалвер змененым, — гэта няўдалая перадача, нават калі тунель падняўся.
Пакаванне не вырашае сумяшчальнасць з серверам. Праверце ўласныя патрабаванні службы да кліента і выбірайце адзін рухавік толькі тады, калі маеце намер забяспечыць яго кіраванне.