Skip to content

Пользовательская сборка АнтиЗапрет

Notifications You must be signed in to change notification settings

kyzima-spb/antizapret

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AntiZapret VPN Container

Введение

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

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

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

Какой VPS выбрать?

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

Минимальные системные требования при выборе VPS

  • Личный сервер или VPS с виртуализацией XEN или KVM (OpenVZ не подойдёт)
  • Выделенный IPv4-адрес
  • Минимум 1Gb оперативной памяти
  • Минимум 5Gb дискового пространства
  • Дистрибутив Linux, где доступен systemd-machined (рекомендуется Debian 11, в Debian 12 есть проблемы с доступом в консоль контейнера)
  • Безлимитный трафик, либо как можно больше =)

Чем пользовался я и что могу посоветовать

Все ссылки реферальные!!! Оплата в рублях с российских карт и ЮМани, другие способы уточняйте.

  • RoboVPS

    • период использования: 17.04.2022 - 17.10.2023
    • очень хороший и стабильный хостинг, ТП отвечает быстро, был оптимальный вариант по соотношению цена/качество, пока не повысили цены
    • доступные локации: Германия
    • ChatGPT открывается, но не выдает токен (на момент использования, сейчас не знаю)
    • на 01.01.2025 самый дешевый тариф: 399.00 руб/мес
      (1 ядро/1 ГБ/10 ГБ SSD/до 150 Мбит/сек)
  • HOSTING RUSSIA

    • период использования: 17.10.2023 - по сегодня
    • очень хороший и стабильный хостинг, ТП отвечает относительно быстро, но был случай, когда в момент DDoS атаки ее просто отключили
    • доступные локации: Германия, Нидерланды
    • ChatGPT выдал токен в локации Германия
    • на 01.01.2025 самый дешевый тариф: 349.00 руб/мес
      (1 ядро/1 ГБ/20 ГБ SSD/до 10 Гбит/сек)
  • [аéза]

    • удалили аккаунт с небольшим балансом без предупреждения
    • тестировал 21.02.2024 локации США, Лондон и Нидерланды для выдачи токена ChatGPT
    • почасовая оплата
    • ChatGPT выдал токен в локации Лондон и Нидерланды, в США - отказался

Чем пользуются мои друзья

  • FirstVDS
    • доступные локации: Нидерланды
    • на 01.01.2025 самый дешевый тариф: 444.00 руб/мес
      (1 ядро/2 ГБ/40 ГБ SSD/до 200 Мбит/сек)

Рекомендуемые и протестированные авторами АнтиЗапрет

Часть ссылок — реферальные. При покупке сервера по реферальным ссылкам, часть оплаченной суммы пойдёт на содержание серверов АнтиЗапрета.

  • ITLDC (сервер SSD VDS 1G за €3.99)
  • Vultr (серверы за $5, при регистрации по ссылке даётся бонус на первый месяц)
  • Scaleway

Установка

Автоматическая установка

Входим в систему используя SSH: IP-адрес хоста, логин и пароль обычно выдает хостер. Все команды выполняем от пользователя root или используя sudo.

Установщику можно задать следующие переменные окружения:

  • COMMAND - имя команды, по-умолчанию install
  • NAME - имя контейнера, по-умолчанию antizapret-vpn
  • IMAGE - URL-адрес или путь к файлу с образом
  • BACKUP_FILE - путь к файлу с бекапом OpenVPN для сохранения или восстановления
  1. Установка официального контейнера:
    wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | bash
  2. Установка моей версии контейнера с улучшениями:
    wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | \
    IMAGE=https://kyzima-spb.github.io/antizapret/rootfs.tar.xz \
    bash
  3. Установка контейнера с указанием имени:
    wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | \
    NAME=antizapret \
    bash

Установка на Vultr и Scaleway с помощью cloud-init

Scaleway: при создании нового сервера (instance) выберите ОС Ubuntu 20.04, после пункта #5 (Enter a Name and Optional Tags) нажмите на кнопку "Advanced Options", активируйте "Cloud-init", скопируйте и вставьте скрипт ниже.

Vultr: при создании нового сервера выберите ОС Ubuntu 20.04, в пункте Startup Script создайте новый скрипт кнопкой Add New убедитесь, что тип скрипта - Boot, скопируйте и вставьте скрипт ниже.

#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
apt update
apt -y install systemd-container dirmngr
mkdir -p /root/.gnupg/
gpg --no-default-keyring --keyring /etc/systemd/import-pubring.gpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 0xEF2E2223D08B38D4B51FFB9E7135A006B28E1285

machinectl pull-tar https://antizapret.prostovpn.org/container-images/az-vpn/rootfs.tar.xz antizapret-vpn
mkdir -p /etc/systemd/nspawn/
echo -e "[Network]\nVirtualEthernet=yes\nPort=tcp:1194:1194\nPort=udp:1194:1194" > /etc/systemd/nspawn/antizapret-vpn.nspawn

systemctl enable --now systemd-networkd.service
machinectl enable antizapret-vpn
machinectl start antizapret-vpn
sleep 20
machinectl copy-from antizapret-vpn /root/easy-rsa-ipsec/CLIENT_KEY/antizapret-client-tcp.ovpn /root/antizapret-client-tcp.ovpn

По завершении создания сервера у вас уже будет установлен АнтиЗапрет.

После установки

После успешной установки должен появиться файл antizapret-client-tcp.ovpn. Это ваш конфигурационный файл OpenVPN, который нужно импортировать в программу OpenVPN на компьютере и OpenVPN Connect на Android и iOS.

Если установка выполнялась скриптом, то файл появится в директории, из которой был запущен скрипт. Если вы не меняли директорию, то по-умолчанию это домашняя директория пользователя. Для пользователя root, то это /root, иначе /home/<USERNAME>.

Скопируйте файл antizapret-client-tcp.ovpn с сервера на ваш компьютер, с помощью программы FileZilla (Windows, macOS, Linux) или WinSCP (только для Windows), по протоколу SFTP.

В Linux данный файл можно скачать с сервера командой:

scp <USER>@<PUBLIC_IP>:<PATH_TO_OVPN_FILE> <DEST_PATH>

Удаление

  1. Чтобы удалить контейнер, образ и все связанные файлы выполните:
    wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | \
    COMMAND=uninstall bash
  2. Если при установке было задано другое имя, то выполните:
    wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | \
    COMMAND=uninstall NAME=antizapret bash

Полезные команды

Для входа в контейнер воспользуйтесь командой:

machinectl shell <CONTAINER_NAME>

Команды, которые можно выполнить внутри контейнера АнтиЗапрет.

  1. Обновить сопоставление хостов для проксирования
    LANG=C.UTF-8 /root/antizapret/doall.sh
  2. Очистить кеш Knot Resolver
    echo "cache.clear()" | socat - /run/knot-resolver/control/1

Особенности VPN

Нестандартный способ маршрутизации

В отличие от обычных VPN, осуществляющих перенаправление отдельных IP-адресов или диапазонов средствами маршрутизации ОС, VPN АнтиЗапрета использует маршрутизацию на основе доменных имен, с помощью специального DNS-сервера, созданного для этой цели.

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

У такого подхода есть множество преимуществ:

  • Клиенту устанавливается только один или несколько маршрутов, вместо десятков тысяч маршрутов;
  • Маршрутизируются только заблокированные домены, а не все сайты на заблокированном IP-адресе;
  • Возможность обновления списка заблокированных сайтов без переподключения клиента;
  • Корректная работа с доменами, постоянно меняющими IP-адреса, и с CDN-сервисами;
  • Корректная работа с провайдерами, блокирующими все поддомены заблокированного домена (блокировка всей DNS-зоны). Пример такого провайдера — Yota.

Но есть и минусы:

  • Необходимо использовать только DNS-сервер внутри VPN. С другими DNS-серверами работать не будет.
  • Работает только для заблокированных доменов и программ, использующих доменные имена. Для заблокированных IP-адресов необходимо использовать обычную маршрутизацию.

Схематичное представление:

📱 — Клиент
🖥 — VPN и DNS-сервер
🖧 — Интернет

📱 → rutracker.org? → 🖥
  🖥 → rutracker.org? → 🖧
  🖥 ← 195.82.146.214 ← 🖧
  10.224.0.1 → 195.82.146.214
📱 ← 10.224.0.1 ← 🖥

Обычная способ маршрутизации также применяется, но только для больших диапазонов заблокированных адресов (всего несколько маршрутов).

Намеренное удаление IPv6-адресов

Текущая версия специального DNS-сервера не работает с IPv6 и намеренно удаляет IPv6-адреса (AAAA-записи) из DNS-ответов, чтобы у пользователей, провайдеры которых предоставляют IPv6-связность, работал обход блокировок.

Это не является серьёзным недостатком, так как сайтов, доступных только по IPv6, но не по IPv4, практически не существует.

Корректная поддержка IPv6 запланирована в следующих версиях специального DNS-сервера.

Работа со сторонними DNS-зонами

Контейнер настроен на работу с дополнительными доменными зонами, которые используются некоторыми заблокированными сайтами:

  • OpenNIC (.bbs, .chan, .cyb, .geek, .pirate и другие);
  • EmerDNS (.lib, .emc, .coin, .bazar);
  • Namecoin (.bit).

Техническая поддержка

Техническая поддержка осуществляется на форуме NTC Community: https://ntc.party/c/antizapret-prostovpn-org

About

Пользовательская сборка АнтиЗапрет

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •