ChromeBook + OpenVPN (через Developer Mode)

Описание

ChromeOS изначально ограничивает доступ к системе и не позволяет использовать OpenVPN в полном объёме.

Решение — включение Developer Mode и запуск OpenVPN вручную через shell.


Контекст

Используется, когда:

  • стандартный VPN-клиент ChromeOS не подходит;
  • требуется кастомный OpenVPN-конфиг;
  • необходим полный контроль над параметрами подключения.

⚠️ Риски

⚠️ Все действия выполняются на ваш страх и риск

  • включение Developer Mode приводит к полной очистке устройства;
  • отключается проверка целостности системы (rootfs verification);
  • увеличивается attack surface (поверхность атаки);
  • возможны проблемы с обновлениями ChromeOS.

Решение

1. Включение Recovery Mode

Hold Esc + Refresh + Power

2. Переход в Developer Mode

Ctrl + D → Enter

После этого:

  • устройство будет очищено;
  • система перезагрузится.

3. Вход в систему

  • вводим аккаунт;
  • заходим в систему.

4. Доступ к shell

Открываем терминал:

CTRL + ALT + T

Далее:

shell

5. Отключение защиты rootfs

Проверяем диски:

fdisk -l

Отключаем проверку:

sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 1 \
&& sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 3

(в зависимости от разметки может потребоваться перебор разделов)


6. Перезагрузка

reboot

7. Установка OpenVPN

ChromeOS не содержит OpenVPN по умолчанию в shell-окружении.

Устанавливаем пакет:

sudo emerge openvpn

Примечание: в некоторых версиях ChromeOS установка пакетов может быть недоступна. В таком случае используется chroot или Crostini (Linux container).


8. Подготовка конфигурации OpenVPN

Создаём конфигурационный файл:

mkdir -p /home/chronos/user/ovpn
vi /home/chronos/user/ovpn/ovpn.conf

Пример минимального конфига:

client
dev tun
proto tcp
remote ovpn.server.org 443
persist-key
persist-tun
auth-user-pass loginpass.txt
remote-cert-tls server
cipher AES-256-CBC

Сертификаты и ключи добавляются отдельно:

  • ca.crt
  • client.crt
  • client.key

или встраиваются в конфиг через блоки <ca>, <cert>, <key>.


9. Запуск OpenVPN

Открываем терминал:

CTRL + ALT + T
shell
sudo openvpn --config /home/chronos/user/ovpn/ovpn.conf

Проверка

  • устанавливается VPN-сессия;
  • появляется маршрут к внутренним сетям;
  • доступ к ресурсам проходит через туннель.

Ограничения

  • решение не является штатным;
  • требует ручного запуска;
  • может ломаться после обновлений ChromeOS;
  • не подходит для массового использования.