diff --git a/WG b/WG new file mode 100644 index 0000000..aafab9a --- /dev/null +++ b/WG @@ -0,0 +1,161 @@ + 🚀 Быстрый старт + +### 1️⃣ Установка Docker (если не установлен) + +```bash +# Для Ubuntu/Debian +curl -fsSL https://get.docker.com -o get-docker.sh +sudo sh get-docker.sh +sudo usermod -aG docker $USER && newgrp docker +``` + +### 2️⃣ Создание рабочей директории + +```bash +mkdir -p ~/wg-easy && cd ~/wg-easy +``` + +### 3️⃣ Запуск контейнера + +```bash +docker run -d \ + --name=wg-easy \ + -e WG_HOST=ВАШ_ПУБЛИЧНЫЙ_IP \ + -e PASSWORD_HASH='$(docker run --rm ghcr.io/wg-easy/wg-easy password-hash ВАШ_ПАРОЛЬ)' \ + -e WG_DEFAULT_DNS=8.8.8.8,8.8.4.4 \ + -v ~/wg-easy//etc/wireguard \ + -p 51820:51820/udp \ + -p 51821:51821/tcp \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_MODULE \ + --sysctl="net.ipv4.conf.all.src_valid_mark=1" \ + --sysctl="net.ipv4.ip_forward=1" \ + --restart unless-stopped \ + ghcr.io/wg-easy/wg-easy +``` + +> ⚠️ **Важно:** Замените `ВАШ_ПУБЛИЧНЫЙ_IP` на реальный внешний IP вашего сервера. + +--- + +## ⚙️ Настройка окружения + +### 🔐 Генерация хеша пароля + +```bash +docker run --rm ghcr.io/wg-easy/wg-easy password-hash ваш_надёжный_пароль +``` + +Скопируйте полученный хеш и подставьте в параметр `PASSWORD_HASH`. + +### 🌐 Переменные окружения + +| Переменная | Обязательная | Описание | Пример | +|------------|--------------|----------|--------| +| `WG_HOST` | ✅ | Публичный IP сервера | `193.124.57.125` | +| `PASSWORD_HASH` | ✅ | Bcrypt-хеш пароля для веб-интерфейса | `$2a$12$...` | +| `WG_DEFAULT_DNS` | ❌ | DNS-серверы для клиентов | `8.8.8.8,8.8.4.4` | +| `WG_MTU` | ❌ | MTU для WireGuard-интерфейса | `1420` | +| `WG_ALLOWED_IPS` | ❌ | Разрешённые подсети | `192.168.1.0/24` | +| `WG_PERSISTENT_KEEPALIVE` | ❌ | Интервал keepalive (сек) | `25` | + +> 💡 Полный список переменных: [wg-easy Environment Variables](https://github.com/wg-easy/wg-easy#environment-variables) + +--- + +## 🎛️ Управление контейнером + +```bash +# 📊 Проверка статуса +docker ps | grep wg-easy + +# 📋 Просмотр логов +docker logs wg-easy +docker logs -f wg-easy # в реальном времени + +# 🔄 Перезапуск +docker restart wg-easy + +# ⏹️ Остановка +docker stop wg-easy + +# ▶️ Запуск +docker start wg-easy + +# 🗑️ Удаление контейнера (данные в volume сохранятся) +docker rm -f wg-easy + +# 🔄 Обновление образа +docker pull ghcr.io/wg-easy/wg-easy +docker stop wg-easy && docker rm wg-easy +# Затем повторите команду запуска из раздела "Быстрый старт" +``` + +### 📁 Расположение данных + +``` +~/wg-easy/data/ +├── wg0.conf # Конфигурация сервера WireGuard +└── clients/ # Конфигурации клиентов (.conf файлы) +``` + +> 💾 Регулярно делайте бэкап этой директории! + +--- + +## 📱 Подключение клиентов + +### Через веб-интерфейс + +1. Откройте в браузере: `http://ВАШ_IP:51821` +2. Введите пароль, указанный при установке +3. Нажмите **+ New Client** +4. Выберите способ получения конфига: + - 📥 **Download** — скачать файл `.conf` + - 📷 **QR Code** — отсканировать камерой телефона + +### Импорт в клиент WireGuard + +| Платформа | Инструкция | +|-----------|------------| +| **Android** | Установите приложение [WireGuard](https://play.google.com/store/apps/details?id=com.wireguard.android) → «+» → «Импорт из файла/QR» | +| **iOS** | Установите [WireGuard](https://apps.apple.com/app/wireguard/id1441195209) → «+» → «Сканировать QR» или «Импортировать» | +| **Windows** | [Скачать клиент](https://www.wireguard.com/install/) → «Import tunnel(s) from file» | +| **macOS/Linux** | Установите `wireguard-tools`, скопируйте `.conf` в `~/.wireguard/`, запустите `wg-quick up wg0` | + +--- + +## 🔒 Безопасность + +### ✅ Рекомендации + +- Используйте **надёжный пароль** для веб-интерфейса +- Настройте **Fail2Ban** для защиты от брутфорса: + ```bash + sudo apt install fail2ban -y + ``` +- Ограничьте доступ к порту `51821` по IP (если возможно): + ```bash + # Пример для UFW (разрешить только с доверенного IP) + sudo ufw allow from 203.0.113.10 to any port 51821 proto tcp + ``` +- Регулярно обновляйте Docker-образ: + ```bash + watchtower или ручной docker pull + restart + ``` + +### 🛡️ Настройка фаервола + +```bash +# UFW (Ubuntu/Debian) +sudo ufw allow 51820/udp # WireGuard трафик +sudo ufw allow 51821/tcp # Веб-интерфейс (опционально ограничить по IP) +sudo ufw enable + +# firewalld (CentOS/RHEL) +sudo firewall-cmd --add-port=51820/udp --permanent +sudo firewall-cmd --add-port=51821/tcp --permanent +sudo firewall-cmd --reload +``` + +---