TanodTools
IT

Generatore di port forwarding MikroTik

Elenca le porte che vuoi pubblicare e i server dietro di esse, e ottieni regole dst-nat per RouterOS v7, con hairpin NAT così anche i client LAN possono usare l'indirizzo pubblico.

Funziona nel browser; nulla di ciò che scrivi lascia il tuo dispositivo

Riconosci il traffico verso
Inoltri
    Opzioni
    Facoltativo. Lascia vuoto per accettare connessioni da qualsiasi origine.

    Genera sintassi RouterOS v7 (valida anche su v6) per IPv4. Porte e indirizzi vengono controllati, ma non testati sul tuo router. MikroTik e RouterOS sono marchi di SIA Mikrotīkls. Questo strumento è indipendente e non è affiliato né approvato da MikroTik.

    Come inoltrare una porta su un router MikroTik

    1. Scegli come la regola riconosce il traffico verso il tuo indirizzo pubblico: l'interface list WAN, un IP pubblico fisso o uno qualsiasi degli indirizzi del router.
    2. Aggiungi una riga per servizio: protocollo, porta pubblica, IP del server interno e, se diversa, la sua porta interna.
    3. Spunta hairpin NAT se i client LAN devono raggiungere il servizio tramite l'indirizzo pubblico, poi copia lo script o scarica il file .rsc.

    Come funziona il port forwarding su RouterOS

    Un port forward è una regola dst-nat nella chain dstnat di /ip firewall nat. Quando arriva una nuova connessione che corrisponde alla regola (protocollo, porta di destinazione e l'interfaccia WAN oppure il tuo indirizzo pubblico), RouterOS riscrive la sua destinazione con l'indirizzo del server interno e, se vuoi, la porta. Il connection tracking ricorda la traduzione, quindi le risposte vengono riscritte automaticamente; non serve mai una regola corrispondente per il traffico di ritorno.

    La traduzione avviene prima che la chain forward del filtro veda il pacchetto. Per questo la regola forward predefinita di MikroTik scarta le nuove connessioni WAN solo con connection-nat-state=!dstnat: una connessione tradotta da una regola dst-nat è marcata come dstnat e lasciata passare, mentre tutto il resto che arriva da internet viene scartato.

    Hairpin NAT

    Quando un computer della LAN si connette all'indirizzo pubblico di un server che si trova anch'esso nella LAN, la regola dst-nat manda il pacchetto al server, ma il server vede l'indirizzo privato del client e risponde direttamente a quello. Il client riceve allora una risposta da un indirizzo con cui non ha mai comunicato e la scarta. La regola hairpin applica il masquerade al traffico dalla subnet LAN verso il server, così il server risponde al router, che traduce la risposta all'indietro. Il prezzo è che nei log del server i client LAN compaiono con l'indirizzo del router. Un record DNS split-horizon che punta il nome all'indirizzo interno evita del tutto il NAT ed è spesso la soluzione più pulita.

    Consigli

    Domande frequenti

    Perché non riesco a raggiungere il port forward dall'interno della LAN?

    Un client LAN invia al tuo IP pubblico, il router traduce la destinazione verso il server e il server risponde direttamente al client perché sono sulla stessa subnet. Il client si aspettava la risposta dall'IP pubblico, quindi la scarta. L'hairpin NAT applica il masquerade a quel traffico LAN-LAN così la risposta ripassa dal router. Funziona solo se la regola dst-nat corrisponde all'indirizzo pubblico e non all'interfaccia WAN, perché il pacchetto arriva dall'interfaccia LAN.

    La regola deve corrispondere a in-interface o a dst-address?

    Usare l'interface list WAN è la soluzione più semplice e regge un IP pubblico che cambia, ma non permette l'hairpin NAT. Usare dst-address funziona con l'hairpin ma va aggiornato se l'IP cambia. dst-address-type=local corrisponde a qualsiasi indirizzo del router, quindi gestisce IP dinamici e hairpin insieme; il rovescio della medaglia è che cattura quelle porte anche sull'indirizzo LAN del router stesso.

    Mi serve anche una regola di filtro del firewall?

    Con la configurazione predefinita di MikroTik no: la sua chain forward scarta le nuove connessioni dalla WAN solo se sono "not DSTNATed", quindi le connessioni inoltrate passano. Se hai scritto una chain forward più restrittiva, accetta connection-nat-state=dstnat prima del drop finale.

    Come inoltro un intervallo di porte?

    Inserisci l'intervallo, come 50000-50100, oppure un elenco come 80,443, e lascia vuota la porta interna. Le porte vengono inoltrate invariate. La traduzione della porta (pubblica 8443 verso interna 443) funziona per le singole porte.

    È sicuro inoltrare RDP, SSH o Winbox?

    Esporre servizi di accesso remoto a tutta internet invita ai tentativi di forza bruta. Compila le reti di origine consentite per limitare un inoltro a indirizzi noti, oppure metti il servizio dietro una VPN come WireGuard.

    La mia configurazione viene inviata da qualche parte?

    No. Le regole vengono generate da JavaScript in questa pagina, e nulla di ciò che scrivi viene caricato, conservato o registrato.