144 lines
5.2 KiB
Markdown
144 lines
5.2 KiB
Markdown
|
|
***
|
|
## Configurazione Attuale in ZeroTier Central
|
|
|
|
- **Rete ZeroTier**: Configurata con routing
|
|
- **Rotta configurata**: 172.16.0.0/16 via 10.147.18.24
|
|
- **Home Assistant**: IP ZeroTier 10.147.18.24
|
|
- **Impostazioni nodo Home Assistant**: "Allow Ethernet Bridging" abilitato
|
|
![[Pasted image 20250501184158.png]]
|
|
|
|
Aggiungere questa ruta o due o tre tipo 172.16.==1==.0/24 via 10.147.18.24 + 172.16.==17==.0/24 via 10.147.18.24
|
|
![[Pasted image 20250501184305.png]]
|
|
## Considerazioni sulle Subnet
|
|
|
|
La subnet 172.16.0.0/16 è molto ampia (65.536 indirizzi IP). Per una rete domestica, questo potrebbe essere eccessivo e presenta alcuni svantaggi:
|
|
|
|
- **Sicurezza**: Espone potenzialmente un intervallo molto più ampio di indirizzi rispetto a quelli necessari
|
|
- **Prestazioni**: Le tabelle di routing con subnet più specifiche funzionano in modo più efficiente
|
|
- **Organizzazione**: È più difficile gestire uno spazio di indirizzi così grande
|
|
|
|
### Alternative consigliate:
|
|
|
|
- **172.16.x.0/24**: Dove "x" sarebbe un numero specifico per la rete locale (come 172.16.1.0/24). Questo fornirebbe 256 indirizzi, sufficienti per la maggior parte delle reti domestiche.
|
|
- **172.16.0.0/20**: Se sono realmente necessari più indirizzi, questo fornirebbe 4.096 IP, che è comunque molto più specifico di /16.
|
|
- Aggiungere questa ruta o due o tre tipo 172.16.==1==.0/24 via 10.147.18.24 + 172.16.==17==.0/24 via 10.147.18.24
|
|
|
|
## Configurazione Necessaria su Home Assistant
|
|
|
|
### 1. Abilitare l'IP Forwarding
|
|
|
|
```bash
|
|
echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
```
|
|
|
|
* Questo nel tuo caso già e aposto.
|
|
|
|
Per renderlo permanente, modificare `/etc/sysctl.conf` e aggiungere:
|
|
|
|
```
|
|
net.ipv4.ip_forward=1
|
|
```
|
|
|
|
### 2. Identificare le Interfacce di Rete
|
|
|
|
Prima di configurare le regole NAT e firewall, è necessario identificare le interfacce di rete corrette:
|
|
|
|
```bash
|
|
# Mostra tutte le interfacce di rete
|
|
ip addr show
|
|
```
|
|
|
|
In questo output:
|
|
|
|
- L'interfaccia ZeroTier avrà un nome come `zt0`, `zt1` o `ztxxxxx` (dove xxxxx è parte dell'ID di rete)
|
|
- L'interfaccia di rete locale potrebbe NON essere `eth0`. Nei sistemi moderni, potrebbe essere chiamata:
|
|
- `enp3s0`, `enp0s25`, `ens33` o simili (per Ethernet cablata)
|
|
- `wlan0` o `wlp3s0` (per WiFi)
|
|
- `br0` o `hassio` (se c'è un bridge di rete configurato)
|
|
- `docker0` (se Docker è installato)
|
|
|
|
È importante identificare correttamente l'interfaccia che connette Home Assistant alla rete locale (quella che ha l'indirizzo IP della rete locale, es. 172.16.x.x).
|
|
|
|
### 3. Regole NAT
|
|
|
|
```bash
|
|
# Attivare MASQUERADE per consentire ai pacchetti dalla rete ZeroTier di uscire verso la rete locale
|
|
iptables -t nat -A POSTROUTING -s 10.147.18.0/24 -d 172.16.0.0/16 -j MASQUERADE
|
|
|
|
# Se si desidera anche l'accesso a Internet, aggiungere (sostituire enp3s0 con l'interfaccia di rete locale reale):
|
|
iptables -t nat -A POSTROUTING -s 10.147.18.0/24 -o enp3s0 -j MASQUERADE
|
|
|
|
# Per essere più specifici con l'interfaccia ZeroTier (sostituire zt0 con l'interfaccia ZeroTier reale):
|
|
iptables -t nat -A POSTROUTING -i zt0 -o enp3s0 -j MASQUERADE
|
|
```
|
|
|
|
**non me ricordo se era enp3s0 pero me ricordo che non era eth0**
|
|
### 4. Regole Firewall
|
|
|
|
```bash
|
|
# Consentire il traffico di inoltro dalla rete ZeroTier alla rete locale
|
|
# (sostituire zt0 con l'interfaccia ZeroTier reale, enp3s0 con l'interfaccia di rete locale)
|
|
iptables -A FORWARD -i zt0 -o enp3s0 -s 10.147.18.0/24 -d 172.16.0.0/16 -j ACCEPT
|
|
|
|
# Consentire il traffico di ritorno
|
|
# (sostituire enp3s0 con l'interfaccia di rete locale, zt0 con l'interfaccia ZeroTier)
|
|
iptables -A FORWARD -i enp3s0 -o zt0 -s 172.16.0.0/16 -d 10.147.18.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
|
```
|
|
|
|
### 5. Salvare le Regole per la Persistenza dopo il Riavvio
|
|
|
|
```bash
|
|
# Su sistemi basati su Debian
|
|
iptables-save > /etc/iptables/rules.v4
|
|
|
|
# Oppure per Home Assistant OS, potrebbe essere necessario:
|
|
iptables-save > /config/scripts/iptables-rules
|
|
```
|
|
|
|
Per rendere queste regole permanenti in Home Assistant, puoi creare un file in `/config/scripts/apply-iptables.sh`:
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
# Script per applicare le regole iptables all'avvio
|
|
|
|
# Abilitare l'IP forwarding
|
|
echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
|
|
# Ripristinare le regole salvate
|
|
iptables-restore < /config/scripts/iptables-rules
|
|
|
|
exit 0
|
|
```
|
|
|
|
Quindi rendilo eseguibile:
|
|
|
|
```bash
|
|
chmod +x /config/scripts/apply-iptables.sh
|
|
```
|
|
|
|
E configuralo per l'esecuzione all'avvio in Home Assistant aggiungendo in `configuration.yaml`:
|
|
|
|
```yaml
|
|
shell_command:
|
|
apply_iptables: bash /config/scripts/apply-iptables.sh
|
|
|
|
automation:
|
|
- alias: Apply iptables at startup
|
|
trigger:
|
|
platform: homeassistant
|
|
event: start
|
|
action:
|
|
service: shell_command.apply_iptables
|
|
```
|
|
|
|
### 5. Script di Avvio
|
|
|
|
Creare uno script per applicare queste regole dopo il riavvio. Può essere aggiunto alla configurazione di Home Assistant per l'esecuzione automatica.
|
|
|
|
## Note Importanti:
|
|
|
|
- Regolare `10.147.18.0/24` in base alla subnet effettiva della rete ZeroTier
|
|
- Modificare `eth0` con l'interfaccia di rete reale che Home Assistant utilizza per connettersi alla rete locale
|
|
- Si consiglia di utilizzare una subnet più specifica per la rete locale (ad esempio 172.16.1.0/24 invece di 172.16.0.0/16)
|
|
- Potrebbe essere necessario adattare le regole in base alla configurazione specifica della rete |