Контейнер VPN АнтиЗапрета для установки на собственный сервер

Конструкция заработала, спасибо за помощь.

Не понимаю как раз с настройкой lxd.
Делаю lxd init. Всё по умолчанию выбрал. После первой команды sudo lxc image import https://antizapret.prostovpn.org/container-images/az-vpn --alias antizapret-vpn-img
Я получаю Error: Metadata file is required. Что я делаю не так?

Сервер Aruba Cloud. Там реализация VMWare. Ubuntu 18.04 LTS.

Возможно, у вас слишком старая версия LXD, которой нужно передавать на импорт два файла. Попробуйте установить версию из snap, она новее.

Я обновил lxd. Прошел дальше первого шага и застопорился на последнем.
Не могу понять почему в конце не хочет создать сам файл.

Мануал то вроде понятнее некуда, но вот ошибки удивляют самого.

Что-то не запустилось, ключи не сгенерировались. Зайдите в контейнер и посмотрите журнал:

lxc exec antizapret-vpn bash
journalctl -u openvpn-generate-keys -e

В контейнере должен быть работающий интернет, чтобы ключи сгенерировались (делается запрос на сервис получения внешнего IP-адреса, чтобы добавить его в конфигурационный файл). LXD по умолчанию пробрасывает интернет в контейнер.

image

Что-то не работает. Запустите /root/easy-rsa-ipsec/generate.sh вручную, поотлаживайте.

Полистав ветку удалось понять, что делают не так. Теперь поднимаю вручную generate.sh в контейнере и получаю это.
image

Причем если шагать через vpn с этого сервера на http://icanhazip.com/ получаю свой ип сервера.

Сначала думал, что сеть долго поднимается, но я прождал достаточно долго минут 20 и эта же проблема.

Опять же я проверял есть ли интернет на контейнере.
По сути есть image

Пока натолкнуло на мысли, что проблема с правами
image

Какая у вас версия ядра на хост-машине?

4.15.0-91-generic

По всей видимости, у вас неправильно настроено ядро, или, возможно, вы наткнулись на ошибку в LXD. Самое простое — прописать в /etc/systemd/system/openvpn-server@.service.d/override.conf:

[Service]
LimitNPROC=infinity
PrivateTmp=false
CapabilityBoundingSet=
DeviceAllow=
ProtectSystem=false
ProtectHome=false

И перезапустить контейнер.

Я бы с радостью, но данного пути вообще нет. Много раз переустанавливал уже Ubuntu Server 18.04 пытаясь побороться.
Есть ли вариант запустить на debian?
Может есть список серверов где работа контейнера тестировалась и запускается 100%?
Сколько стоит заплатить Вам, чтоб помогли решить проблему лично?

Я написал путь внутри контейнера, а вы смотрите файлы на хост-машине. Файлы внутри в принципе можно видеть и редактировать на хосте, но это может вызвать проблемы с правами на файлы.

Зайдите в контейнер командой lxc exec antizapret-vpn bash, и отредактируйте файл редактором nano.

Хост ОС, вообще говоря, не должна влиять на контейнер. То, что у вас появляются ошибки с namespace — исключительный случай, вызванный, вероятно, особенностями Aruba Cloud.

Если не справитесь, отправляйте данные для входа на сервер на iam@valdikss.org.ru. Уверен, всё можно починить за 10 минут. Но сначала попробуйте сами.

1 Like

Всё также не резолвится icanhazip.com. Но пока помучаю сам, а потом напишу. Почту сохранил.

Если получаете на Ubuntu 18.04 ошибки типа:

systemd-networkd.service: Failed to set up mount namespacing: Permission denied
systemd-networkd.service: Failed at step NAMESPACE spawning /lib/systemd/systemd-networkd: Permission denied 

то варианта два:

  • Установить версию lxd из snap, а не из репозиториев
  • Применить следующую команду:
lxc config set antizapret-vpn raw.apparmor 'mount options=(ro,nodev,remount,bind), mount options=(ro,nosuid,nodev,remount,bind), mount options=(ro,nosuid,noexec,remount,strictatime), mount options=(ro,nosuid,noexec,remount,bind,strictatime), mount options=(ro,nosuid,nodev,noexec,remount,bind),' 

Проблема вызвана ошибкой совместимости с AppArmor: https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/1811248

После применения команды ошибки с NAMESPACE уходят, ip получается, ключ генерится, openvpn запускается.

Вы разобрались с отсутствием IPv4 в контейнере? Я пытаюсь поднять на овх, та же самая проблема. В линуксе ноль.

увы, нет, так и не разобрался.