Vai al contenuto
Avanet

Pubblicare un server con DNAT su Sophos Firewall

Con DNAT si pubblica un server interno tramite un indirizzo IP pubblico o una porta pubblica. Sophos Firewall inoltra quindi il traffico in ingresso verso il server di destinazione interno. Esempi tipici sono web server, reverse proxy, VPN gateway o altri servizi in una DMZ.

Questa guida mostra quali punti verificare prima e dopo una regola DNAT e come proteggere la pubblicazione nel modo piu restrittivo possibile.

Prerequisiti

  • Indirizzo IP pubblico o interfaccia WAN
  • Server interno con indirizzo IP fisso
  • Servizio e porta noti, per esempio TCP 443
  • Firewall rule adatta
  • Opzionale: IPS, Webserver Protection o Reverse Proxy a seconda del servizio

⚠️ DNAT pubblica un servizio interno verso l’esterno. Ogni servizio pubblicato aumenta la superficie di attacco. Pubblica solo cio che e davvero necessario e limita sorgente, porta e destinazione il piu possibile.

Chiarimenti preliminari

Prima di creare la regola, bisogna rispondere a queste domande:

  • Quale IP pubblico o interfaccia WAN viene usata?
  • Quale porta esterna deve essere raggiungibile?
  • Verso quale IP interno viene inoltrato il traffico?
  • La porta resta uguale o viene tradotta?
  • L’accesso deve essere consentito da ovunque o solo da reti sorgente specifiche?
  • Bisogna considerare Source NAT o Reflexive NAT?
  • Serve una Loopback rule per client interni che usano il FQDN pubblico?
  • Viene pubblicato un solo server interno o piu server con Load Balancing?
  • Esiste gia una regola che usa la stessa porta?
  • Sophos Firewall e direttamente su Internet o dietro un router del provider?
  • Devono essere aperte regole aggiuntive in una Cloud Security Group?

Queste informazioni evitano conflitti successivi con regole NAT o Firewall esistenti.

Se la Firewall si trova dietro un router

DNAT funziona anche quando Sophos Firewall non possiede direttamente l’indirizzo IP pubblico, ma si trova dietro un NAT router del provider.

In questo caso servono due inoltri:

  1. Sul router del provider, la porta pubblica viene inoltrata alla WAN-IP della Sophos Firewall.
  2. Su Sophos Firewall, la porta viene inoltrata tramite DNAT al server interno.

Molti router dei provider offrono port forwarding classico o funzioni come Exposed Host o DMZ Host. Con una funzione Exposed Host, spesso molte o tutte le porte in ingresso vengono inoltrate alla Firewall. Questo puo essere pratico, ma deve essere protetto consapevolmente, perche il controllo effettivo e completamente sulla Sophos Firewall.

Se non e disponibile un IP pubblico fisso, si puo usare DynDNS. Sophos Firewall puo configurare Dynamic DNS, cosi un nome DNS punta sempre all’IP pubblico attuale. Importante comunque: il port forwarding sul router del provider deve puntare alla Sophos Firewall.

Negli ambienti cloud vale lo stesso principio. In Azure, la sola regola DNAT su Sophos Firewall non basta. Devono essere aperte anche le Inbound rules corrette nella Network Security Group, altrimenti il traffico non raggiunge nemmeno la Firewall.

Creare la regola DNAT

Esempio DNAT tipico:

  • Original source: Any oppure reti sorgente definite
  • Original destination: WAN-IP o interfaccia WAN
  • Original service: HTTPS
  • Translated destination: server interno
  • Translated service: invariato o porta interna di destinazione

Procedura:

  1. Apri Rules and policies.
  2. Vai alla sezione NAT rules.
  3. Crea una nuova NAT rule.
  4. Definisci Original Source, Destination e Service.
  5. Imposta Translated Destination sul server interno.
  6. Opzionale: imposta Translated Service.
  7. Salva e attiva la regola.

Se devono accedere solo pochi indirizzi IP sorgente esterni, Original Source non dovrebbe essere Any, ma limitato a quelle sorgenti.

Sophos Firewall - regola DNAT con IP pubblico, porta esterna e server di destinazione interno
Sophos Firewall - Rules and policies > NAT rules > DNAT

Capire correttamente Original e Translated

Nelle NAT rules e importante distinguere tra Original e Translated.

  • Original source / destination / service descrive il traffico come arriva a Sophos Firewall.
  • Translated source / destination / service descrive il traffico come lascia Sophos Firewall dopo la traduzione.

Per una regola DNAT in ingresso significa:

  • Original destination e l’IP pubblico o l’indirizzo WAN della Firewall.
  • Original service e la porta esterna contattata dal client.
  • Translated destination (DNAT) e il server interno.
  • Translated service (PAT) e la porta interna sul server di destinazione, se la porta deve essere tradotta.
  • Translated source (SNAT) nelle normali regole DNAT resta di solito su Original.

Sophos descrive i campi nella guida ufficiale Add a NAT rule.

Port Forwarding e PAT

Port Forwarding e tecnicamente una Service Translation. Su Sophos Firewall si usa Translated service (PAT).

Esempio:

  • Esterno: TCP 20120
  • Interno: TCP 22

Il client esterno si connette alla porta 20120, ma Sophos Firewall inoltra internamente verso SSH porta 22. Questo puo essere utile, ma non sostituisce una limitazione degli accessi. Una porta esterna modificata riduce forse un po’ di rumore di fondo, ma non rende sicuro un servizio.

Importante: il protocollo deve restare lo stesso. TCP puo essere tradotto verso un’altra porta TCP, UDP verso un’altra porta UDP. TCP verso UDP non e una traduzione porta valida.

Quando si pubblica HTTPS, bisogna inoltre verificare eventuali conflitti con WebAdmin o User Portal della Sophos Firewall. Per impostazione predefinita, la console admin usa HTTPS porta 4444, il User Portal HTTPS porta 443. In caso di sovrapposizioni, le porte proprie della Firewall o i servizi pubblicati devono essere separati chiaramente.

Loopback, Reflexive e Linked NAT Rules

Sophos conosce diverse opzioni NAT che vengono facilmente confuse:

  • Loopback rule: aiuta quando client interni devono raggiungere un server interno tramite IP pubblico o nome DNS pubblico.
  • Reflexive rule: crea una regola SNAT speculare rispetto a una regola DNAT, affinche il traffico di ritorno o determinate direzioni inverse vengano tradotte correttamente.
  • Linked NAT rule: viene creata da una Firewall rule ed e una regola SNAT collegata. Non e la stessa cosa di una regola DNAT in ingresso per un server pubblicato.

Per le classiche pubblicazioni di server, di solito la soluzione piu chiara e una regola DNAT autonoma piu una Firewall rule adatta. Le Linked NAT Rules possono essere utili quando una Firewall rule necessita direttamente di una traduzione SNAT specifica. Per ambienti generali, Sophos consiglia comunque di mantenere le NAT rules il piu possibile indipendenti e semplici, invece di creare inutilmente molte NAT rules collegate per ogni Firewall rule.

Load Balancing e Health Check

Se piu server interni vengono pubblicati dietro un IP pubblico, DNAT puo essere usato anche per Load Balancing o Failover.

Metodi possibili sono per esempio:

  • Round robin
  • First alive
  • Random
  • Sticky IP
  • One-to-one

Se la Firewall deve riconoscere se un server di destinazione e disponibile, bisogna configurare un Health check. Senza Health Check, la Firewall puo inoltrare traffico anche a un server non raggiungibile.

Verificare la Firewall rule

Una NAT rule da sola non permette automaticamente il traffico. Serve anche una Firewall rule adatta.

La Firewall rule dovrebbe definire:

  • Source zone: di solito WAN
  • Source network: il piu possibile limitata
  • Destination zone: zona del server interno, per esempio DMZ
  • Destination network: server interno
  • Services: solo porte necessarie
  • Security profiles: a seconda del servizio IPS, Malware Scan o Web Policy
  • Logging: attivare

Senza Firewall rule corretta, il traffico viene scartato nonostante DNAT.

Sophos Firewall - Firewall rule adatta alla regola DNAT con reti sorgente limitate
Sophos Firewall - Firewall rule adatta alla regola DNAT

Anche per le NAT rules l’ordine e importante. Sophos verifica le NAT rules dall’alto verso il basso e usa la prima regola corrispondente. Una regola NAT troppo generale posizionata sopra puo quindi impedire che la regola DNAT specifica venga applicata.

Limitare l’accesso il piu possibile

Non ogni servizio pubblicato deve essere raggiungibile da tutto Internet. Quando possibile, l’accesso dovrebbe essere limitato.

Limitazioni sensate:

  • Consentire solo singoli indirizzi IP sorgente.
  • Consentire solo FQDN hosts noti, se la controparte usa IP dinamici.
  • Consentire solo determinati paesi.
  • Bloccare esplicitamente determinati paesi.
  • Consentire l’accesso solo tramite VPN.
  • Usare una soluzione ZTNA invece della pubblicazione diretta.

Per servizi amministrativi come SSH, RDP o portali admin interni, DNAT di solito non e la scelta migliore. Se l’accesso non deve essere pubblico, VPN o ZTNA e quasi sempre la soluzione migliore.

Ulteriori informazioni:

Migliorare la sicurezza

Per i servizi pubblicati bisogna verificare:

  • Il server e aggiornato con le patch?
  • Esiste un’opzione WAF o Reverse Proxy?
  • IPS e attivo sulla Firewall rule?
  • Sono aperte solo le porte necessarie?
  • Il servizio viene loggato?
  • Esistono limitazioni Geo-IP, Threat Feed o Source-IP?
  • MFA e possibile, se si tratta di un portale?

Per applicazioni web puo avere senso usare Web Server Protection invece di solo DNAT.

Bot e Threat Feeds

Porte pubbliche come HTTP, HTTPS, SSH o RDP sono costantemente nel mirino dei bot. Appena una porta e raggiungibile da Internet, nel Log Viewer si vedono spesso molto rapidamente tentativi di connessione, scansioni, tentativi di login o traffico exploit.

Questo non significa automaticamente che il server sia compromesso. Mostra pero che il servizio fa parte della superficie di attacco pubblica. Per questo consigliamo di proteggere i servizi pubblicati anche con IPS, logging, sorgenti ristrette e Third-Party Threat Feeds.

I Threat Feeds forniscono alla Firewall Indicators of Compromise sempre aggiornati, per esempio indirizzi IP o domini malevoli. In questo modo la Firewall puo bloccare aggressori noti, botnet o scanner prima che raggiungano il servizio pubblicato.

Maggiori dettagli: Sophos Firewall Threat Feeds

Test

Dopo aver creato la regola DNAT:

  • Testare da una rete esterna, non dalla stessa LAN
  • Verificare un port scan sull’IP pubblico
  • Controllare il Log Viewer per eventi NAT e Firewall
  • Controllare i log del server
  • Verificare se il client vede l’IP sorgente previsto

Se il test dalla LAN interna verso l’IP pubblico deve funzionare, puo essere necessario anche Hairpin NAT o una soluzione DNS interna.

Troubleshooting

Errori frequenti:

  • Firewall rule mancante
  • WAN-IP errata selezionata
  • Port forwarding mancante sul router del provider
  • Azure Network Security Group blocca la porta
  • Il servizio interno non e attivo
  • Il gateway del server non punta alla Sophos Firewall
  • La NAT rule si trova sotto un’altra regola che viene applicata prima
  • La porta e gia usata da un altro servizio
  • Loopback mancante se client interni usano il FQDN pubblico
  • Health Check mancante o errato quando si usa Load Balancing
  • Il test viene fatto dalla rete interna e non dall’esterno

Il Log Viewer e il punto di partenza piu importante per problemi DNAT. Li si vede se il traffico arriva, quale regola fa match e se viene consentito o scartato.

Raccomandazione

Le regole DNAT dovrebbero essere controllate regolarmente. Vecchie pubblicazioni sono un tipico rischio di sicurezza. Una buona documentazione contiene scopo, server di destinazione, porte esterne, responsabile, data di scadenza e ultima verifica.