Port Forwarding per OpenVPN

Quali porte verranno aperte?

Le porte che andremo ad aprire sono delle porte “virtuali”, perché in realtà andremo ad instradare tutto il traffico in entrata ad una determinata porta, del nostro Server VPN, verso una porta del nostro client VPN.

Prerequisiti:

  • Server VPN funzionante (installatelo con PIVPN, è semplicissimo)
  • IP statico per il nostro server, oppure un DDNS
  • Porte sul server ovviamente accessibili, dunque se siete dietro ad un modem dovete eseguire il port forwarding anche lì dentro 😁

La mia rete:

  • IP pubblico SERVER: 89.40.xxx.xxx
  • IP privato del tunnel VPN, lato Server: 10.8.0.1
  • IP privato del tunnel VPN, lato Client: 10.8.0.2
  • Porta da aprire: 5000 TCP

⚠ Attenzione

  • Io apro le TCP, per UDP scrivere udp al posto di tcp
  • Per Windows, disattivare il firewall, oppure definire la connessione VPN una connessione privata, no pubblica

Aprire le porte al client VPN?

iptables -t nat -I PREROUTING 1 -d {SERVER_LOCAL_IP_ADDRESS} -p tcp –dport {CLIENT_PORT} -j DNAT –to-dest {CLIENT_LOCAL_IP_ADDRESS}:{CLIENT_PORT}

Esempio mio:
iptables -t nat -I PREROUTING 1 -d 89.40.xxx.xxx -p tcp –dport 5000 -j DNAT –to-dest 10.8.0.2:5000

iptables -t nat -I POSTROUTING 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp –dport {CLIENT_PORT} -j SNAT –to-source {VPN_GATEWAY_IP}

Esempio mio:
iptables -t nat -I POSTROUTING 1 -d 10.8.0.2 -p tcp –dport 5000 -j SNAT –to-source 10.8.0.1

iptables -I FORWARD 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp –dport {CLIENT_PORT} -j ACCEPT

Esempio mio:
iptables -I FORWARD 1 -d 10.8.0.2 -p tcp –dport 5000 -j ACCEPT

Risorse:

https://unix.stackexchange.com/questions/449853/port-forwarding-using-openvpn-client