Configurare il Port Forwarding su Windows

È possibile configurare il port forwarding di rete in tutte le versioni di Windows senza usare strumenti di terze parti. Utilizzando una regola di port forwarding, è possibile reindirizzare una connessione TCP in entrata (IPv4 o IPv6) dalla porta TCP locale a qualsiasi altro numero di porta, o anche a una porta su un computer remoto. Inoltre, non è necessario che Windows abbia un servizio che ascolta su una specifica porta TCP. Il port forwarding di Windows è più comunemente usato per bypassare i firewall o per nascondere un host o un servizio interno dalla rete esterna (NAT/PAT).

Nel mondo Linux, il port forwarding è configurato molto semplicemente usando iptables o firewalld. Sui sistemi Windows Server, il Routing and Remote Access Service (RRAS) è tipicamente usato per configurare il reindirizzamento delle porte. Tuttavia, c’è un modo più semplice per configurare il port forwarding, che funziona bene in qualsiasi versione di Windows.

Come configurare il port forwarding su Windows 10 utilizzando Netsh Portproxy?

È possibile configurare il port forwarding in Windows utilizzando la modalità Portproxy del comando Netsh. La sintassi del comando è la seguente:

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
dove

  • listenaddress – è un indirizzo IP locale per ascoltare la connessione in entrata (utile se si hanno più NIC o più indirizzi IP su un’interfaccia);
  • listenport – numero di porta TCP locale in ascolto (la connessione è in attesa);
  • connectaddress – è un indirizzo IP locale o remoto (o nome DNS) a cui si vuole reindirizzare la connessione in entrata;
  • connectport – è una porta TCP a cui viene inoltrata la connessione da listenport.
Utilizzando le opzioni netsh interface portproxy addv4tov6v6tov4v6tov6, è possibile creare regole di port forwarding tra indirizzi IPv4 e IPv6.

Supponiamo che il nostro compito i sia quello di far rispondere il servizio RDP su una porta non standard, per esempio 3340 (la porta può essere cambiata nelle impostazioni del servizio Remote Desktop, ma stiamo usando RDP per rendere più facile la dimostrazione del port forwarding). Per fare questo, abbiamo bisogno di reindirizzare il traffico in entrata dalla porta TCP 3340 a un’altra porta locale – 3389 (questo è il numero di porta RDP predefinito).

Si prega di notare che il numero di porta locale che avete specificato in listenport non deve essere ascoltato (usato) da un altro servizio o processo. Controlla che il numero di porta non sia usato:

netstat -na|find "3340"

In alternativa, puoi controllare che la porta non sia in ascolto localmente usando il cmdlet PowerShell Test-NetConnection:

Test-NetConnection -ComputerName localhost -Port 3340

Per creare una regola di port forwarding su Windows 10, eseguire un prompt dei comandi come amministratore ed eseguire il seguente comando:

netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110

Dove 10.10.1.110 – l’attuale indirizzo IP di questo computer.

Ora, utilizzare lo strumento netstat per verificare che Windows sia ora in ascolto sulla porta locale 3340:

netstat -ano | findstr :3340

Nota. Se questo comando non restituisce nulla e il port forwarding attraverso l’interfaccia netsh portproxy non funziona, assicuratevi di avere il servizio iphlpsvc (IP Helper) in esecuzione sul vostro computer.

Il supporto IPv6 deve essere abilitato sull’interfaccia di rete per la quale viene creata la regola di port forwarding.

Questi sono i presupposti per il corretto funzionamento del port forwarding. Senza il servizio IP Helper e senza il supporto IPv6 abilitato, il reindirizzamento delle porte non funzionerà.

Per far funzionare il port forwarding su Windows Server 2003/XP, è necessario impostare anche il parametro IPEnableRouter a 1 nella chiave di registro HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters.

Puoi scoprire quale processo è in ascolto sulla porta specificata usando il suo PID (nel nostro esempio, il PID è 636):

tasklist | findstr 636

Prova a connetterti a questa porta da un computer remoto usando qualsiasi client RDP. La porta 3340 dovrebbe essere specificata come numero di porta RDP. Viene specificata dopo i due punti che seguono l’indirizzo del server RDP. Per esempio, 10.10.1.110:3340

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *