From 79e1761c1f476e2608ad2c93ff024f829509dce5 Mon Sep 17 00:00:00 2001 From: "vladimir.kuznetsov" Date: Thu, 19 Oct 2023 01:14:09 +0500 Subject: [PATCH] added generation of random values for awg parameters --- client/core/servercontroller.cpp | 37 +++++++-------------- client/translations/amneziavpn_ru.ts | 34 ++++++++++++------- client/translations/amneziavpn_zh_CN.ts | 34 ++++++++++++------- client/ui/controllers/installController.cpp | 31 +++++++++++++++++ 4 files changed, 87 insertions(+), 49 deletions(-) diff --git a/client/core/servercontroller.cpp b/client/core/servercontroller.cpp index 606917595..443cd5a32 100644 --- a/client/core/servercontroller.cpp +++ b/client/core/servercontroller.cpp @@ -337,7 +337,7 @@ bool ServerController::isReinstallContainerRequired(DockerContainer container, c != newProtoConfig.value(config_key::port).toString(protocols::shadowsocks::defaultPort)) return true; } - + if (container == DockerContainer::Awg) { return true; } @@ -490,8 +490,7 @@ ServerController::Vars ServerController::genVarsForScript(const ServerCredential const QJsonObject &cloakConfig = config.value(ProtocolProps::protoToString(Proto::Cloak)).toObject(); const QJsonObject &ssConfig = config.value(ProtocolProps::protoToString(Proto::ShadowSocks)).toObject(); const QJsonObject &wireguarConfig = config.value(ProtocolProps::protoToString(Proto::WireGuard)).toObject(); - const QJsonObject &amneziaWireguarConfig = - config.value(ProtocolProps::protoToString(Proto::Awg)).toObject(); + const QJsonObject &amneziaWireguarConfig = config.value(ProtocolProps::protoToString(Proto::Awg)).toObject(); const QJsonObject &sftpConfig = config.value(ProtocolProps::protoToString(Proto::Sftp)).toObject(); Vars vars; @@ -591,33 +590,21 @@ ServerController::Vars ServerController::genVarsForScript(const ServerCredential // Amnezia wireguard vars vars.append({ { "$AWG_SERVER_PORT", amneziaWireguarConfig.value(config_key::port).toString(protocols::awg::defaultPort) } }); - vars.append({ { "$JUNK_PACKET_COUNT", - amneziaWireguarConfig.value(config_key::junkPacketCount) - .toString(protocols::awg::defaultJunkPacketCount) } }); - vars.append({ { "$JUNK_PACKET_MIN_SIZE", - amneziaWireguarConfig.value(config_key::junkPacketMinSize) - .toString(protocols::awg::defaultJunkPacketMinSize) } }); - vars.append({ { "$JUNK_PACKET_MAX_SIZE", - amneziaWireguarConfig.value(config_key::junkPacketMaxSize) - .toString(protocols::awg::defaultJunkPacketMaxSize) } }); - vars.append({ { "$INIT_PACKET_JUNK_SIZE", - amneziaWireguarConfig.value(config_key::initPacketJunkSize) - .toString(protocols::awg::defaultInitPacketJunkSize) } }); + + vars.append({ { "$JUNK_PACKET_COUNT", amneziaWireguarConfig.value(config_key::junkPacketCount).toString() } }); + vars.append({ { "$JUNK_PACKET_MIN_SIZE", amneziaWireguarConfig.value(config_key::junkPacketMinSize).toString() } }); + vars.append({ { "$JUNK_PACKET_MAX_SIZE", amneziaWireguarConfig.value(config_key::junkPacketMaxSize).toString() } }); + vars.append({ { "$INIT_PACKET_JUNK_SIZE", amneziaWireguarConfig.value(config_key::initPacketJunkSize).toString() } }); vars.append({ { "$RESPONSE_PACKET_JUNK_SIZE", - amneziaWireguarConfig.value(config_key::responsePacketJunkSize) - .toString(protocols::awg::defaultResponsePacketJunkSize) } }); + amneziaWireguarConfig.value(config_key::responsePacketJunkSize).toString() } }); vars.append({ { "$INIT_PACKET_MAGIC_HEADER", - amneziaWireguarConfig.value(config_key::initPacketMagicHeader) - .toString(protocols::awg::defaultInitPacketMagicHeader) } }); + amneziaWireguarConfig.value(config_key::initPacketMagicHeader).toString() } }); vars.append({ { "$RESPONSE_PACKET_MAGIC_HEADER", - amneziaWireguarConfig.value(config_key::responsePacketMagicHeader) - .toString(protocols::awg::defaultResponsePacketMagicHeader) } }); + amneziaWireguarConfig.value(config_key::responsePacketMagicHeader).toString() } }); vars.append({ { "$UNDERLOAD_PACKET_MAGIC_HEADER", - amneziaWireguarConfig.value(config_key::underloadPacketMagicHeader) - .toString(protocols::awg::defaultUnderloadPacketMagicHeader) } }); + amneziaWireguarConfig.value(config_key::underloadPacketMagicHeader).toString() } }); vars.append({ { "$TRANSPORT_PACKET_MAGIC_HEADER", - amneziaWireguarConfig.value(config_key::transportPacketMagicHeader) - .toString(protocols::awg::defaultTransportPacketMagicHeader) } }); + amneziaWireguarConfig.value(config_key::transportPacketMagicHeader).toString() } }); QString serverIp = Utils::getIPAddress(credentials.hostName); if (!serverIp.isEmpty()) { diff --git a/client/translations/amneziavpn_ru.ts b/client/translations/amneziavpn_ru.ts index a26758b75..733c374d0 100644 --- a/client/translations/amneziavpn_ru.ts +++ b/client/translations/amneziavpn_ru.ts @@ -143,58 +143,58 @@ InstallController - - + + %1 installed successfully. %1 успешно установлен. - - + + %1 is already installed on the server. %1 уже установлен на сервер. - + Added containers that were already installed on the server В приложение добавлены обнаруженные на сервере протоклы и сервисы - + Already installed containers were found on the server. All installed containers have been added to the application На сервере обнаружены установленные протоколы и сервисы, все они добавлены в приложение - + Settings updated successfully Настройки успешно обновлены - + Server '%1' was removed Сервер '%1' был удален - + All containers from server '%1' have been removed Все протоклы и сервисы были удалены с сервера '%1' - + %1 has been removed from the server '%2' %1 был удален с сервера '%2' - + Please login as the user Пожалуйста, войдите в систему от имени пользователя - + Server added successfully Сервер успешно добавлен @@ -2700,6 +2700,16 @@ This means that AmneziaWG keeps the fast performance of the original while addin error 0x%1: %2 error 0x%1: %2 + + + WireGuard Configuration Highlighter + + + + + &Randomize colors + + SelectLanguageDrawer diff --git a/client/translations/amneziavpn_zh_CN.ts b/client/translations/amneziavpn_zh_CN.ts index a10fb4493..64faa6f44 100644 --- a/client/translations/amneziavpn_zh_CN.ts +++ b/client/translations/amneziavpn_zh_CN.ts @@ -162,47 +162,47 @@ 已安装在服务器上 - - + + %1 installed successfully. %1 安装成功。 - - + + %1 is already installed on the server. 服务器上已经安装 %1。 - + Added containers that were already installed on the server 添加已安装在服务器上的容器 - + Already installed containers were found on the server. All installed containers have been added to the application 在服务上发现已经安装协议并添加至应用 - + Settings updated successfully 配置更新成功 - + Server '%1' was removed 已移除服务器 '%1' - + All containers from server '%1' have been removed 服务器 '%1' 的所有容器已移除 - + %1 has been removed from the server '%2' %1 已从服务器 '%2' 上移除 @@ -223,12 +223,12 @@ Already installed containers were found on the server. All installed containers 协议已从 - + Please login as the user 请以用户身份登录 - + Server added successfully 增加服务器成功 @@ -2839,6 +2839,16 @@ While it offers a blend of security, stability, and speed, it's essential t error 0x%1: %2 错误 0x%1: %2 + + + WireGuard Configuration Highlighter + + + + + &Randomize colors + + SelectLanguageDrawer diff --git a/client/ui/controllers/installController.cpp b/client/ui/controllers/installController.cpp index db2f94097..8efe368b8 100644 --- a/client/ui/controllers/installController.cpp +++ b/client/ui/controllers/installController.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "core/errorstrings.h" #include "core/servercontroller.h" @@ -73,6 +74,36 @@ void InstallController::install(DockerContainer container, int port, TransportPr containerConfig.insert(config_key::transport_proto, ProtocolProps::transportProtoToString(transportProto, protocol)); + if (container == DockerContainer::Awg) { + QString defaultJunkPacketCount = QString::number(QRandomGenerator::global()->bounded(3, 10)); + QString defaultJunkPacketMinSize = QString::number(50); + QString defaultJunkPacketMaxSize = QString::number(1000); + QString defaultInitPacketJunkSize = QString::number(QRandomGenerator::global()->bounded(15, 150)); + QString defaultResponsePacketJunkSize = QString::number(QRandomGenerator::global()->bounded(15, 150)); + + QSet headersValue; + while (headersValue.size() != 4) { + headersValue.insert(QString::number(QRandomGenerator::global()->bounded(1, std::numeric_limits::max()))); + } + + auto headersValueList = headersValue.values(); + + QString defaultInitPacketMagicHeader = headersValueList.at(0); + QString defaultResponsePacketMagicHeader = headersValueList.at(1); + QString defaultUnderloadPacketMagicHeader = headersValueList.at(2); + QString defaultTransportPacketMagicHeader = headersValueList.at(3); + + containerConfig[config_key::junkPacketCount] = defaultJunkPacketCount; + containerConfig[config_key::junkPacketMinSize] = defaultJunkPacketMinSize; + containerConfig[config_key::junkPacketMaxSize] = defaultJunkPacketMaxSize; + containerConfig[config_key::initPacketJunkSize] = defaultInitPacketJunkSize; + containerConfig[config_key::responsePacketJunkSize] = defaultResponsePacketJunkSize; + containerConfig[config_key::initPacketMagicHeader] = defaultInitPacketMagicHeader; + containerConfig[config_key::responsePacketMagicHeader] = defaultResponsePacketMagicHeader; + containerConfig[config_key::underloadPacketMagicHeader] = defaultUnderloadPacketMagicHeader; + containerConfig[config_key::transportPacketMagicHeader] = defaultTransportPacketMagicHeader; + } + if (container == DockerContainer::Sftp) { containerConfig.insert(config_key::userName, protocols::sftp::defaultUserName); containerConfig.insert(config_key::password, Utils::getRandomString(10));