Клієнту 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 з іншого випуску й не вимикайте перевірку контрольних сум чи автентифікацію сховища, щоб проштовхнути його силою. Посібник прямо застерігає від пропуску перевірки завантажених файлів, і слушно: неперевірений пакет — гірший результат, ніж невдале встановлення.

Пакети — це лише перша половина

Встановлення програмного забезпечення відокремлене від отримання схваленої кінцевої точки, профілю, матеріалів довіри та облікових даних, кожен із яких може мати власну контрольовану передачу. Робочий набір пакетів без чинного профілю ні до чого не під'єднується.

Далі підтримуйте офлайн-канал передавання живим для майбутніх оновлень. Якщо вважати перше успішне з'єднання кінцем обслуговування, наступне оновлення безпеки чекатиме, доки хтось із машиною зможе приїхати, і саме так офлайн-мережа тихо відстає на роки.

Схожі статті