Ho la macchina B (Server Proxmox) sulla quale gira una VM HomeAssistant,che si trova collegato a internet sotto rete non pubblica e pertanto non raggiungibile dall’esterno
OBIETTIVO:collegarlo alla macchina A (server openvpn) in modo da poterlo inserire permanentemente in un tunnel con la mia rete e collegarlo VPN
Installare OpenVPN su Macchina B (Proxmox)
apt update
apt install openvpn -y
Sul server openvpn creare il file openvpn_proxmox1.ovpn e rinominarlo openvpn_proxmox1.config
Posizionare il file .confi in /etc/openvpn/client
Avviare il server
systemctl start openvpn-client@openvpn_proxmox1
Verifica stato server
systemctl status openvpn-client@openvpn_proxmox1
Se si vuole avvio automatico all’avvio di proxmox
systemctl enable openvpn-client@openvpn_proxmox1
Riavvio del server
systemctl restart openvpn-client@openvpn_proxmox1
A questo punto verifichiamo che il tunnel funzioni
Verificare il tunnel
ip a show tun0
dovrà uscire qualcosa come:
default qlen 500
link/none
inet 10.8.0.3/24 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::8b6e:9089:24ab:8656/64 scope link stable-privacy proto kernel_ll
valid_lft forever preferred_lft forever
dove 10.8.0.3 è l’ip della macchina B nella VPN
Verifica se si riesce a connettere la porta da un altro pc
nc -vz 10.8.0.3 8006
dovrebbe darvi
connection to 10.8.0.3 8006 port tcp* succeeded
Parte non sempre necessaria:
poichè
Proxmox ha un controllo “trusted networks” / ALLOW_FROM
Proxmox, per motivi di sicurezza, non accetta richieste HTTPS da IP non previsti.
La direttiva si trova in:/etc/default/pveproxy
se pveproxy non esiste crearlo con nano e popolarlo con la seguente direttiva:
ALLOW_FROM=10.8.0.0/24
salvare e riavviare pveproxy
systemctl restart pveproxy
systemctl status pveproxy
A questo punto abbiamo la macchina B (server proxmox) correttamente nel tunnel e raggiungibile anche se non si trova sotto ip pubblico
Riusciamo però al momento a raggiunfere solo la porta 8006
Home Assistant gira sotto un altro ip (creato da proxmox)
dobbiamo fare in modo che anche la macchina HA sia raggiungibile con lo stesso sistema
Andremo pertanto a creare un Routing diretto verso la subnet della VM
supponiamo che l’ip locale di HA nella VM sia 192.168.123.134 e che l’interfaccia di rete sia
sysctl -w net.ipv4.ip_forward=1
echo “net.ipv4.ip_forward=1” >> /etc/sysctl.conf
Creiamo le regole iptables per il port forwarding
# Port forwarding dal tunnel VPN (tun0) alla VM
iptables -t nat -A PREROUTING -i tun0 -p tcp –dport 8123 -j DNAT –to-destination 192.168.123.134:8123
# Mascheramento (NAT) per far tornare correttamente le risposte
iptables -t nat -A POSTROUTING -o vmbr0 -p tcp –dport 8123 -d 192.168.123.134 -j MASQUERADE
Nota: sostituisci vmbr0 con il bridge corretto se la tua VM è su un altro bridge.
Persistenza delle regole
Le regole iptables scompaiono al riavvio.
Per renderle permanenti puoi usare:
apt install iptables-persistent
netfilter-persistent save

Lascia un commento
Devi essere connesso per inviare un commento.