Контейнер и виртуальная машина для возможного предстоящего отключения интернета в Беларуси

Контейнер и виртуальная машина для возможного предстоящего отключения интернета в Беларуси

OACfucker

Описание

Змагары из AntiZapret сделали для нас серверный контейнер и клиентскую виртуальную машину для продвинутых пользователей, для применения в случае серьезной цензуры интернета.

Образ маскирует интернет-трафик под скачивание почты с Gmail (протокол IMAP с шифрованием, TLS-запросы на imap.gmail.com, порт 993) по умолчанию, также есть режим маскировки под DNS-запросы на фиктивный домен int.loc, с прямым подключением к серверу по порту DNS 53. Почта и DNS — наиболее «живучие» протоколы, которые будут блокироваться в последнюю очередь.

Внимание! Клиентская виртуальная машина предназначена для временного использования в случае цензурирования интернета, в сети с домашним маршрутизатором. Она маршрутизирует весь трафик, в ней нет фильтров по интерфейсам или IP-диапазонам.

Для технически неподкованных пользователей, без опыта работы с Linux, рекомендуется использовать Outline, установив его на собственный сервер(мануал по его настройке будет). Он гораздо проще в установке и использовании, но, с большой вероятностью, не сможет обеспечить доступ в интернет в случае введения действительно жесткой интернет-цензуры.
Статья о том как ставить Outline лежит ТУТ.

Установка

Файлы здесь:

https://fuckoatimages.blob.core.windows.net/public-images/CenVM.ova

https://fuckoatimages.blob.core.windows.net/public-images/rootfs.tar.xz

rootfs.tar.xz — системный серверный контейнер, может быть запущен в systemd-nspawn или LXD. Содержит Cloak, dnstt в качестве фронт-энда, v2ray в качестве бек-енда.

Экспортирует порты 53 (5300 в контейнере, нужно делать маппинг 53 → 5300, см. пример ниже) и 993.

Пример для systemd. Предварительно загрузить rootfs.tar.xz на сервер, далее выполнить:

apt -y install systemd-container
machinectl import-tar rootfs.tar.xz cen
mkdir -p /etc/systemd/nspawn/
echo -e "[Network]\nVirtualEthernet=yes\nPort=tcp:993\nPort=udp:53:5300\nPort=tcp:53:5300" > /etc/systemd/nspawn/cen.nspawn
systemctl enable --now systemd-networkd.service
machinectl enable cen
machinectl start cen

sleep 10
machinectl copy-from cen /root/cloak_adminuid.txt cloak_adminuid.txt
machinectl copy-from cen /root/cloak_pubkey.txt cloak_pubkey.txt
machinectl copy-from cen /root/dnstt-server.pub dnstt-server.pub
machinectl copy-from cen /root/v2ray_uuid.txt v2ray_uuid.txt

Дополнительная настройка не требуется.

CenVM.ova — клиентский образ виртуальной машины для VirtualBox и других систем виртуализации. Представляет собой программный маршрутизатор, который нужно запустить в виртуальной машине, настроить, и далее использовать IP-адрес виртуальной машины в качестве шлюза и DNS-сервера для всех необходимых устройств в домашней сети.

 1. Установите VirtualBox, скачайте и импортируйте образ CenVM.ova.

 2. Убедитесь, что в настройках виртуальной машины, во вкладке Network у Adapter 1 указан сетевой интерфейс, через который вы получаете интернет на компьютер, а у Adapter 2 указан внутренний сетевой интерфейс VirtualBox (host-only adapter).

 3. Запустите виртуальную машину.

 4. Войдите под именем root, пароль 1.

 5. Скачайте файлы cloak_adminuid.txt, cloak_pubkey.txt, dnstt-server.pub, v2ray_uuid.txt с удалённого сервера в директорию /root, например, с помощью sftp:

sftp root@1.2.3.4
get cloak_adminuid.txt
get cloak_pubkey.txt
get dnstt-server.pub
get v2ray_uuid.txt

 6. Пропишите IP-адрес сервера в файле /usr/local/etc/config.sh, например, с помощью nano.

 7. Перезагрузите виртуальную машину.

 8. Настройте компьютер на использование IP-адреса виртуальной машины в качестве шлюза и DNS-сервера. Посмотреть IP-адрес виртуальной машины можно командой ip -br a, вам нужен адрес вида 192.168.56.xxx.


По умолчанию виртуальная машина настроена на маскировку под imap.gmail.com, порт 993. Чтобы использовать маскировку под DNS, замените порт 6001 на 6002 в файле /usr/local/etc/v2ray.json.template и перезагрузите машину.

  "outbounds": [{
    "protocol": "vmess",
    "settings": {
      "vnext": [{
        "address": "127.0.0.1",
        "port": 6001,  // ←←← ВОТ ЭТОТ
        "users": [{ "id": "==UUID==", "alterId": 64 }],
        "domainStrategy": "UseIP"
      }]
    }
  }],

Итог

Действительно мощное решение по обходу возможных блокировок(и DPI в том числе). Минус только в сложности настройки и только "домашнее" использование, в город с таким решением не выйти.

Report Page