Proxmox OPENVPN per collegare VPN

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è

  1. 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

Tags:

Comments

Lascia un commento