You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Сейчас используются стандартные порты для сервисов, что упрощает блокировку отдельных сервисов. Более того, по набору открытых портов можно довольно точно понять, что это сервер для раздачи туннелей под управлением VpnBot;
Подсеть 10.0.1.0/24 и подобные мало того, что пересекутся при наличии нескольких серверов с VpnBot, так и могут пересечься с локальными подсетями провайдеров.
Существующие решения
Сейчас предлагается вносить изменённые переменные окружения в файл override.env, но некоторые из этих параметров вшиты в другие конфигурационные файлы (в том числе порт ss в конфигурацию nginx). А маршруты до подсетей есть и в scripts/start_ad.sh. Всё это сильно усложняет рандомизацию портов и всех сетей.
Предлагаемые решения
По-хорошему бы убрать некоторые depends из docker-compose.yaml и доработать VpnBot так, чтобы лишние сервисы можно было полностью не запускать (это позволит боту работать на серверах с 512 мбайт оперативы без подкачки);
Нужен скрипт, который бы позволял легко и удобно менять порты и подсети сервисов на случайные во избежание лёгкого детекта раздающего сервера.
Вот некоторый набросок, который желательно сделать более устойчивым к непредвиденным ситуациям:
Скрипт рандомизации портов и подсетей сервисов VpnBot
# Не забыть до установки обновить систему: sudo apt update && sudo apt upgrade -y && sudo apt autoremove --purge -y && reboot# TODO: Добавить проверки на то, что всё идёт нормально (на пустые значения старых портов, их доступность и прочее)
VPNBOT_TELEGRAM_BOT_KEY="YOUR_TELEGRAM_BOT_KEY";
VPNBOT_WG_NET_NEW=$(shuf -i 100-254 -n 1);
VPNBOT_TZ_NEW="Europe/Moscow";# Europe/Samara
VPNBOT_WG_NET_PREFIX_NEW="10.$VPNBOT_WG_NET_NEW.1";# 10.0.1 # Дабы не было пересечения с локальными подсетями провайдера по типу 10.x.0.0/16 и внутренними адресами других туннелей
VPNBOT_WG_PORT_NEW=$(shuf -i 49152-65535 -n 1);# 51820;
VPNBOT_WG1_NET_PREFIX_NEW="10.$VPNBOT_WG_NET_NEW.3";# 10.0.3 # TODO: Что с oc на 10.0.2.0/24?
VPNBOT_WG1_PORT_NEW=$((VPNBOT_WG_PORT_NEW +1));# 51820
VPNBOT_SS_PORT_NEW=$(shuf -i 2000-10000 -n 1);# 8388
VPNBOT_TG_PORT_NEW=$(shuf -i 2000-10000 -n 1);# 4443
mkdir -p ~/scripts &&cd~/scripts &&
wget -O- https://raw.githubusercontent.com/mercurykd/vpnbot/master/scripts/init.sh | sh -s "$VPNBOT_TELEGRAM_BOT_KEY"&&
\
cd vpnbot &&
cp .env override.env &&
\
\
VPNBOT_TZ_OLD=$(grep -P '^TZ=' override.env | sed -E 's~^TZ=(.*)$~\1~')&&
VPNBOT_WG_NET_PREFIX_OLD=$(grep -P '^WGADDRESS=' override.env | sed -E 's~^WGADDRESS=([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+/24$~\1~')&&
VPNBOT_WG_PORT_OLD=$(grep -P '^WGPORT=' override.env | sed -E 's~^WGPORT=([0-9]+)$~\1~')&&
VPNBOT_WG1_NET_PREFIX_OLD=$(grep -P '^WG1ADDRESS=' override.env | sed -E 's~^WG1ADDRESS=([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+/24$~\1~')&&
VPNBOT_WG1_PORT_OLD=$(grep -P '^WG1PORT=' override.env | sed -E 's~^WG1PORT=([0-9]+)$~\1~')&&
VPNBOT_SS_PORT_OLD=$(grep -P '^SSPORT=' override.env | sed -E 's~^SSPORT=([0-9]+)$~\1~')&&
VPNBOT_TG_PORT_OLD=$(grep -P '^TGPORT=' override.env | sed -E 's~^TGPORT=([0-9]+)$~\1~')&&
\
sed -Ei.bak1 "s~$VPNBOT_TZ_OLD~$VPNBOT_TZ_NEW~g" override.env &&
sed -Ei.bak2 "s~(^|[^0-9])$VPNBOT_WG_NET_PREFIX_OLD\.([0-9]+)([^0-9]|$)~\1$VPNBOT_WG_NET_PREFIX_NEW\.\2\3~g" override.env config/* scripts/start_ad.sh &&
sed -Ei.bak3 "s~(^|[^0-9])$VPNBOT_WG_PORT_OLD([^0-9]|$)~\1$VPNBOT_WG_PORT_NEW\2~g" override.env config/*&&
sed -Ei.bak4 "s~(^|[^0-9])$VPNBOT_WG1_NET_PREFIX_OLD\.([0-9]+)([^0-9]|$)~\1$VPNBOT_WG1_NET_PREFIX_NEW\.\2\3~g" override.env config/* scripts/start_ad.sh &&
sed -Ei.bak5 "s~(^|[^0-9])$VPNBOT_WG1_PORT_OLD([^0-9]|$)~\1$VPNBOT_WG1_PORT_NEW\2~g" override.env config/*&&
sed -Ei.bak6 "s~(^|[^0-9])$VPNBOT_SS_PORT_OLD([^0-9]|$)~\1$VPNBOT_SS_PORT_NEW\2~g" override.env config/*&&
sed -Ei.bak7 "s~(^|[^0-9])$VPNBOT_TG_PORT_OLD([^0-9]|$)~\1$VPNBOT_TG_PORT_NEW\2~g" override.env config/*&&
\
\
IP=$(curl https://ipinfo.io/ip) VER=$(git describe --tags) docker compose --env-file ./.env --env-file ./override.env up -d --force-recreate
# После полной проверки работоспособности можно удалить резервные копии изменённых файлов: find -name '*.bak?' -delete
The text was updated successfully, but these errors were encountered:
Описание проблем
Существующие решения
Сейчас предлагается вносить изменённые переменные окружения в файл override.env, но некоторые из этих параметров вшиты в другие конфигурационные файлы (в том числе порт ss в конфигурацию nginx). А маршруты до подсетей есть и в scripts/start_ad.sh. Всё это сильно усложняет рандомизацию портов и всех сетей.
Предлагаемые решения
Вот некоторый набросок, который желательно сделать более устойчивым к непредвиденным ситуациям:
Скрипт рандомизации портов и подсетей сервисов VpnBot
The text was updated successfully, but these errors were encountered: