Пакеты VPN для працы без сеткі: спытайце ў мэты, што ёй патрэбна
Дайце адлучанай машыне апісаць уласны набор залежнасцей. Два кругі — запыт, затым імпарт, — а пасля транзакцыя APT, якую ўсё яшчэ трэба выканаць.
Каб дабрацца да сеткі, якая звычайна пастаўляе пакеты кліента VPN, патрэбен сам кліент — акуратнае маленькае кола. Спампаваць адзіны DEB-пакет OpenVPN на іншай машыне звычайна сканчваецца другой адсутнай залежнасцю, потым трэцяй, а потым вечарам, праведзеным у пагоні за версіямі бібліятэк. Альтэрнатыва — дазволіць адлучанай машыне самой, на сваёй мове, заявіць, што патрабуе яе мэнэджар пакетаў. Усё ніжэй вынікае з гэтага перавяртання таго, хто пытае.
У сістэмах сямейства Debian гэтая размова адбываецца праз apt-offline — працэс запыту і вяртання. Яго ўласнае асяроддзе выканання павінна спачатку прысутнічаць на мэце, усталяванае з зацверджаных носьбітаў або іншага кіраванага адміністратарам пачатковага запуску, бо ніводны інструмент не можа распачаць сябе з нічога.
Пачынайце са стану пакетаў мэты, а не са стану памочніка
Запішыце выпуск дыстрыбутыва мэты, архітэктуру прасторы карыстальніка і наладжаныя крыніцы пакетаў перш за ўсё. Гэтыя тры факты вызначаюць, якая рэалізацыя VPN і якая інтэграцыя з працоўным сталом прыдатныя, і менавіта іх падключаны памочнік падаць не можа.
Памочнік спампоўвае файлы; ён не робіцца базавай лініяй залежнасцей. Навейшы ноўтбук, на якім ужо ўсталяваны OpenVPN, мае зусім іншы стан пакетаў, чым мэта, таму яго поспех нічога не даказвае пра тое, што мэта здольная прыняць.
Вызначце таксама, што вам насамрэч патрэбна. Рухавік VPN, плагін службы NetworkManager і графічны рэдактар — гэта асобныя пакеты, і правільны выбар залежыць ад выпуску і ад таго, як карыстальнік будзе кіраваць злучэннем. Серверу без экрана патрэбны рухавік і файл канфігурацыі; працоўнаму сталу патрэбны плагін, які дазваляе яго сеткавым наладам валодаць тунелем. Запыт няправільнага набору дае ўсталяванне, якое ўдаецца, і злучэнне, якое ніхто не можа запусціць.
Два кругі, менавіта ў такім парадку
Кіраўніцтва раздзяляе тры аперацыі: стварыць запыт на адлучанай сістэме, спампаваць на падключаным памочніку, імпартаваць назад на мэце. Абнавіце метаданыя сховішча мэты перад запытам пакетаў, бо запыт пакетаў будуецца з гэтых метаданых, а састарэлыя індэксы даюць запыты, якія памочнік не можа задаволіць.
На мэце адміністратарскі загад у форме apt-offline set vpn-meta.sig --update запісвае запыт абнаўлення. Перанясіце гэты файл на падключаную машыну і спампуйце набор з дапамогай apt-offline get vpn-meta.sig --bundle vpn-meta.zip. Вярніце набор і імпартуйце яго на мэце з дапамогай apt-offline install vpn-meta.zip, зноў як адміністратар.
Цяпер стварыце запыт пакетаў з абноўленых метаданых, напрыклад apt-offline set vpn-deps.sig --install-packages openvpn, і паўтарыце паездку з новым імем набору. Трымайце кожны запыт у пары з наборам, які ён стварыў; набор, створаны на аснове старэйшых метаданых, — гэта не той самы запыт, нават калі імёны файлаў выглядаюць узаемазаменнымі.
Дадавайце пакеты інтэграцыі толькі тады, калі гэтага патрабуе дызайн
Калі працоўны стол павінен кіраваць тунелем праз свае сеткавыя налады, запыту патрэбны адпаведны плагін разам з рухавіком. Уключайце канкрэтныя імёны пакетаў, якія падае ваш выпуск, а не спіс, запомнены з іншага дыстрыбутыва, і стварайце новы запыт кожны раз, калі спіс змяняецца. Замацаванне версій таксама вартае роздуму: пакет, сабраны для навейшага выпуску, можа задаволіць імя і ўсё ж не спрацаваць падчас выканання. Менавіта тут фіксаваны набор з чатырох пакетаў робіцца цяжарам, бо правільны спіс — уласцівасць мэты, і толькі мэта можа яго вылічыць.
Менавіта тут фіксаваны набор з чатырох пакетаў таксама робіцца цяжарам. Правільны спіс — уласцівасць мэты, і мэта — адзіная машына, якая можа вылічыць яго правільна.
Імпарт набору — гэта не ўсталяванне VPN
Нягледзячы на назву, аперацыя ўсталявання змяшчае даныя APT у асяроддзе кіравання пакетамі. Яна не выконвае транзакцыю пакетаў. Завяршыце і праглядзіце фактычнае ўсталяванне APT на мэце з лакальна пададзеных даных, і чытайце вывад, замест таго каб меркаваць, што поспех ZIP азначае наяўнасць праграмнага забеспячэння.
Калі гэтая транзакцыя ўсё яшчэ патрабуе недаступных файлаў, захавайце канкрэтную адсутную залежнасць або памылку сховішча і стварыце наступны запыт з яе. Не падмяняйце DEB з іншага выпуску і не адключайце праверкі кантрольнай сумы або аўтэнтыфікацыі сховішча, каб прапхнуць яго. Кіраўніцтва відавочна папярэджвае супраць пропуску праверкі спампаваных файлаў, і нездарма: непавераны пакет — горшы вынік, чым няўдалае ўсталяванне.
Пакеты — гэта толькі першая палова
Усталяванне праграмнага забеспячэння аддзелена ад атрымання зацверджанай канчатковай кропкі, профілю, матэрыялу даверу і ўліковых даных, і кожнае з гэтага можа мець сваю кантраляваную перадачу. Працоўны набор пакетаў без сапраўднага профілю не злучаецца ні з чым.
Затым падтрымлівайце шлях афлайн-перадачы жывым для будучых абнаўленняў. Калі лічыць першае паспяховае злучэнне канцом абслугоўвання, наступнае абнаўленне бяспекі будзе чакаць, пакуль хтосьці з машынай не зможа наведаць, і менавіта так сетка без сеткі ціха адстае на гады.