212 lines
9.0 KiB
Markdown
212 lines
9.0 KiB
Markdown
# 04. Сеть и доступ
|
||
|
||
## Топология
|
||
|
||
Инфраструктура объединяет устройства в локальной подсети `192.168.1.0/24`. Доступ из внешней сети осуществляется через маршрутизатор TP-Link с белым IP-адресом `188.73.191.202`, на который делегирован домен `zailon.ru`. Для удалённого подключения к внутренним ресурсам используется OpenVPN и OlimpVPN (VLESS).
|
||
|
||
```mermaid
|
||
graph TD
|
||
Internet(Интернет) --> Router(Роутер TP-Link)
|
||
Router --> LAN(Локальная сеть 192.168.1.0/24)
|
||
Router -->|Внешний IP 188.73.191.202| Domain(zailon.ru)
|
||
|
||
LAN --> Proxmox(Proxmox Host 192.168.1.200)
|
||
Proxmox --> VM1(LXC / ВМ 201-213)
|
||
|
||
Router -->|VPN| OlimpVPN[OlimpVPN 2.27.50.20]
|
||
OlimpVPN -->|VLESS:2054| LAN
|
||
```
|
||
|
||
*Все виртуальные машины и контейнеры подключены к локальной сети через мост vmbr0.*
|
||
|
||
---
|
||
|
||
## Маршрутизатор (TP-Link)
|
||
|
||
- **Модель**: TP-Link (предположительно Archer C6/A6 или аналогичный)
|
||
- **Локальный IP**: 192.168.1.1
|
||
- **Внешний IP**: 188.73.191.202 (статический)
|
||
|
||
### Перенаправление портов (Port Forwarding)
|
||
|
||
| Имя сервиса | Внешний порт | Внутренний порт | IP устройства | Протокол | Назначение |
|
||
|-------------|--------------|-----------------|---------------|----------|------------|
|
||
| snikket | 3478 | 3478 | 192.168.1.206 | Все | XMPP / STUN |
|
||
| snikket | 50000-50100 | 50000-50100 | 192.168.1.206 | UDP | XMPP медиа |
|
||
| snikket | 5222 | 5222 | 192.168.1.206 | TCP | XMPP клиенты |
|
||
| snikket | 5349 | 5349 | 192.168.1.206 | TCP | XMPP TLS |
|
||
| Enshrouded | 15636 | 15636 | 192.168.1.212 | Все | Игровой сервер |
|
||
| Mumble | 45131 | 45131 | 192.168.1.206 | Все | Голосовой чат |
|
||
| virsing | 27015-27016 | 27015-27016 | 192.168.1.207 | Все | Игровой сервер |
|
||
| Virsing | 9876-9877 | 9876-9877 | 192.168.1.207 | Все | Игровой сервер |
|
||
| SOTH | 9700 | 9700 | 192.168.1.207 | UDP | Игровой сервер |
|
||
| SOTH | 8766 | 8766 | 192.168.1.207 | UDP | Игровой сервер |
|
||
| valheim | 2456-2458 | 2456-2458 | 192.168.1.207 | Все | Valheim |
|
||
| HTTPS | 443 | 443 | 192.168.1.201 | Все | Nginx Proxy Manager |
|
||
| HTTP | 80 | 80 | 192.168.1.201 | Все | Nginx Proxy Manager (редирект) |
|
||
|
||
> **Примечание**: некоторые порты (например, 15636, 27015-27016, 9876-9877) ведут на остановленные ВМ (212, 207) и могут быть закрыты.
|
||
|
||
---
|
||
|
||
## VPN-сервисы
|
||
|
||
### OpenVPN (домашний)
|
||
|
||
На роутере включён OpenVPN-сервер с настройками:
|
||
- **Тип сервиса**: UDP
|
||
- **Порт**: 1194
|
||
- **VPN-подсеть**: 192.168.45.0/24
|
||
- **Клиентский доступ**: только домашняя сеть (192.168.1.0/24)
|
||
|
||
Используется для удалённого подключения к домашней сети с мобильных устройств и ноутбуков.
|
||
|
||
### OlimpVPN (VLESS, внешний сервер)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| **Сервер** | 2.27.50.20 (Финляндия) |
|
||
| **Домен** | charon.zailon.ru |
|
||
| **Протокол** | VLESS + Reality + XHTTP |
|
||
| **Порт** | 2054 |
|
||
| **Панель управления** | https://charon.zailon.ru:45131/olimp-styx/ |
|
||
| **URI подписки** | /charon-cerberus/ |
|
||
|
||
#### Конфигурация inbound
|
||
|
||
```yaml
|
||
Название: OlimpVpn
|
||
Протокол: VLESS
|
||
Порт: 2054
|
||
Транспорт: XHTTP
|
||
Безопасность: Reality
|
||
|
||
Reality параметры:
|
||
Target: cloud.zailon.ru:443
|
||
SNI: cloud.zailon.ru
|
||
uTLS: chrome
|
||
Public Key: TOyddQCTdSpycmO20uiLOqMABuKabpwVhw57tWmvJws
|
||
Short IDs: 174fc0, 568a8044d80a, b211, ...
|
||
SpiderX: /
|
||
|
||
XHTTP параметры:
|
||
Path: /remote.php/dav/upload
|
||
Mode: stream-one
|
||
Padding Bytes: 100-1000
|
||
```
|
||
|
||
#### Подключение клиентов
|
||
|
||
Формат ссылки VLESS:
|
||
```
|
||
vless://UUID@2.27.50.20:2054?type=xhttp&encryption=none&path=%2Fremote.php%2Fdav%2Fupload&security=reality&pbk=PUBLIC_KEY&fp=chrome&sni=cloud.zailon.ru&sid=SHORT_ID&sp=%2F#ClientName
|
||
```
|
||
|
||
Автоматическая подписка:
|
||
```
|
||
https://charon.zailon.ru:45131/charon-cerber/CLIENT_ID
|
||
```
|
||
|
||
> **Примечание**: подробная инструкция по установке и управлению — в [документации OlimpVPN](04b-olimpvpn.md).
|
||
|
||
---
|
||
|
||
## DNS
|
||
|
||
Домен `zailon.ru` делегирован на внешний IP `188.73.191.202`. Все поддомены `*.zailon.ru` также указывают на этот IP через записи типа A.
|
||
|
||
| Поддомен | Назначение | Целевой хост |
|
||
|----------|------------|--------------|
|
||
| `charon.zailon.ru` | Панель OlimpVPN | 2.27.50.20 (VPS) |
|
||
| `nc.zailon.ru` | Nextcloud | 188.73.191.202 → 192.168.1.201 |
|
||
| `cloud.zailon.ru` | Reality SNI / Nextcloud | 188.73.191.202 → 192.168.1.201 |
|
||
| `*.zailon.ru` | Wildcard для сервисов | 188.73.191.202 |
|
||
|
||
DNS-серверы:
|
||
- Внешние: стандартные провайдера (или публичные, например 8.8.8.8)
|
||
- Локально: системный resolver на каждом хосте (127.0.0.53)
|
||
|
||
---
|
||
|
||
## Локальная сеть
|
||
|
||
- **Подсеть**: 192.168.1.0/24
|
||
- **Шлюз**: 192.168.1.1 (роутер)
|
||
- **DHCP**: включён на роутере, диапазон раздачи 192.168.1.100–192.168.1.200 (статические адреса для серверов заданы вручную)
|
||
- **Статические IP-адреса серверов**: см. раздел [Виртуальные машины и LXC](03-vms-lxcs.md)
|
||
|
||
### Ключевые хосты
|
||
|
||
| Хост | IP | Назначение |
|
||
|------|-----|------------|
|
||
| Роутер | 192.168.1.1 | Шлюз, DHCP, OpenVPN |
|
||
| NPM | 192.168.1.201 | Nginx Proxy Manager, SSL-терминация |
|
||
| Proxmox | 192.168.1.200 | Хост виртуализации |
|
||
| media (LXC) | 192.168.1.203 | Jellyfin, Samba, yt-dlp, xray-прокси |
|
||
| talk (LXC) | 192.168.1.206 | Snikket (XMPP), Mumble |
|
||
|
||
---
|
||
|
||
## Безопасность сети
|
||
|
||
- **Wi-Fi**: WPA2-PSK (рекомендуется обновление до WPA3)
|
||
- **Гостевая сеть**: отсутствует
|
||
- **VLAN**: не используются
|
||
- **Доступ к панели 3X-UI**:
|
||
- HTTPS + Let's Encrypt
|
||
- Секретный URI: `/olimp-styx/`
|
||
- Секретный subscription URI: `/charon-cerber/`
|
||
- Рекомендуется ограничить доступ по IP при возможности
|
||
|
||
### Fail2ban (опционально для 3X-UI)
|
||
|
||
```yaml
|
||
# В docker-compose.yml 3X-UI:
|
||
environment:
|
||
XUI_ENABLE_FAIL2BAN: "true"
|
||
XUI_FAIL2BAN_PORT: "45131"
|
||
XUI_FAIL2BAN_MAX_RETRY: "5"
|
||
XUI_FAIL2BAN_BAN_TIME: "3600"
|
||
```
|
||
|
||
---
|
||
|
||
## Мониторинг сети
|
||
|
||
- Сбор метрик через node_exporter (порт 9100) на всех хостах
|
||
- Логи роутера не собираются (ограниченные возможности TP-Link)
|
||
- Логи 3X-UI: `docker logs 3xui_app --tail 100 -f`
|
||
|
||
---
|
||
|
||
## Бэкапы конфигурации
|
||
|
||
### OlimpVPN (3X-UI)
|
||
|
||
Автоматические еженедельные бэкапы на Nextcloud:
|
||
- **Скрипт**: `/opt/3x-ui/backup.sh`
|
||
- **Cron**: `0 3 * * 0` (воскресенье, 03:00)
|
||
- **Хранилище**: `nc.zailon.ru/VPN_Backups/3x-ui/`
|
||
- **Состав**: база данных, сертификаты, docker-compose.yml
|
||
|
||
```bash
|
||
# Ручной бэкап
|
||
cd /opt/3x-ui
|
||
tar -czf backup_$(date +%Y%m%d).tar.gz db/ cert/ docker-compose.yml
|
||
|
||
# Восстановление
|
||
docker compose down
|
||
tar -xzf backup_*.tar.gz -C /opt/3x-ui/
|
||
docker compose up -d
|
||
```
|
||
|
||
> **Важно**: токены и пароли хранятся отдельно, не включаются в бэкап.
|
||
|
||
---
|
||
|
||
**Связанные разделы:**
|
||
- [Виртуальные машины и LXC](03-vms-lxcs.md)
|
||
- [OlimpVPN — полная документация](08-olimpvpn.md)
|
||
- [Сервисы и порты](06-services.md)
|
||
- [Проксирование и SSL (NPM)](07-proxy-ssl.md)
|
||
- [Безопасность](10-security.md) |