Контейнер и виртуальная машина для возможного предстоящего отключения интернета в Беларуси
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 в том числе). Минус только в сложности настройки и только "домашнее" использование, в город с таким решением не выйти.