Неофициальный docker-контейнер АнтиЗапрета

Ещё бы инструкцию по настройки клиента IPSec на Keenetic.

у меня через wg как-то долго все резолвится

Удалить

Нужно использовать IPsec/XAuth (“Cisco IPsec”)
Используется IKEv1 (XAUTH)

Тут можно подчерпнуть какие то детали: setup-ipsec-vpn/docs/clients-xauth.md at master · hwdsl2/setup-ipsec-vpn · GitHub

В инструкции написано, что не все клиенты поддерживают split tunnel: setup-ipsec-vpn/docs/advanced-usage.md at master · hwdsl2/setup-ipsec-vpn · GitHub

Split tunneling has some limitations, and is not supported by all VPN clients.

Можно дополнительно попробовать настроить в контейнере ikev2: setup-ipsec-vpn/docs/ikev2-howto.md at master · hwdsl2/setup-ipsec-vpn · GitHub
Есть вероятность что в таком режиме клиенты будут более совместимы. Но там много ручных действий, я не стал тратить время и прикрутил wireguard.

Т.е. проблема была в прописанных route? А зачем вы их прописывали? В ovpn файлах ничего такого нет.
И кстати что будет если просто загрузить ovpn файл? В обычной прошивке этого достаточно.

Т.е. надо было купить оборудование с поддержкой merelin, поставить нестандартную прошивку и настроить ее, что бы помочь анониму в интернете?

Не ожило, ютуб не пашет, вернулся на старый VPN где на теликах тупо весь трафик пробрасывается. Почти все асус роутеры поддерживают прошивку от мерлина. Сколько уже бодаюсь с этим антизапретом лучше чем ручная настройка VPN директора и скрипта от open vpn ничего нет.

Спасибо, проверил, не резолвит
Скорее всего причина где-то у меня, раз коннект к WG есть в целом

По существу, при добавлении WG конфига и без\с галкой: Использовать для доступа в интернет , всегда получаю такую картину:

Поднимается автоматом два роута на 0.0.0.0 шлюз, на сколько понимаю один из роутов 10.0.0.1 это дефолтный DNS в WG конфиге, а 10.8.0.0 подсеть адреса самого WG, но ничего не резолвится
При этом, если подкинуть в конфиг в AllowedIPs подсеть 0.0.0.0\0, то всё начинает работать с одним НО, весь трафик заворачивается в тунель WG, а не выборочно

Пока по ресёрчу кажется, что маршруты от WG, одним из которых является DNS никак не участвуют в резолвинге, от этого не понятно куда копать

Да, маршруты неправильные.
В wireguard конфиге указан всего один маршрут:

AllowedIPs = 10.0.0.0/8

Но ваш роутер не хочет его использовать по какой то причине. При этом сам добавляет машрут до DNS: 10.0.0.1/32

Вам нужно вручную добавить машрут до 10.0.0.0/8 через wireguard. После этого должно все заработать.

Все роутеры без USB его не поддерживают. Мой AX55 - например.

Прошу прощения, за бестактность, но ручная настройка это хорошо, если уметь ей пользоваться. Но в таком случае вы бы не задавали тут вопросы.
Для того что бы opevpn корректно работал на AsusWRT достаточно загрузить openvpn в роутер и все. Вы сами усложняете себе жизнь.

Поправил работу OPENVPN_PORT, спасибо за bug report!

@xtrime день добрый. В первую очередь спасибо огромное за такую реализацию, всё очень нравится. После обновления отпал AdGuard в качестве настроенного DNS сервера. Настройки по сути изначальные не изменял, сделал файл docker-compose.override.yml в папке /antizapret с следующими данными

services:  
antizapret-vpn:
    environment:
      - DNS=adguardhome
      - ADGUARD=1
      - OPENVPN_OPTIMIZATIONS=1
      - OPENVPN_TLS_CRYPT=1
    depends_on:
      - adguardhome
  adguardhome:
    extends:
      file: docker-compose.adguard.yml
      service: adguardhome
  wg-easy:
    extends:
      file: docker-compose.wireguard.yml
      service: wg-easy

рядом лежит неизмененный файл docker-compose.adguard.yml . Если что-то ещё нужно предоставить или завести issue на github-е дайте знать. Но мне кажется (не сильно пока в этом разбираюсь правда), но где-то упустил зависимость или неправильно оформил .yml файл.
p.s. сам openvpn с телефона работает, проблем с DNS нет. На пк указывал только DoH адрес AdGuard-а так и понял что он отлетел.

Огромное спасибо за подсказку, сразу дошло куда копать. Вдруг кому-то будет полезно для Кинетиков, что сделал я:

  1. Предусловие: в моём случае я имел отдельный профиль DNS интернет-фильтров. На скрине профиль Antizapret, где перечислен набор DNS адресов, которые я готов скармливать в Антизапрет через шлюз для дальнейшего резолва. Данный профиль выбран, как профиль контентной фильтрации по умолчанию для моей домашней сети.

  2. В конфиге WG полученном с веб-интерфейса убрал переменную с DNS=10.0.0.1 и значение DNS адреса из конфига добавил в свой профиль контентной фильтрации Antizapret

  3. Загрузил файл WG в Других подключениях Кинетика и активировал его. Как и писалось выше, WG поднимает роуты. Т.к. DNS в конфиге более не присутствует, то поднимается только ОДИН роут - 10.8.0.0/24 с шлюзом 0.0.0.0 на интерфейсе WG.

  4. Теперь необходимо добавить недостающие роуты и завернуть профиль контентной фильтрации Antizapret в собственно сам Antizapret на сервере.
    Создал bat файл со след. содержимым:

route ADD 1.1.1.1 MASK 255.255.255.255 10.8.0.2
route ADD 8.8.8.8 MASK 255.255.255.255 10.8.0.2
route ADD 9.9.9.10 MASK 255.255.255.255 10.8.0.2
route ADD 77.88.8.8 MASK 255.255.255.255 10.8.0.2
route ADD 195.208.4.1 MASK 255.255.255.255 10.8.0.2
route ADD 10.0.0.0 MASK 255.0.0.0 10.8.0.2
route ADD 10.0.0.1 MASK 255.255.255.255 10.8.0.2

Как можно заметить, после команды ADD идут IP адреса DNS серверов из профиля контентной фильтрации Antizapret, далее маска подсети (почти везде /32) и IP адрес шлюза, его можно забрать из конфига WG в переменной Address без подсети.

Единственный роут, который не находится в профиле контентной фильтрации Antizapret это - 10.0.0.0/8 - насколько я понимаю, это сама подсеть антизапрета и её так же прокидывает через WG с помощью адреса шлюза.

По итогу маршруты выглядят так:

При проверке через dnsleaktest получаю аналогичный набор серверов, что и на конфигурации с OVPN:

Скорость на ютьюбе:

Спасибо за инструкцию.

Но я не понимаю зачем нужны “DNS интернет-фильтры” ? Почему нельзя все это дропнуть, подключить конфиг по умолчанию и использовать DNS 10.0.0.1 который идет через wireguard в антизапрет? Какое поведение вы ожидаете?

С этими route постоянно проблемы (уже два треда про асус было, где из за них ломалось).

У вас перед antizapret-vpn: не хватает отступа. Все остальное выглядит хорошо.

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

Звучит, как Карго-культ — Википедия :slight_smile:

Я рекомендую попробовать максимально простую конфиграцию: убрать все фильтры/опции, загрузить готовый ovpn/wireguard файл.
Если не работает, то тогда уже разбираться, почему.

Кстати проблема может быть вызвана багом DNS в докере на старых версиях хостовых систем.

Если у вас ubuntu 20.04 или аналогичная по древности система на хосте, то стоит вот эти две строки раскоментировать: antizapret-vpn-docker/docker-compose.yml at master · xtrime-ru/antizapret-vpn-docker · GitHub и сделать

docker compose down
docker compose pull
docker compose up -d

Виноват, неправильно вставил текст, там с отступом. Что ещё может быть?

В чем именно проблема? Чем больше деталей дадите, тем проще помогать :slight_smile:

А! Я могу догадываться. В последней версии я убрал из adguard проброс 80 и 443 портов, для совместимости с серверами, где они уже заняты. Оставил только 3000. Если вы не можете получить доступ к админке, то надо

docker compose stop adguardhome
rm -rf .adguard/
docker compose up -d

И снова настроить adguard , но указать в качестве порта 3000 вместо 80.