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

Обновил содержимое контейнера и сам контейнер (26.05.2020):

  • Генератор блеклиста теперь используется из репозитория antizapret-pac-generator-light (ранее использовался он же, но немного модифицированный и устаревший)
  • Обновлён knot-resolver до пятой версии
  • Исправлены ошибки при старте контейнера, связанные с DNS
  • Полная поддержка systemd-machined, инструкция в репозитории

Доброго времени суток

Почему используется proto tcp, а не udp?

Потому что для TCP можно сделать keep-alive гораздо реже, что положительно сказывается на заряде аккумулятора мобильных устройств.

ок

а самостоятельно изменить настройки в контейнере под udp можно?
если Да, то как?

P.s.: я сравнил два конфига в ./easy-rsa-ipsec/CLIENT_KEY/
antizapret-client-tcp.ovpn и antizapret-client-udp.ovpn
в одном есть/нет cipher AES-128-CBC, в другом - comp-lzo
второй, ессно, не работает

Что именно у вас не работает? Я тестировал конфигурацию UDP, она рабочая, насколько помню. Конфигурации отличаются, так и должно быть, это не ошибка.

не знаю, у меня в логах openvpn пишет

Tue Jun 09 12:30:42 2020 read UDP: Unknown error (code=10054)
Tue Jun 09 12:30:43 2020 read UDP: Unknown error (code=10054)
Tue Jun 09 12:30:47 2020 read UDP: Unknown error (code=10054)

Если вы устанавливали через LXD, я в инструкции забыл написать проброс UDP-порта. Выполните:

lxc config device add antizapret-vpn proxy_1194_udp proxy listen=udp:[::]:1194 connect=udp:127.0.0.1:1194

да, теперь всё ОК,
благодарю!

и да, в логах постоянно предупреждение об отсутствии в конфиге
auth-nocache

так задумано?

Это фиктивное предупреждение, в конфигурационном файле не используется аутентификация по логину и паролю. Добавьте auth-nocache в ваш файл, если вас это предупреждение смущает.

уже)
но спасибо за пояснение для чайников :handshake:

и ещё, чтобы я уже окончательно отстал))
я раньше юзал скрипт автонастройки GitHub - angristan/openvpn-install: Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS or Arch Linux.
у вас в контейнере используется необходимое/достаточное шифрование (не для параноиков вопрос, а интереса ради)? )))

Шифрование трафика надёжное. Для TCP используется AES-128, для UDP — Blowfish-64. Последний считается уязвимым, если у злоумышленника есть возможность захвата большого количества трафика, но OpenVPN меняет ключ каждые несколько десятков мегабайт, чтобы предотвратить подобную атаку.

Я не рекомендую использовать UDP-конфигурацию. Она устаревшая и оставлена для совместимости с клиентами, которые много лет не перекачивали конфигурацию с сайта. Актуальная конфигурация — TCP.
Поменяйте настройки шифра и отключите comp-lzo у себя, если хотите использовать UDP.

Она устаревшая и оставлена для совместимости с клиентами, которые много лет не перекачивали конфигурацию с сайта

ну дык это ж контейнер для личного сервера; полагаю, тут такие условности ни к чему

Поменяйте настройки шифра и отключите comp-lzo у себя, если хотите использовать UDP

Не знаю, правильно ли я сделал, но я в конфиге контейнера
/etc/openvpn/server/antizapret.conf
добавил
cipher AES-128-GCM
убрал
comp-lzo
изменил
ncp-ciphers AES-128-GCM

в конфиге antizapret-client-udp.ovpn
добавил
auth-nocache
cipher AES-128-GCM
убрал
comp-lzo

Здравствуйте! Скачал, запустил контейнер - работает.
Хочу использовать adguard dns, чтобы видеть меньше рекламы
роутер зухель (speedtester без usb=без opkg) корректно работает только в случае указания 192.168.104.1 в качестве единственного dns
в /root/dnsmap/proxy.py
указал p.add_argument("–upstream","-u",default=“94.140.15.15:53”,
в resolv.conf тоже
Всё равно остаётся очучение, что используется google dns
1)как точно это проверить?
2)как и где ещё вписать adguard dns?

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

Проблема заключается в использовании ufw в качестве фаервола в Ubuntu. Подробно описано здесь:

Читал по диагонали, но похоже, что ufw по-умолчанию не пробрасывает порты внутрь контейнера.
У меня такое было актуально на Ubuntu 20.04

Самое простое решение - прописать правила для сетевого интерфейса контейнера - lxdbr0:

sudo ufw allow in on lxdbr0
sudo ufw route allow in on lxdbr0

Ну и само собой, порт для подключения клиентов должен быть открыт:
sudo ufw allow 1194
У меня после этого всё заработало.

На данный момент, чтобы Knot Resolver принимал ответы от AdGuard Home необходимо так же прописать отключение проверок DNSSEC: trust_anchors.remove('.')
Без этого, dig google.com @127.0.0.1 внутри контейнера возвращает SERVFAIL, соответственно работать не будет.
(лог запроса в моем случае:

[plan] plan 'google.com.' type 'A' uid [58041.00]
[iter]   'google.com.' type 'A' new uid was assigned .01, parent uid .00
[cach]   => skipping exact RR: rank 030 (min. 030), new TTL -9724
[cach]   => no NSEC* cached for zone: google.com.
[cach]   => skipping zone: google.com., NSEC, hash 0;new TTL -123456789, ret -2
[plan]   plan '.' type 'DNSKEY' uid [58041.02]
[iter]     '.' type 'DNSKEY' new uid was assigned .03, parent uid .01
[cach]     => satisfied by exact RRset: rank 060, new TTL 159019
[iter]     <= rcode: NOERROR
[vldr]     <= parent: updating DNSKEY
[vldr]     <= answer valid, OK
[iter]   'google.com.' type 'A' new uid was assigned .04, parent uid .00
[plan]   plan 'com.' type 'DS' uid [58041.05]
[iter]     'com.' type 'DS' new uid was assigned .06, parent uid .04
[cach]     => satisfied by exact RRset: rank 060, new TTL 72803
[iter]     <= rcode: NOERROR
[vldr]     <= DS: OK
[vldr]     <= parent: updating DS
[vldr]     <= answer valid, OK
[iter]   'google.com.' type 'A' new uid was assigned .07, parent uid .00
[plan]   plan 'com.' type 'DNSKEY' uid [58041.08]
[iter]     'com.' type 'DNSKEY' new uid was assigned .09, parent uid .07
[cach]     => satisfied by exact RRset: rank 060, new TTL 72803
[iter]     <= rcode: NOERROR
[vldr]     <= parent: updating DNSKEY
[vldr]     <= answer valid, OK
[iter]   'google.com.' type 'A' new uid was assigned .10, parent uid .00
[nsre] score 21 for 185.93.109.76#00053;         cached RTT: -1
[resl]   => id: '13851' querying: '185.93.109.76#00053' score: 21 zone cut: 'com.' qname: 'gOOgLE.COm.' qtype: 'A' proto: 'udp'
[resl]   => id: '13851' querying: '185.93.109.76#00053' score: 21 zone cut: 'com.' qname: 'gOOgLE.COm.' qtype: 'A' proto: 'udp'
[iter]   <= ignoring mismatching response from 185.93.109.76#00053
[vldr]   <= bogus proof of DS non-existence
[iter]   'google.com.' type 'A' new uid was assigned .11, parent uid .00
[resl]   => no valid NS left
[resl]   finished: 8, queries: 3, mempool: 32800 B

)

Приветствую. Может кто объяснить как дать доступ клиенту antizapret-vpn на localhost машины где развернут lxd контейнер, т.е. чтобы клиент vpn смог выйти за рамки lxd контейнера. На localhost развернут небольшой хостинг, работает только в локальной сети, чтобы не городить второй vpn, хотелось чтобы на него можно было ходить через развернутый antizapret-vpn из внешней сети.

Добавьте в /root/antizapret/config/include-ips-custom.txt ваш IP-адрес, по одному на строку, затем запустите /root/antizapret/doall.sh и дождитесь его завершения.

Сделал, но пинг из под vpn все равно не проходит, из самого контейнера пинг идет. Попробовал добавить в server.conf push “route 10.0.0.0 255.255.255.0” Локальный ip сервера 10.0.0.218. В итоге ответ пинга

From 192.168.104.1 icmp_seq=1 Destination Port Unreachable