VPN-сервер на Raspberry Pi: пачынайце з праграмы на тэлефоне, а не з рэцэпта
Праграма на тэлефоне вызначае пратакол, абмен і фармат профілю. Запішыце чатырохчастковае пагадненне, перш чым нешта ўсталёўваць на Pi.
Большасць зборак VPN на Raspberry Pi пачынаецца з рэцэпта для сервера і заканчваецца тэлефонам, які не можа падключыцца. Парадак перавернуты. Кліент на тэлефоне рэалізуе пэўны пратакол з пэўным абменам аўтэнтыфікацыі, і сервер павінен адпавядаць менавіта гэтаму абмену, а не наадварот. Калі спачатку выбраць праграму, цэлы паўдзень адладкі ператвараецца ў кароткі спіс праверкі.
Парадак, які пазбаўляе ад перазборкі
Запішыце аперацыйную сістэму тэлефона і дакладную праграму VPN, перш чым нешта ўсталёўваць на Pi. Гэтая пара вызначае, які пратакол наогул магчымы. Кліенцкая праграма не робіцца іншым кліентам толькі таму, што профіль выпадкова змяшчае знаёмае поле.
Агульны сакрэт у профілі або знаёмы нумар порта не ператварае адзін пратакол у іншы. Абмен альбо адпавядае таму, што рэалізуе праграма, альбо зрываецца на этапе, які дае вельмі мала для чытання. Няма дыягностыкі, якая проста скажа "няправільны пратакол". Вы атрымаеце тайм-аўт, памылку сертыфіката або ціхі цыкл паўтору, і ўсё гэта выглядае як праблема сервера.
Калі праграма зафіксавана, выбар сервера звужаецца, і ў астатняй зборкі з'яўляецца мэта.
Што насамрэч рэалізуе праграма на тэлефоне
Апублікаваны спіс кліентаў апісвае праграму, а не сэрвіс. Праграма OpenVPN Connect для Android чакае сервер OpenVPN; яна не дае сервернага боку. Яна таксама не робіцца кліентам IPsec ці L2TP, калі профіль выглядае падобна.
Гэтае адрозненне найбольш важнае, калі вы ідзяце па старой інструкцыі. Рэцэпты, напісаныя для пратаколу, які сучасная праграма больш не падтрымлівае, усё роўна ўсталююцца на Pi без памылак і ўсё роўна не спрацуюць на тэлефоне, і гэта чытаецца як памылка канфігурацыі, а не як неадпаведнасць пратаколу.
Праверце актуальную дакументацыю праграмы адносна фарматаў профілю, якія яна імпартуе, перш чым прывязвацца да пакета сервера. Пяць хвілін чытання лепш за перазборку.
Чатырохчастковае пагадненне
Запішыце чатыры рэчы і трымайце іх разам: аперацыйная сістэма тэлефона і выпуск праграмы, рэалізацыя сервера на Pi, палітыка аўтэнтыфікацыі і даверу, а таксама знешні канчатковы пункт. Кожная з чатырох можа зрабіць несапраўднымі астатнія тры.
Абнаўленне праграмы, змена пакета сервера або новы цэнтр сертыфікацыі — усё гэта парушае пагадненне, і з тэлефона збой кожны раз выглядае аднолькава. Менавіта запісаныя чатыры элементы дазваляюць вызначыць, якая частка зрушылася.
Уліковыя даныя маюць асобныя задачы
Вызначыце, ці выкарыстоўвае профіль кліенцкія сертыфікаты, імя карыстальніка і пароль або падтрыманую камбінацыю, і давядзіце абодва бакі да згоды. Ідэнтычнасць сервера і матэрыял даверанага CA таксама павінны адпавядаць таму, што прыме кліент.
Адкрыты сертыфікат CA і ягоны прыватны ключ подпісу — розныя аб'екты. У профілі тэлефона месца толькі адкрытай частцы. Калі пакласці ключ подпісу на тэлефон, вы аддаеце магчымасць ствараць ідэнтычнасці, а гэта супрацьлегласць таму, для чаго існуе CA. Стаўцеся да гэтага файла як да самага адчувальнага аб'екта ва ўсёй зборцы.
Выкарыстоўвайце падтрыманы сэрвісам працэс экспарту і імпарту замест таго, каб збіраць профіль уручную. Сабраныя ўручную профілі звычайна нясуць дырэктывы толькі для настольных сістэм, якія мабільная праграма ігнаруе або адхіляе.
Перш за ўсё, не замяняйце праверку сертыфіката варыянтам "прымаць любы сервер", каб прымусіць стары прыклад падключыцца. Гэта ператварае праблему сумяшчальнасці ў абыход аўтэнтыфікацыі, і звычайна гэта дажывае да прадукцыі, бо працуе.
Даступнасць — асобны дагавор
Тэлефон павінен дасягнуць знешняга канчатковага пункта сервера праз рэальную вышэйшую схему. Трансляцыя хатняга маршрутызатара, фільтрацыя і NAT аператара ўсе стаяць паміж імі. Дынамічнае імя DNS дае канчатковаму пункту толькі стабільнае імя; яно не стварае ўваходнага шляху.
Затым вызначыце, што кліент можа дасягнуць пасля падключэння: прыватныя прэфіксы або поўны выхад у інтэрнэт, іх шляхі перасылкі і адказу, паводзіны DNS і ці ўваходзіць IPv6 у межы. Паспяховы ўваход не даказвае нічога з гэтага.
Прымайце мэтавы тэлефон і профіль непасрэдна, уключаючы праверку, што недазволены рэсурс застаецца недасягальным і што адкліканне сапраўды забірае доступ. Поспех з настольным кліентам пацвярджае гэты настольны кліент, а не тэлефон у вашай руцэ. Спіс OpenVPN Connect — канкрэтны прыклад кліенцкай праграмы, якая чакае адпаведны сэрвіс.