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

AntiZapret VPN Container

Выложил готовый контейнер VPN АнтиЗапрета и все файлы для его сборки на
https://bitbucket.org/anticensority/antizapret-vpn-container/src/

Последнее обновление: 26.05.2020

Для правильной работы Twitter, Facebook и Instagram требуются дополнительные действия.

Создайте свой личный VPN АнтиЗапрета за 10 минут!

Что это? Это полный аналог сервиса для получения доступа к заблокированным сайтам в Российской Федерации АнтиЗапрет VPN, пригодный для установки на личный сервер в интернете.

Какие преимущества перед обычным VPN? Обычные VPN направляют трафик ко всем сайтам и сервисам через свои серверы, что понижает общую скорость работы интернета. АнтиЗапрет направляет трафик на свои серверы только к сайтам и сервисам, заблокированным на территории Российской Федерации, и не снижает скорость открытия других сайтов.

Зачем нужен этот контейнер? Он нужен в случаях, если вы не доверяете администратору сервиса АнтиЗапрет, недовольны скоростью работы или просто хотите запустить аналог сервиса для себя на собственном оборудовании.


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

systemd-networkd.service: Failed to set up mount namespacing: Permission denied

См. сообщение Контейнер VPN АнтиЗапрета для установки на собственный сервер - #57 by ValdikSS

Используете UFW, контейнер не работает на Vultr? Контейнер VPN АнтиЗапрета для установки на собственный сервер - #76 by magratsk

А можно пример настройки LXD для данного контейнера?

Вы про lxd init? Подойдут настройки по умолчанию.

Да про него, но он запускается так себе. C первого раза по крайней мере не получилось.

Будет ли контейнер для Docker?

Как может контейнер не запускаться, что вы имеете в виду?
Docker не предназначен для такого.

Не-не-не. Не так меня поняли. Я просто намучался настраивать LXD. Если какая нибудь инструкция для него, то идеально, но на хабре была если не ошибаюсь.

Я ожидал, что может для Docker есть более простая настройка с Antizapret на своем сервере.

Я ничего кроме lxd init не выполнял, он всё настроил, я даже никакие инструкции не читал. Настраивал на Ubuntu и ArchLinux. Может, ваш дистрибутив требует какой-то особой настройки? Что у вас за дистрибутив?

Контейнер использует systemd для управления сервисами, а он не совместим с Docker. Docker предназначен для контейнеров приложений, а не для системных контейнеров, каким является контейнер антизапрета. Если вам не подходит LXD, можете использовать другой инструмент для запуска системных контейнеров — systemd-machined (команда machinectl), но его, скорее всего, придётся дольше настраивать (потребуется ручная настройка сети, как минимум).

Установил всё по инструкции, использовал Debian 10, так вот вопрос в чём? почему теряется сеть “отваливается” eth0 в самом контейнере?

192.168.104.1 (vpn-tcp) | fd42:44c7:6da4:dac4:216:3eff:fe3e:db2c (eth0)
192.168.100.1 (vpn)
10.92.218.174 (eth0) <— вот этот отваливается, приходится вручную его поднимать через какое-то время, подскажите что не так?

Не сталкивался с таким. Как именно отваливается, что при этом происходит в контейнере? Вы смотрели записи в журнале?

вошёл в контейнер
lxc exec antizapret-vpn – bash

а журнал как посмотреть, подзабыл уже ))

если есть возможность в телеграм напишите, что бы тут не флудить https://t.me/BT4G2015

Если вы говорите, что связность теряется со временем, то это может быть проблемой с DHCP. Посмотрите, есть ли IP-адрес на интерфейсе командой ip a, когда контейнер недоступен извне.
Также см. журнал через journalctl -e.

ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::216:3eff:fe3e:db2c prefixlen 64 scopeid 0x20
inet6 fd42:44c7:6da4:dac4:216:3eff:fe3e:db2c prefixlen 64 scopeid 0x0
ether 00:16:3e:3e:db:2c txqueuelen 1000 (Ethernet)
RX packets 1595 bytes 11880034 (11.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 546 bytes 40072 (39.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vpn: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 192.168.100.1 netmask 255.255.252.0 destination 192.168.100.1
inet6 fe80::fa94:efb:a333:8524 prefixlen 64 scopeid 0x20
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14 bytes 672 (672.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vpn-tcp: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 192.168.104.1 netmask 255.255.252.0 destination 192.168.104.1
inet6 fe80::c659:ad4d:2f01:9220 prefixlen 64 scopeid 0x20
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14 bytes 672 (672.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

отваливается в самом контейнере

Действительно. ifupdown неправильно работает в такой конфигурации. Переделал контейнер на использование systemd-networkd.
https://bitbucket.org/anticensority/antizapret-vpn-container/commits/77c859e7058279f67d05589261dc95489aedd05b

Достаточно обновить образ и запустить новый контейнер. После обновления ваш текущий клиентский конфигурационный файл OpenVPN работать не будет. Если вы хотите сохранить возможность использования текущего файла, вам нужно сначала сделать резервную копию следующих файлов из текущего контейнера:

/root/easy-rsa-ipsec
/etc/openvpn/server/keys

А затем скопировать их в новый контейнер.

обновил контейнер посмотрим что и как будет, спасибо.

Всё отлично, всё работает спасибо что поправили контейнер!

подскажите как быть
после всех этих команд

Сводка

sudo lxc image import https://antizapret.prostovpn.org/container-images/az-vpn --alias antizapret-vpn-img
sudo lxc init antizapret-vpn-img antizapret-vpn
sudo lxc config device add antizapret-vpn proxy_1194 proxy listen=tcp:[::]:1194 connect=tcp:127.0.0.1:1194
sudo lxc start antizapret-vpn
sleep 10

после этой команды
sudo lxc file pull antizapret-vpn/root/easy-rsa-ipsec/CLIENT_KEY/antizapret-client-tcp.ovpn antizapret-client-tcp.ovpn
выдает ошибку
Error: not found

Зайдите в контейнер командой:
sudo lxc exec antizapret-vpn bash
И выполните:
systemctl status openvpn-generate-keys

Вывод команды опубликуйте сюда.

Видимо, у вас в контейнере нет сети. curl icanhazip.com что-то выводит? ip a показывает IP-адрес?