Скрипт для автоматического развертывания AntiZapret VPN + обычный VPN (без контейнера) OpenVPN / WireGuard / AmneziaWG + Патч для обхода блокировки OpenVPN

Проблемы безопасности решает сам администратор машины.

Если бы этот скрипт был ориентирован на полноценных администраторов, а не на юзеров, которые хватаются сейчас за любую соломинку не подумав - не было бы разговора.

задача выжать максимальную производительность из самой дешевой и простой VDS

Если задача сформулирована как “выжать максимум из самой простой VPS” - то явно выбирать надо не OpenVPN и не комбайны его использующие. Если задача в удобстве и одноклике - существующие варианты с Docker тоже вполне себе дружелюбны к чайнику.

Здесь же готовое решение аппелирует к удобству, при этом завязываясь на заведомо устаревшую версию дистрибутива - о том что Debian 10 EOL’нулся знают далеко не все, кто сунется ставить этот скрипт.

В любом случае, на VPS за 10 баксов в месяц LXD практически не будет заметен в контексте оверхеда, а скорость передачи данных всё равно упрётся в OpenVPN и полосу, которую 99% бюджетных хостеров всё равно оверселлят.

Хватит душить, автор же написал, что будет на Debian 12 проверять.

Если вопросы безопасности для вас - душнота, то мне больше нечего вам сказать. Пожалуйста, в дальнейшем игнорируйте на этом форуме меня, а я с удовольствием пройду мимо вас.

@Tyman - увидел от вас правку в README репозитория, большое спасибо. Мои претензии исчерпаны.

Камрады, кто хорошо разбирается в linux, попробуйте разобраться:

  1. почему не работает, хоть и ставится, и подключается и заблокированные сайты резолвится верно на Debian 11
  2. не ставится в Debian 12

Сейчас буду проверять работоспособность на дистрибутивах Ubuntu

Подскажите пожалуйста
Создал антизапрет впн на основе этого скрипта, пытаюсь засунуть в микротик ovpn файл. Коннект есть, однако обход не проходит
Не прям сильно шарю в микротике, но пытался скрестить вариант со скриптом вместе с инструкцией по настройке не селф-хостед антизапрета на микротике:

  1. Сделал маскарад в NAT: Src. address локальная сеть, Out interface собственно openvpn подключение
    Стоит вторым после основного маскарада
  2. Открыл порты 53,5353,1253 по tcp и udp
  3. В PPPoE подключении интернета указал Use Peer DNS, а в DNS удалил все старые днски (галочка Allow Remote Requests стоит).
  4. DHCP Server: в network в днс указал единицы и восьмерки
    Пункт 3 и 4 на случай если впн отвалится, а интернет еще жив.

Подозревал, что впску спалили, потому что немецкий хост по geoip оказался российским, однако через OpenVPN GUI в Windows обход работал почти успешно (кроме ютуба – скорость на нем была замедлена)

(RouterOS 7.15.3)

У докера нет никакого измеримого оверхеда в плане сети, CPU или памяти.
Вот выжимка из исследования IBM 10-летней давности:

Docker is nearly identical to native performance and faster than KVM in every category.

По сути докер это просто удобный способ для запуска процессов в другой cgoup.

Там есть некоторые особенности при работе с файловой системой контейнера (слои). Но в нашем случае нет никакой значимой нагрузки на диск, так что нерелевантно.

Докер вырос в гугле. У них все процессы, очереди и кроны завернуты в отдельные контейнеры (BORG/Kubernetis). При их нагрузках любой оверхед стоит миллионы или миллиарды долларов.

Наконец-то я понял зачем этот докер нужен, спасибо. Т.е. в случае, когда нет задачи ограничивать ресурсы, то докер не нужен?

Докер это не только ограничение ресурсов. На вскидку дает следующие плюшки:

  1. Удобный мезанизм распространения ПО. Все зависимости уже есть в контейнере, не надо ничего ставить - скачал и запустил.
  2. Возможность запуска новых ОС на старых хостовых ОС. Например у меня контейнер с 24 убунтой работает на хосте с 22 убунтой.
  3. Из п1 следуют быстрые и простые откаты, обновления и возможность запуска разных версий одновремено.
  4. Безопасность. Если что то произошло в одном контейнере, то оно никак не затронет хостовую систему или другие контейнеры.

Можно хранить и запускать весь софт в перемешку, но удобнее когда мухи от котлет отделены :slight_smile:

Понятно, заканчиваю офтопик. Мне ничего из перечисленного никогда не требовалось, поэтому потребности в докере не испытывал. Собирал всегда проекты со статической компиляцией в монолитный бинарь и его только обновлял на машине с единственной ответственностью.

Спасибо, в статье есть указание что использование NAT снижает скорость, но как я понимаю, ты его не используешь для работы антизапрета в докере?

Ура, в Ubuntu 20.04 работает, использовать Debian 10 не обязательно…
UPD
Не работает в Ubuntu 20.04, версия gawk 5 - не верно обрабатывает awk файлы

Используется. Но кроме прочего, NAT - это основа работы антизапрета :slight_smile: Это редиректы пакетов через iptables. Так что и без докера они останутся.

Если присмотритесь к графику, то задержки там измеряются долями миллисекунды. Если вы используете антизапрет для высокочастотного трейдинга, то, конечно, такие задержки ощутимы :wink:

Дебиан и убунта это родственные системы. Все одинаковое.

У меня вот так заканчивается и конфигов в /root/easy-rsa-ipsec/CLIENT_KEY нет, папка пустая. Пробовал и на Ubuntu 20.04, и на Debian 10

Попробуйте скачать архив заново, в течении дня я правил, мог что то поломать, но текущая версия из гитхаба работает, только что проверил

@Tyman Огромная вам благодарность за проделываемую работу!

при настройке без контейнера, если у вас будет возможность, попробуйте сделать маршрутизацию не только через интерфейс vpn, но и чтоб в самой системе эта же схема с подменой ip работала. Или например чтобы можно было выбирать на какой интерфейс будет маршрутизация с “хитрого” резолвера.

если получиться, это снимет вопросы по транспортному каналу и сильно развяжет руки для будущих улучшений.

добавив в систему тот же xray и заворачивая с него трафик к примеру в tun0 через tun2socks было бы гораздо интереснее в плане обхода блокировок и с заделом на будущее.
а если будет на уровне системы эта схема с подменой ip работать, тогда дальнейшая настройка вообще кратно облегчится.

К сожалению не удалось установить данный контейнер, такая же ошибка. Ubuntu 20.04 чистая, вторая попытка была через полный сброс сервера, выполнения команды apt update && apt upgrade , результат идентичный

Также не получилось.Ubuntu 20.04 чистая.
Папка /root/easy-rsa-ipsec/CLIENT_KEY на сервере не появилась
2024-08-13_23-05-20

На предыдущей версии не удалось поднять vpn на Keenetic.
На телефоне работало с переменным успехом, а при добавление на роутер как-будто ничего не менялось, заблокированные сайты оставались заблокированными, YT ролики не стартовали.
В настройках прописывал:

pull-filter ignore block-outside-dns
route адрес ДНС

Народ кто сталкивался, Debian 10

Created symlink /etc/systemd/system/multi-user.target.wants/openvpn-server@antizapret-tcp.service → /lib/systemd/system/openvpn-server@.service.
root@debian10x64:~#

После этого сервер падает…
ЧТо интересно падает связь с сервером по ssh. По VNC сервер работает

все нормально, в конце скрипта перезагрузка чтобы загрузились перезаписанные настройки

Самый главный прикол, что перезагрузка есть а связи с сервером нима :rofl:
Захожу ток по VNC смотрю че там как…