feat: add security system with system-wide proxy, DNS protection and encryption

- System-wide proxy: automatic Windows proxy configuration for all apps
- DNS leak protection: force all DNS queries through VPN
- Config encryption: AES-256-GCM encryption for all config files
- File protection: strict access permissions for config directory
- Leak detection: built-in security check system
- Kill Switch: temporarily disabled (will be improved in next version)

Security features:
✓ Automatic system proxy setup
✓ DNS leak protection (optional)
✓ AES-256-GCM config encryption
✓ File and directory protection
✓ Security leak checker
⚠ Kill Switch disabled (caused internet blocking issues)

Emergency recovery scripts included:
- ОТКЛЮЧИТЬ_KILLSWITCH.bat
- EMERGENCY_FIX_INTERNET.bat
- ЕСЛИ_СЛОМАЛСЯ_ИНТЕРНЕТ.txt

Documentation:
- Markdown/SECURITY_GUIDE.md - full security guide
- БЕЗОПАСНОСТЬ_БЫСТРЫЙ_СТАРТ.md - quick start guide
- CHANGELOG_SECURITY.md - detailed changelog
This commit is contained in:
2026-04-12 19:01:24 +06:00
parent 20d24a3639
commit b809e84220
18 changed files with 2063 additions and 31 deletions

285
Markdown/SECURITY_GUIDE.md Normal file
View File

@@ -0,0 +1,285 @@
# 🔒 Руководство по безопасности VPN клиента
## Обзор
VPN клиент теперь включает комплексную систему безопасности для защиты вашей конфиденциальности и предотвращения утечек данных.
## ⚠️ ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ О KILL SWITCH
**Kill Switch ОТКЛЮЧЕН ПО УМОЛЧАНИЮ!**
- Kill Switch может заблокировать весь интернет при неправильном использовании
- Включайте его ТОЛЬКО если понимаете, как он работает
- ВСЕГДА отключайте VPN через меню программы (не закрывайте крестиком)
- Если интернет сломался: запустите файл `ОТКЛЮЧИТЬ_KILLSWITCH.bat`
**Для восстановления интернета:**
1. Запустите `ОТКЛЮЧИТЬ_KILLSWITCH.bat` от имени администратора
2. Или см. файл `ЕСЛИ_СЛОМАЛСЯ_ИНТЕРНЕТ.txt`
## Основные функции безопасности
### 1. 🛡️ Kill Switch (Аварийное отключение)
**⚠️ ОТКЛЮЧЕНО ПО УМОЛЧАНИЮ - включайте только если понимаете риски!**
**Что это?**
Kill Switch автоматически блокирует весь интернет-трафик при разрыве VPN соединения, предотвращая утечку вашего реального IP адреса.
**Как работает:**
- При подключении к VPN создаются правила Windows Firewall
- Блокируется весь исходящий и входящий трафик
- Разрешается только трафик к VPN серверу и через VPN туннель
- При разрыве VPN весь интернет блокируется до восстановления соединения
**⚠️ ВАЖНО:**
- **ВСЕГДА отключайте VPN через меню программы!**
- **НЕ закрывайте программу крестиком при активном Kill Switch!**
- **Если интернет сломался:** запустите `ОТКЛЮЧИТЬ_KILLSWITCH.bat`
**Настройка:**
```
Меню → Безопасность и защита → Настроить Kill Switch → Включить
```
**Восстановление интернета:**
```
Запустите файл: ОТКЛЮЧИТЬ_KILLSWITCH.bat (от имени администратора)
Или см.: ЕСЛИ_СЛОМАЛСЯ_ИНТЕРНЕТ.txt
```
---
### 2. 🌐 Защита от DNS утечек
**Что это?**
Защита DNS гарантирует, что все DNS запросы идут через VPN, а не через DNS провайдера.
**Как работает:**
- Автоматически изменяет системные DNS серверы на безопасные (1.1.1.1, 8.8.8.8)
- Применяется ко всем сетевым интерфейсам
- Очищает DNS кэш для немедленного применения
- Восстанавливает оригинальные DNS при отключении VPN
**Настройка:**
```
Меню → Безопасность и защита → Настроить защиту DNS
```
**Рекомендуемые DNS серверы:**
- Cloudflare: `1.1.1.1`, `1.0.0.1`
- Google: `8.8.8.8`, `8.8.4.4`
- Quad9: `9.9.9.9`, `149.112.112.112`
---
### 3. 🔐 Шифрование конфигураций
**Что это?**
Все конфигурационные файлы (включая пароли и ключи VPN) шифруются с использованием AES-256-GCM.
**Как работает:**
- Использует алгоритм AES-256 в режиме GCM (Galois/Counter Mode)
- Ключ шифрования привязан к вашему компьютеру (hostname + путь к программе)
- Применяется PBKDF2 с 100,000 итераций для усиления ключа
- Каждый файл имеет уникальную соль и nonce
**Настройка:**
```
Меню → Безопасность и защита → Управление шифрованием конфигов
```
**Безопасность:**
- Конфигурации невозможно расшифровать на другом компьютере
- Защита от перебора паролей благодаря PBKDF2
- Аутентифицированное шифрование предотвращает подделку данных
---
### 4. 📁 Защита файлов и директорий
**Что это?**
Устанавливает строгие права доступа к конфигурационным файлам.
**Как работает:**
- Директория `.vpn_client/`: права 0700 (только владелец)
- Конфигурационные файлы: права 0600 (только чтение/запись владельцем)
- Предотвращает доступ других пользователей системы
**Настройка:**
```
Меню → Безопасность и защита → Защитить директорию конфигураций
```
---
### 5. 🌍 Системный прокси для всего ПК
**Что это?**
Автоматическая настройка системного прокси Windows для работы VPN во всех приложениях.
**Как работает:**
- Изменяет настройки прокси в реестре Windows
- Применяется ко всем приложениям, использующим системные настройки
- Использует SOCKS5 прокси на `127.0.0.1:10808`
- Исключает локальные адреса из прокси
**Автоматическая настройка:**
При подключении к VLESS серверу системный прокси настраивается автоматически.
**Ручная настройка:**
1. Откройте: Настройки Windows → Сеть и Интернет → Прокси
2. Включите "Использовать прокси-сервер"
3. Адрес: `127.0.0.1`, Порт: `10808`
4. Тип: SOCKS5
---
## Проверка безопасности
### Проверка утечек
Используйте встроенную функцию проверки:
```
Меню → Безопасность и защита → Проверить утечки
```
Проверяет:
- ✅ DNS утечки
- ✅ Статус Kill Switch
- ✅ Правильность настройки прокси
### Внешние сервисы проверки
После подключения к VPN проверьте:
1. **IP адрес:**
- https://whoer.net
- https://ipleak.net
2. **DNS утечки:**
- https://dnsleaktest.com
- https://www.dnsleaktest.org
3. **WebRTC утечки:**
- https://browserleaks.com/webrtc
---
## Рекомендации по безопасности
### ✅ Обязательно
1. **Всегда включайте Kill Switch** при работе с конфиденциальными данными
2. **Используйте защиту DNS** для предотвращения утечек
3. **Включите шифрование конфигов** для защиты учетных данных
4. **Регулярно проверяйте утечки** через меню безопасности
5. **Используйте надежные VPN серверы** с поддержкой современных протоколов
### ⚠️ Важно
1. **Не отключайте Kill Switch** во время активного VPN соединения
2. **Не делитесь конфигурационными файлами** - они содержат ваши ключи
3. **Проверяйте DNS** после каждого подключения
4. **Используйте HTTPS** сайты для дополнительной защиты
5. **Обновляйте клиент** для получения последних исправлений безопасности
### 🔴 Никогда
1. **Не запускайте VPN без Kill Switch** для критичных задач
2. **Не используйте публичные VPN** для конфиденциальных данных
3. **Не игнорируйте предупреждения** о утечках
4. **Не отключайте шифрование** без веской причины
---
## Устранение проблем
### Kill Switch не отключается
```bash
# Вручную удалите правила файрвола
netsh advfirewall firewall delete rule name=all dir=out
netsh advfirewall firewall delete rule name=all dir=in
```
### DNS не восстанавливаются
```bash
# Восстановите автоматическое получение DNS
netsh interface ip set dns "Ethernet" dhcp
netsh interface ip set dns "Wi-Fi" dhcp
ipconfig /flushdns
```
### Системный прокси не работает
1. Проверьте настройки: `Настройки → Сеть и Интернет → Прокси`
2. Убедитесь, что VPN подключен
3. Перезапустите браузер/приложение
4. Проверьте, что порт 10808 не занят
---
## Технические детали
### Алгоритмы шифрования
- **Алгоритм:** AES-256-GCM
- **Деривация ключа:** PBKDF2-SHA256
- **Итерации:** 100,000
- **Размер ключа:** 256 бит
- **Размер соли:** 256 бит
### Правила файрвола
Kill Switch создает следующие правила:
- `VPN_KillSwitch_Block_Out` - блокировка исходящего трафика
- `VPN_KillSwitch_Block_In` - блокировка входящего трафика
- `VPN_KillSwitch_Allow_Localhost` - разрешение локального трафика
- `VPN_KillSwitch_Allow_<IP>` - разрешение трафика к VPN серверу
### Изменения реестра
Системный прокси изменяет:
```
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings
- ProxyEnable: 1
- ProxyServer: socks=127.0.0.1:10808
- ProxyOverride: <local>;localhost;127.*;10.*;172.16.*;172.31.*;192.168.*
```
---
## FAQ
**Q: Безопасно ли хранить конфигурации на диске?**
A: Да, при включенном шифровании конфигурации защищены AES-256 и привязаны к вашему компьютеру.
**Q: Что делать если Kill Switch заблокировал интернет?**
A: Запустите клиент и отключите Kill Switch через меню безопасности, или используйте команды из раздела "Устранение проблем".
**Q: Можно ли использовать VPN без системного прокси?**
A: Да, но тогда VPN будет работать только в приложениях с ручной настройкой SOCKS5 прокси.
**Q: Защищает ли Kill Switch от утечек WebRTC?**
A: Нет, для защиты от WebRTC утечек используйте расширения браузера или отключите WebRTC.
**Q: Как проверить, что VPN работает?**
A: Используйте встроенную проверку утечек или внешние сервисы типа whoer.net.
---
## Поддержка
При возникновении проблем с безопасностью:
1. Проверьте логи в папке `logs/`
2. Используйте встроенную проверку утечек
3. Убедитесь, что у вас права администратора
4. Проверьте настройки файрвола Windows
---
**Версия документа:** 1.0
**Дата обновления:** 2026-04-12