158 lines
3.9 KiB
Markdown
158 lines
3.9 KiB
Markdown
# Réseau & Accès
|
|
|
|
## Tailscale VPN
|
|
|
|
Tailscale remplace ZeroTier depuis décembre 2025 pour le mesh VPN.
|
|
|
|
### Configuration
|
|
|
|
| Machine | IP Tailscale | Hostname |
|
|
|---------|--------------|----------|
|
|
| Talloires (RPi5) | 10.171.171.1 | talloires.tailfd281f.ts.net |
|
|
| Annecy (Synology) | 10.171.171.50 | annecy.tailfd281f.ts.net |
|
|
| Mac Lionel | 100.x.x.x | (dynamique) |
|
|
|
|
### DNS MagicDNS
|
|
|
|
Tailscale fournit la résolution DNS automatique :
|
|
|
|
```
|
|
*.talloires.tailfd281f.ts.net → Services Talloires
|
|
```
|
|
|
|
### Accès aux services
|
|
|
|
Tous les services sont accessibles via deux domaines :
|
|
|
|
| Type | Domaine | Exemple |
|
|
|------|---------|---------|
|
|
| LAN | `*.talloires.local` | `jellyfin.talloires.local` |
|
|
| Tailscale | `*.talloires.tailfd281f.ts.net` | `jellyfin.talloires.tailfd281f.ts.net` |
|
|
|
|
## Accès LAN
|
|
|
|
### Prérequis
|
|
|
|
1. **Certificat CA Caddy** installé sur le client
|
|
2. **DNS local** configuré (dnsmasq ou /etc/hosts)
|
|
|
|
### Installation du certificat
|
|
|
|
```bash
|
|
# Sur Talloires
|
|
docker exec caddy cat /data/caddy/pki/authorities/local/root.crt > caddy-root.crt
|
|
|
|
# Sur Mac
|
|
sudo security add-trusted-cert -d -r trustRoot \
|
|
-k /Library/Keychains/System.keychain caddy-root.crt
|
|
```
|
|
|
|
### Configuration DNS
|
|
|
|
Option 1 : **dnsmasq** sur le routeur
|
|
```
|
|
address=/talloires.local/10.171.171.7
|
|
```
|
|
|
|
Option 2 : **/etc/hosts** sur chaque client
|
|
```
|
|
10.171.171.7 jellyfin.talloires.local
|
|
10.171.171.7 git.talloires.local
|
|
10.171.171.7 homeassistant.talloires.local
|
|
# etc.
|
|
```
|
|
|
|
## Ports exposés
|
|
|
|
| Port | Service | Protocole |
|
|
|------|---------|-----------|
|
|
| 443 | Caddy (HTTPS) | TCP |
|
|
| 80 | Caddy (HTTP → HTTPS) | TCP |
|
|
| 2222 | Gitea SSH | TCP |
|
|
| 8123 | Home Assistant (interne) | TCP |
|
|
|
|
## Sécurité
|
|
|
|
### Authelia SSO
|
|
|
|
La plupart des services sont protégés par Authelia :
|
|
|
|
```
|
|
Client → Caddy → Authelia → Service
|
|
```
|
|
|
|
Services protégés par Authelia :
|
|
- Transmission
|
|
- Netdata
|
|
- Dozzle
|
|
- Cockpit
|
|
|
|
Services avec auth propre (bypass Authelia) :
|
|
- Jellyfin (auth interne)
|
|
- Gitea (OIDC via Authelia)
|
|
- Home Assistant (auth interne)
|
|
- Arcane (désactivé temporairement)
|
|
|
|
### ProtonVPN (WireGuard)
|
|
|
|
Transmission utilise un tunnel WireGuard vers ProtonVPN :
|
|
|
|
```
|
|
Transmission → WireGuard container → ProtonVPN → Internet
|
|
↓
|
|
Kill switch intégré
|
|
(network_mode: service:wireguard)
|
|
```
|
|
|
|
Vérification IP :
|
|
```bash
|
|
# IP Transmission (doit être ProtonVPN)
|
|
docker exec transmission curl -s ifconfig.me
|
|
|
|
# IP locale
|
|
curl -s ifconfig.me
|
|
```
|
|
|
|
## DNS Redondant
|
|
|
|
### Architecture
|
|
|
|
```
|
|
┌─────────────────────┐ ┌─────────────────────┐
|
|
│ Talloires │ │ Annecy │
|
|
│ dnsmasq (primaire) │ │ dnsmasq (slave) │
|
|
│ 100.116.198.105:53 │◄────│ 10.171.171.50:53 │
|
|
└─────────────────────┘ └─────────────────────┘
|
|
│ │
|
|
└───────────┬───────────────┘
|
|
▼
|
|
Upstream DNS
|
|
(1.1.1.1, 8.8.8.8)
|
|
```
|
|
|
|
### Talloires (Primaire)
|
|
- **IP**: 100.116.198.105 (Tailscale)
|
|
- **Config**: `/etc/dnsmasq.d/tailscale.conf`
|
|
- **Upstream**: AdGuard DoH via cloudflared (127.0.0.1:5053)
|
|
|
|
### Annecy (Secondaire)
|
|
- **IP**: 10.171.171.50 (LAN)
|
|
- **Config**: `/volume1/docker/dnsmasq/dnsmasq.conf`
|
|
- **Container**: `andyshinn/dnsmasq` (Docker, network_mode: host)
|
|
- **Upstream**: Talloires, puis 1.1.1.1 / 8.8.8.8
|
|
|
|
### Test
|
|
```bash
|
|
# Depuis le LAN
|
|
dig @10.171.171.50 talloires.local +short
|
|
dig @10.171.171.50 go +short
|
|
|
|
# Depuis Tailscale
|
|
dig @100.116.198.105 talloires.local +short
|
|
```
|
|
|
|
### Configuration client
|
|
Pour utiliser les deux DNS en failover, configurer :
|
|
- DNS primaire: 10.171.171.50 (Annecy - LAN)
|
|
- DNS secondaire: 10.171.171.7 (Talloires - si LAN listen activé)
|