Publikowanie serwera przez DNAT w Sophos Firewall
Za pomocą DNAT publikuje się wewnętrzny serwer przez publiczny adres IP albo publiczny port. Sophos Firewall przekazuje wtedy przychodzący ruch do wewnętrznego serwera docelowego. Typowe przykłady to webserver, reverse proxy, VPN gateways albo inne usługi w DMZ.
Ta instrukcja pokazuje, co sprawdzić przed i po utworzeniu reguły DNAT oraz jak możliwie ściśle zabezpieczyć publikację.
Wymagania
- Publiczny adres IP albo interfejs WAN
- Wewnętrzny serwer ze stałym adresem IP
- Znana usługa i port, na przykład TCP 443
- Pasująca reguła firewalla
- Opcjonalnie: IPS, Webserver Protection albo reverse proxy zależnie od usługi
⚠️ DNAT publikuje usługę wewnętrzną na zewnątrz. Każda opublikowana usługa zwiększa powierzchnię ataku. Publikuj tylko to, co naprawdę jest potrzebne, i ogranicz źródło, port oraz cel możliwie precyzyjnie.
Co wyjaśnić przed konfiguracją
Przed utworzeniem reguły należy odpowiedzieć na te pytania:
- Który publiczny adres IP albo interfejs WAN będzie użyty?
- Jaki port zewnętrzny ma być osiągalny?
- Na jaki wewnętrzny adres IP ruch ma być przekazywany?
- Czy port pozostaje taki sam, czy będzie tłumaczony?
- Czy dostęp ma być możliwy z każdego miejsca, czy tylko z określonych sieci źródłowych?
- Czy trzeba uwzględnić Source NAT albo Reflexive NAT?
- Czy potrzebna jest Loopback rule dla klientów wewnętrznych używających publicznego FQDN?
- Czy publikowany jest jeden serwer wewnętrzny, czy kilka serwerów z Load Balancing?
- Czy istnieje już reguła używająca tego samego portu?
- Czy Sophos Firewall stoi bezpośrednio w Internecie, czy za routerem operatora?
- Czy trzeba dodatkowo otworzyć reguły w Cloud Security Group?
Te informacje zapobiegają późniejszym konfliktom z istniejącymi regułami NAT albo firewalla.
Gdy firewall stoi za routerem
DNAT działa także wtedy, gdy Sophos Firewall nie ma bezpośrednio publicznego adresu IP, lecz znajduje się za NAT-routerem operatora.
W takim przypadku potrzebne są dwa przekierowania:
- Na routerze operatora publiczny port jest przekazywany na WAN-IP Sophos Firewall.
- Na Sophos Firewall port jest przekazywany przez DNAT do serwera wewnętrznego.
Wiele routerów operatorów oferuje klasyczne port forwarding albo funkcję taką jak Exposed Host lub DMZ Host. Przy funkcji Exposed Host często wiele albo wszystkie porty przychodzące są przekazywane do firewalla. Może to być praktyczne, ale wymaga świadomego zabezpieczenia, ponieważ właściwa kontrola leży wtedy całkowicie po stronie Sophos Firewall.
Jeśli nie ma stałego publicznego IP, można użyć DynDNS. Sophos Firewall może skonfigurować Dynamic DNS, aby nazwa DNS zawsze wskazywała aktualny publiczny adres IP. Nadal ważne jest jednak, aby port forwarding na routerze operatora wskazywał na Sophos Firewall.
W środowiskach cloud obowiązuje ta sama zasada. W Azure sama reguła DNAT na Sophos Firewall nie wystarcza. Dodatkowo trzeba otworzyć właściwe Inbound rules w Network Security Group, inaczej ruch w ogóle nie dotrze do firewalla.
Tworzenie reguły DNAT
Typowy przykład DNAT:
- Original source:
Anyalbo zdefiniowane sieci źródłowe - Original destination: WAN-IP albo interfejs WAN
- Original service:
HTTPS - Translated destination: serwer wewnętrzny
- Translated service: bez zmian albo wewnętrzny port docelowy
Procedura:
- Otworzyć Rules and policies.
- Przejść do sekcji NAT rules.
- Utworzyć nową regułę NAT.
- Zdefiniować Original Source, Destination i Service.
- Ustawić Translated Destination na serwer wewnętrzny.
- Opcjonalnie ustawić Translated Service.
- Zapisać i aktywować regułę.
Jeśli dostęp jest potrzebny tylko z niewielu zewnętrznych adresów IP, Original Source nie powinno być Any, lecz ograniczone do tych źródeł.

Poprawne rozumienie Original i Translated
W regułach NAT ważne jest rozróżnienie między Original i Translated.
- Original source / destination / service opisuje ruch tak, jak dociera do Sophos Firewall.
- Translated source / destination / service opisuje ruch tak, jak opuszcza Sophos Firewall po translacji.
Dla przychodzącej reguły DNAT oznacza to:
- Original destination to publiczny adres IP albo adres WAN firewalla.
- Original service to port zewnętrzny, do którego łączy się klient.
- Translated destination (DNAT) to serwer wewnętrzny.
- Translated service (PAT) to port wewnętrzny na serwerze docelowym, jeśli port ma być tłumaczony.
- Translated source (SNAT) przy zwykłych regułach DNAT najczęściej pozostaje na Original.
Sophos opisuje te pola w oficjalnej instrukcji Add a NAT rule.
Port Forwarding i PAT
Port Forwarding jest technicznie translacją usługi. W Sophos Firewall używa się do tego Translated service (PAT).
Przykład:
- Zewnętrznie: TCP
20120 - Wewnętrznie: TCP
22
Klient zewnętrzny łączy się na port 20120, ale Sophos Firewall przekazuje ruch wewnętrznie na port SSH 22. Może to być sensowne, ale nie zastępuje ograniczenia dostępu. Zmieniony port zewnętrzny może trochę zmniejszyć szum w tle, ale nie czyni usługi bezpieczną.
Ważne: protokół musi pozostać taki sam. TCP można przetłumaczyć na inny port TCP, UDP na inny port UDP. TCP do UDP nie jest prawidłową translacją portu.
Jeśli publikowany jest HTTPS, należy dodatkowo sprawdzić, czy nie ma konfliktów z WebAdmin albo User Portal Sophos Firewall. Domyślnie konsola administracyjna używa HTTPS Port 4444, a User Portal HTTPS Port 443. Przy nakładaniu się portów trzeba czysto rozdzielić porty własne firewalla i publikowane usługi.
Loopback, Reflexive i Linked NAT Rules
Sophos zna kilka opcji NAT, które łatwo pomylić:
- Loopback rule: Pomaga, gdy klienci wewnętrzni mają osiągać serwer wewnętrzny przez publiczny adres IP albo publiczną nazwę DNS.
- Reflexive rule: Tworzy lustrzaną regułę SNAT do reguły DNAT, aby ruch powrotny albo określone kierunki odwrotne były odpowiednio tłumaczone.
- Linked NAT rule: Jest tworzona z poziomu reguły firewalla i jest powiązaną regułą SNAT. Nie jest tym samym co przychodząca reguła DNAT dla opublikowanego serwera.
Dla klasycznych publikacji serwerów najczytelniejsze jest zwykle użycie osobnej reguły DNAT oraz pasującej reguły firewalla. Linked NAT Rules mogą mieć sens, gdy reguła firewalla wymaga bezpośrednio specjalnej translacji SNAT. Dla ogólnych środowisk Sophos zaleca jednak, aby reguły NAT były możliwie niezależne i proste, zamiast tworzyć niepotrzebnie wiele powiązanych reguł NAT per reguła firewalla.
Load Balancing i Health Check
Jeśli za jednym publicznym adresem IP publikowanych jest kilka serwerów wewnętrznych, DNAT może być użyty również do Load Balancing albo failover.
Możliwe metody to na przykład:
- Round robin
- First alive
- Random
- Sticky IP
- One-to-one
Jeśli firewall ma rozpoznawać, czy serwer docelowy jest dostępny, trzeba skonfigurować Health check. Bez Health Check firewall może przekazywać ruch także do serwera, który nie jest osiągalny.
Sprawdzenie reguły firewalla
Sama reguła NAT nie zezwala automatycznie na ruch. Dodatkowo potrzebna jest pasująca reguła firewalla.
Reguła firewalla powinna definiować:
- Source zone: najczęściej
WAN - Source network: możliwie ograniczone
- Destination zone: strefa serwera wewnętrznego, na przykład
DMZ - Destination network: serwer wewnętrzny
- Services: tylko wymagane porty
- Security-Profile: zależnie od usługi IPS, Malware Scan albo Web Policy
- Logging: aktywować
Bez pasującej reguły firewalla ruch zostanie odrzucony mimo DNAT.

Również przy regułach NAT kolejność ma znaczenie. Sophos sprawdza reguły NAT od góry do dołu i używa pierwszej pasującej reguły. Zbyt ogólna reguła NAT powyżej może więc uniemożliwić zadziałanie konkretnej reguły DNAT.
Możliwie ścisłe ograniczenie dostępu
Nie każda opublikowana usługa musi być dostępna z całego Internetu. Jeśli to możliwe, należy ograniczyć dostęp.
Sensowne ograniczenia:
- Zezwolić tylko na pojedyncze źródłowe adresy IP.
- Zezwolić tylko na znane FQDN-Hosts, jeśli druga strona używa dynamicznych IP.
- Zezwolić tylko na określone kraje.
- Jawnie blokować określone kraje.
- Umożliwić dostęp tylko przez VPN.
- Zamiast bezpośredniej publikacji użyć rozwiązania ZTNA.
Dla usług administracyjnych, takich jak SSH, RDP albo wewnętrzne portale administracyjne, DNAT zwykle nie jest najlepszym rozwiązaniem. Jeśli dostęp nie musi być publiczny, VPN albo ZTNA jest prawie zawsze lepszym wyborem.
Dodatkowe informacje:
Poprawa bezpieczeństwa
Dla opublikowanych usług należy sprawdzić:
- Czy serwer jest aktualnie spatchowany?
- Czy istnieje opcja WAF albo reverse proxy?
- Czy IPS jest aktywne na regule firewalla?
- Czy otwarte są tylko niezbędne porty?
- Czy usługa jest logowana?
- Czy są ograniczenia Geo-IP, Threat Feed albo źródłowych IP?
- Czy MFA jest możliwe, jeśli chodzi o portal?
Dla aplikacji web zamiast czystego DNAT sensowna może być także Web Server Protection.
Boty i Threat Feeds
Publiczne porty, takie jak HTTP, HTTPS, SSH albo RDP, są stale w centrum uwagi botów. Gdy tylko port jest osiągalny w Internecie, w Log Viewer często bardzo szybko widać próby połączeń, skany, próby logowania albo exploit traffic.
Nie oznacza to automatycznie, że serwer został skompromitowany. Pokazuje jednak, że usługa jest częścią publicznej powierzchni ataku. Dlatego zalecamy dodatkowe zabezpieczenie opublikowanych usług przez IPS, logging, wąskie źródła oraz Third-Party Threat Feeds.
Threat Feeds dostarczają firewallowi na bieżąco aktualne Indicators of Compromise, na przykład złośliwe adresy IP albo domeny. Dzięki temu firewall może blokować znanych atakujących, botnety albo skanery, zanim dotrą do opublikowanej usługi.
Więcej: Sophos Firewall Threat Feeds
Test
Po utworzeniu reguły DNAT:
- Testować z sieci zewnętrznej, nie z tego samego LAN
- Sprawdzić portscan na publiczny adres IP
- Sprawdzić Log Viewer pod kątem NAT- i Firewall-Events
- Skontrolować logi serwera
- Sprawdzić, czy klient widzi oczekiwany źródłowy adres IP
Jeśli test z wewnętrznego LAN ma odbywać się na publiczny adres IP, może być dodatkowo potrzebny Hairpin NAT albo wewnętrzne rozwiązanie DNS.
Troubleshooting
Częste błędy:
- Brakuje reguły firewalla
- Wybrano błędny WAN-IP
- Brakuje port forwarding na routerze operatora
- Azure Network Security Group blokuje port
- Usługa wewnętrznie nie działa
- Gateway serwera nie wskazuje na Sophos Firewall
- Reguła NAT znajduje się pod inną regułą, która pasuje wcześniej
- Port jest już używany przez inną usługę
- Brakuje Loopback, gdy klienci wewnętrzni używają publicznego FQDN
- Brakuje Health Check albo jest błędny, gdy używany jest Load Balancing
- Test odbywa się z sieci wewnętrznej, a nie z zewnątrz
Log Viewer jest najważniejszym punktem startowym przy problemach DNAT. Widać tam, czy ruch dociera, która reguła została dopasowana i czy został zaakceptowany albo odrzucony.
Rekomendacja
Reguły DNAT należy regularnie sprawdzać. Stare publikacje są typowym ryzykiem bezpieczeństwa. Dobra dokumentacja zawiera cel, serwer docelowy, porty zewnętrzne, osobę odpowiedzialną, datę wygaśnięcia i ostatni przegląd.