Przejdź do treści głównej
50% zniżki wszystkie plany, oferta limitowana. Od $2.48/mo
12 min left
Bezpieczeństwo i sieci

Czym jest DMZ w sieciach?

J Autor: Jonas 12 min czytania
Diagram comparing a three-interface DMZ firewall with the same isolation pattern arranged inside a single server

DMZ pojawia się bez dołączonej definicji. Pozycja na liście kontrolnej przeglądu bezpieczeństwa, zdanie w dokumencie hartowania od dostawcy, wymaganie w ogłoszeniu o pracę stojące obok TLS i zasady najmniejszych uprawnień.

Sprawdzasz to i znajdujesz schemat zapory z trzema kablami sieciowymi. Jeden prowadzi do internetu, drugi do rzędu serwerów, trzeci do biurowej sieci LAN. A ty administrujesz jednym wynajętym serwerem z jednym publicznym IP i bez żadnego zapasowego interfejsu sieciowego.

Pierwszy obrazek to prawdziwa architektura DMZ. Na jednym serwerze można odtworzyć część jej celu bezpieczeństwa: ograniczyć to, do czego sięga internet. Czego na tym samym hoście odtworzyć się nie da, to osobna granica sieciowa, która czyni DMZ tym, czym jest.

Krótka wersja

  • DMZ oddziela usługi, do których muszą docierać obcy, od reszty tego, co uruchamiasz.
  • Nigdy nie chodziło o okablowanie: chodziło o to, by naruszenie po stronie publicznej zatrzymało się właśnie tam.
  • Możesz skonfigurować zaporę i mimo to nie mieć DMZ.
  • Jeden serwer z jednym publicznym IP może zmniejszyć ekspozycję dzięki reverse proxy, regułom zapory na hoście oraz nasłuchowi na loopbacku lub adresie prywatnym, ale nie tworzy osobnego segmentu DMZ.
  • Ta wersja dzieli jądro z tym, co chroni, więc traktuj ją jako zmniejszoną ekspozycję, a nie jako izolację.

Czego ten artykuł nie obejmuje

Zakres jest tu modelem myślowym, a trzy sąsiednie tematy zostały celowo pominięte.

  • Bez kroków wdrożeniowych. Nie ma tu konfiguracji reverse proxy, składni reguł zapory ani rekomendacji, które narzędzie zainstalować.
  • Bez konfiguracji routerów domowych. Opcja "DMZ host" w domowym routerze oznacza coś zupełnie innego.
  • Bez werdyktu w sprawie zero trust. To, czy perymetr sieciowy wciąż jest właściwą podstawową kontrolą, jest realnym sporem i nie zostaje tu rozstrzygnięty.

Czym jest DMZ i do czego służy?

DMZ, czyli strefa zdemilitaryzowana, to segment sieci położony między niezaufanym internetem a siecią wewnętrzną. Mieszczą się w nim usługi, które muszą być publicznie osiągalne, takie jak serwery WWW i serwery pocztowe. Cała reszta pozostaje za drugą granicą, więc dotarcie do usługi publicznej nie oznacza dotarcia do reszty.

Hasło o DMZ w słowniku Mozilli ujmuje działającą połowę tego w jednym zdaniu podrzędnym: udostępnia wyłącznie określone punkty końcowe, jednocześnie odmawiając dostępu do sieci wewnętrznej z zewnątrz. To cały cel projektowy, wyrażony bez odwołania do jakiegokolwiek sprzętu.

Rodzaje usług, które klasycznie tam mieszkają, wynikają z tego celu. Serwery WWW, serwery pocztowe, serwery FTP, serwery VoIP: rzeczy, z którymi obcy mają móc się łączyć. Serwery katalogowe, bazy danych, udziały plików, aplikacje wewnętrzne i interfejsy administracyjne nie znajdują się na tej liście, bo nikt z zewnątrz nie powinien do nich w ogóle docierać.

Trzymaj się właściwości, a nie obrazka. Trzy interfejsy sieciowe to jeden ze sposobów utworzenia osobnej granicy zaufania. Projekty chmurowe i jednoserwerowe mogą stosować tę samą zasadę kontroli ekspozycji inaczej, ale samą DMZ odtwarzają wyłącznie projekty z wyodrębnioną strefą brzegową.

Jak działa klasyczna DMZ z trzema interfejsami?

Zestawione obok siebie schematy dwóch klasycznych konstrukcji DMZ. Po lewej projekt z jedną zaporą, tak zwany trójnożny, w którym pojedyncza zapora prowadzi łącze WAN do internetu, łącze DMZ do serwera WWW i serwera pocztowego oraz łącze LAN do sieci wewnętrznej z bazą danych, stacją administratora i aplikacją wewnętrzną, przy zablokowanym ruchu z internetu do wnętrza. Po prawej projekt z dwiema zaporami ustawionymi tyłem do siebie, w którym DMZ znajduje się między zaporą zewnętrzną a wewnętrzną, dając dwie osobne granice polityk kosztem większej konfiguracji.

Klasyczną DMZ buduje się na dwa sposoby. Projekt z jedną zaporą daje tej zaporze trzy interfejsy: do internetu, do DMZ i do sieci wewnętrznej. Projekt z dwiema zaporami umieszcza DMZ pomiędzy dwiema osobnymi zaporami. Oba egzekwują tę samą regułę. Internet sięga do DMZ. Internet nigdy nie sięga do sieci wewnętrznej.

Model z jedną zaporą (trójnożny)

Jedna zapora, trzy interfejsy sieciowe. Pierwszy patrzy w stronę internetu. Drugi w stronę DMZ, gdzie mieszkają usługi publiczne. Trzeci w stronę sieci wewnętrznej. Zapora przepuszcza ruch przychodzący z internetu na konkretne porty w DMZ, przepuszcza wąski ruch z DMZ do wnętrza tam, gdzie wymaga tego aplikacja, i odrzuca całą resztę.

Nazwa tego kształtu to zapora trójnożna. Każdy pakiet przechodzący między strefami idzie przez jedno urządzenie, co czyni z tej zapory pojedynczy punkt awarii dla ruchu międzystrefowego. Jeśli padnie, łączność i egzekwowanie polityk ucierpią stosownie do trybu awarii zapory i przygotowanej redundancji.

Spędziłem dekadę, prowadząc operacje sieciowe u dostawcy internetu, a to, co zaskakiwało ludzi w interfejsie DMZ, to jak bardzo był niczym szczególnym. Zwykły port ethernet z inną etykietą zaufania przypisaną w konfiguracji zapory. Architektura nie tkwiła w miedzi. Tkwiła w zestawie reguł i w tym, że ktoś starannie przemyślał, w którą stronę wolno płynąć każdemu strumieniowi.

Model z dwiema zaporami (tyłem do siebie)

Dwie zapory szeregowo, a między nimi DMZ. Zapora zewnętrzna wpuszcza ruch internetowy do DMZ i ani kroku dalej. Wewnętrzna przepuszcza wyłącznie ten konkretny ruch z DMZ do wnętrza, którego potrzebuje aplikacja. Napastnik, który dotrze do DMZ, wciąż musi przekroczyć granicę polityk zapory wewnętrznej, zanim dosięgnie sieci wewnętrznej.

Dwie zapory dają dwie osobno egzekwowane granice polityk, ale dokładają też konfiguracji, łatania i złożoności operacyjnej. Awaria lub przełamanie granicy zewnętrznej nie usuwa automatycznie wewnętrznej, choć ochrona nadal zależy od tego, jak obie zapory są skonfigurowane i zarządzane.

Czy DMZ to to samo co zapora?

Nie. DMZ to osobna sieć brzegowa albo segment sieci. Zapora to jedno z powszechnych zabezpieczeń, którym reguluje się ruch między tą strefą, internetem a siecią wewnętrzną. Reguły zapory można skonfigurować w sieci płaskiej, wcale nie tworząc DMZ, więc różnica jest architektoniczna, a nie tylko konfiguracyjna.

To pomieszanie jest zrozumiałe. Zapora to obiekt, do którego się logujesz, rzecz z plikiem konfiguracyjnym, producentem i umową serwisową, więc zbiera nazwę tego, co wytwarza. Do segmentu nikt nigdy się nie loguje.

Konsekwencja ujawnia się w najgorszym możliwym momencie. Załóż, że twój publiczny serwer WWW został przejęty, bo prędzej czy później zostanie. W sieci płaskiej napastnik ma teraz przyczółek na maszynie, która i tak może rozmawiać z twoją bazą danych, serwerem plików i interfejsami administracyjnymi, a przemieszczanie się między nimi to zwyczajne korzystanie z dostępu, który już był dozwolony. Tę wędrówkę na boki nazywa się ruchem lateralnym i to właśnie po to istnieje druga granica. DMZ nie zapobiega przejęciu serwera WWW. Zapobiega temu, by przejęty serwer WWW stał się dostępem do całej reszty.

Jedno wyjaśnienie, skoro termin jest pod ręką: ustawienie "DMZ host" w routerze domowym lub małego biura to inna funkcja. Przekazuje niezamówiony ruch przychodzący do jednego urządzenia wewnętrznego, wystawiając je bezpośrednio na internet; nie tworzy osobnej, chronionej sieci DMZ.

Jak zastosować zasady DMZ na jednym serwerze?

Jeden serwer z jednym publicznym IP potrafi odtworzyć część celu DMZ dotyczącego kontroli ekspozycji, nie odtwarzając jej separacji sieciowej. Reverse proxy może stać się jedynym publicznym punktem wejścia, reguły zapory dla ruchu przychodzącego z domyślną odmową mogą zablokować resztę, a usługi wewnętrzne mogą nasłuchiwać na loopbacku lub na interfejsie prywatnym zamiast na adresie publicznym.

Zacznij od ograniczenia, które zakłada ta sekcja: jeden VPS, jeden interfejs publiczny i żadnego osobnego urządzenia zaporowego i żadnej podsieci DMZ pod twoją kontrolą. W takim układzie nie odtworzysz klasycznej topologii trójnożnej na tym samym hoście. Reguły zapory na hoście, wybór interfejsu nasłuchu usług i reverse proxy wciąż mogą zmniejszyć ekspozycję, ale nie utworzą tej samej granicy izolacji.

Reverse proxy może zająć interfejs publiczny na portach 80 oraz 443 i stać się jedynym punktem wejścia na warstwie aplikacji dla ruchu webowego. To zwęża publiczną powierzchnię ataku, ale nie jest równoważne osobnemu interfejsowi DMZ, bo proxy wciąż dzieli hosta z usługami stojącymi za nim.

Reguły zapory dla ruchu przychodzącego na hoście przepuszczają te dwa porty i odrzucają resztę. Każda inna usługa na maszynie może działać i nasłuchiwać, ale nic z zewnątrz nie nawiąże do niej połączenia. To przybliża politykę "osiągalne są tylko zamierzone porty" w obrębie jednego hosta; nie tworzy osobnej granicy wobec sieci wewnętrznej.

Serwery aplikacji, bazy danych i panele administracyjne nie powinny nasłuchiwać na adresie publicznym. Gdy proxy działa na tym samym hoście, mogą nasłuchiwać na loopbacku; gdy działa gdzie indziej w sieci prywatnej, mogą nasłuchiwać na adresie prywatnym. W obu przypadkach na interfejsie publicznym nie ma dla tych usług żadnego nasłuchu, więc otwarcie reguły przychodzącej wyłącznie na tym interfejsie ich nie wystawia.

Dostęp administracyjny należy do strony wewnętrznej, nie do strony DMZ. Trzymanie SSH i interfejsów zarządzania poza ścieżką publiczną, za VPN-em lub w sieci prywatnej, uniemożliwia bezpośrednie połączenia do nich z publicznego internetu.

Jak pojęcia DMZ przekładają się na podsieci VPC i grupy zabezpieczeń?

Schemat odwzorowujący klasyczne elementy DMZ na prymitywy chmurowe wewnątrz VPC. Segment DMZ staje się podsiecią publiczną z load balancerem lub proxy, osiągalną tylko wtedy, gdy zbiegną się trasa do internetu, adres publiczny i reguły zezwalające. Sieć wewnętrzna staje się podsiecią prywatną z serwerem aplikacji i bazą danych, bez trasy do bramy internetowej. Reguły zapory dla strefy stają się bezstanowymi listami ACL sieci na brzegu podsieci, a reguły dla zasobu stają się stanowymi grupami zabezpieczeń przypiętymi do każdego zasobu.

Klasyczny model ma dość bliskie odwzorowanie pojęciowe w prymitywach sieciowych chmury, ale nie jest to jeden do jednego. Segment DMZ staje się podsiecią publiczną. Sieć wewnętrzna staje się podsiecią prywatną bez trasy do bramy internetowej. Zestaw reguł zapory rozdziela się między grupy zabezpieczeń, powiązane z interfejsami sieciowymi zasobów, i listy ACL sieci, przypięte do podsieci.

Element klasycznyOdpowiednik w chmurzeCo egzekwuje
Segment DMZPubliczna podsiećZapewnia trasę do internetu; zasób potrzebuje dodatkowo adresu publicznego i reguł bezpieczeństwa dopuszczających ruch
Segment sieci wewnętrznejPrywatna podsiećBrak bezpośredniej trasy do bramy internetowej, więc internet nie może tą drogą nawiązać bezpośrednich połączeń
Interfejs zapory między strefamiTablica tras + dołączona brama internetowaDokąd ruch może być kierowany; o tym, czy zasób jest osiągalny, wciąż decydują adresacja publiczna i kontrole bezpieczeństwa
Zestaw reguł zapory (na strefę)Listy ACL sieciBezstanowe reguły zezwolenia i odmowy, oceniane na brzegu podsieci
Zestaw reguł zapory (na hosta)Grupy zabezpieczeńStanowe reguły zezwolenia, stosowane do interfejsów sieciowych powiązanych zasobów
Usługa publicznie dostępna w DMZLoad balancer lub instancja proxy w podsieci publicznejJedyny punkt wejścia, przez który musi przejść ruch

Dostawcy chmury sami posługują się tym słownictwem, co jest dobrym dowodem na to, że termin wciąż jest aktualny. Blog sieciowy AWS opisuje architekturę DMZ na Amazon VPC która izoluje usługi publicznie dostępne od sieci wewnętrznych, zbudowaną na VPC Block Public Access, kontroli na poziomie Regionu uruchomionej w listopadzie 2024 roku.

To podsieci są nośną częścią całego odwzorowania. Podsieć publiczna jest publiczna dlatego, że jej tablica tras wskazuje na bramę internetową. Skoro tablice tras decydują, dokąd wędrują pakiety, układ podsieci kształtuje twoją ekspozycję wcześniej niż jakakolwiek pojedyncza reguła.

Odwzorowanie jest niedoskonałe w jednym konkretnym punkcie. Interfejs zapory egzekwował granicę dla całego segmentu; grupa zabezpieczeń jest natomiast powiązana z interfejsem sieciowym pojedynczego zasobu. Dwie maszyny w tej samej podsieci prywatnej mogą nosić zupełnie różne grupy zabezpieczeń, więc egzekwowanie ląduje w drobniejszej ziarnistości, niż kiedykolwiek osiągnął interfejs fizyczny. Zwykle to postęp. Oznacza to też, że nazwa podsieci mówi ci o osiągalności mniej, niż mówił kiedyś schemat sieci.

Gdzie wersja jednoserwerowa zawodzi

Na jednym hoście proces wystawiony publicznie i usługi wewnętrzne dzielą jądro i maszynę. Osobne segmenty zmuszają napastnika do przekroczenia granicy sieciowej, którą inspekcjonuje zapora; pojedynczy host nie. Wzorzec jednoserwerowy zmniejsza ekspozycję. Nie odtwarza separacji.

Jeśli reverse proxy zostanie przełamane w sposób dający napastnikowi wykonanie kodu, ten kod już działa na maszynie, na której działa twoja baza danych. Nasłuch na loopbacku nic wtedy nie daje, bo loopback jest osiągalny z samego hosta. Izolacja kontenerami lub użytkownikami może podnieść wymagany wysiłek, ale kontenery na tym samym hoście wciąż dzielą jego jądro. W modelu klasycznym następnym krokiem napastnika był pakiet po kablu, który coś inspekcjonowało. Tutaj to lokalne gniazdo.

Praktyczną konsekwencją jest próg, nie werdykt. Gdy to, co stoi za proxy, jest warte więcej niż wysiłek drugiej maszyny, weź drugą maszynę i sieć prywatną pomiędzy nimi. Niczego z tego artykułu nie trzeba się w tym celu uczyć od nowa, bo nic z tego nigdy nie dotyczyło sprzętu.

Zobacz plany Linux

Twórz na VPS Linux z dostępem root, NVMe i mocą AMD EPYC.

Zobacz plany Linux

Perymetr nie jest już jedynym miejscem, w którym da się egzekwować politykę bezpieczeństwa. Architektura zero trust usuwa domyślne zaufanie oparte na położeniu w sieci, a łączność prywatna zbudowana na WireGuard lub Tailscale może zmniejszyć publiczną ekspozycję. Żadne z tych podejść nie zastępuje automatycznie segmentacji ani autoryzacji. Moje stanowisko w węższej sprawie jest jednoznaczne. Jako model myślowy: oddziel to, co osiągalne, od tego, co nie, i wiedz, która granica zatrzyma naruszenie. To pytanie przeżywa każdą wymienioną wyżej architekturę i właśnie dlatego wciąż warto na nie odpowiedzieć.

Często zadawane pytania

Czy DMZ to to samo co VPN?

Nie. Rozwiązują różne problemy. DMZ kontroluje, do czego mogą dotrzeć niezaufani obcy, udostępniając niewielki zestaw usług i nic ponadto. VPN daje zaufanym osobom z zewnątrz prywatną drogę do środka, uwierzytelniając je w sieci, do której inaczej by nie dotarły. Wiele sieci prowadzi oba rozwiązania i żadne nie zastępuje drugiego.

Czy DMZ jest bezpieczna?

DMZ nie czyni wystawionej usługi bezpieczną. Ogranicza to, jak daleko sięgnie jej naruszenie. Usługa publiczna wciąż jest publiczna, wciąż jest wystawiona na cały internet i wciąż potrzebuje łatania, monitoringu i hartowania na własny rachunek. DMZ decyduje o tym, co się stanie po jej upadku, a nie o tym, czy upadnie.

Czy potrzebuję DMZ, jeśli mam tylko jeden serwer?

Nie w klasycznym sensie, a na pojedynczym hoście i tak byś jej nie zbudował. Topologia z trzema interfejsami wymaga osobnych segmentów sieciowych, a serwer z jednym publicznym IP nie ma żadnego. To, co możesz zrobić, to kontrolować ekspozycję: uczyń reverse proxy jedynym publicznym punktem wejścia, domyślnie odmawiaj pozostałym portom przychodzącym i każ usługom wewnętrznym nasłuchiwać na loopbacku lub na adresie prywatnym. To zmniejsza to, do czego sięga internet, ale nie izoluje usługi publicznej od reszty hosta. Gdy to, co stoi za proxy, jest warte więcej niż koszt drugiej maszyny, weź dwie maszyny i sieć prywatną między nimi.

Dlaczego nazywa się to strefą zdemilitaryzowaną?

Termin zapożyczono z wojskowego znaczenia strefy buforowej między dwiema przeciwstawnymi siłami, w której żadna nie panuje w pełni. Użycie sieciowe zachowuje tę metaforę: DMZ nie należy w całości ani do niezaufanego zewnętrza, ani do zaufanego wnętrza.

Udostępnij

Dyskusja

Komentarze

Zaloguj się, aby dołączyć do dyskusji.

Więcej z bloga

Czytaj dalej.

Gotowy do wdrożenia? Od $2,48/mies.

Niezależna chmura od 2008 roku. AMD EPYC, NVMe, 40 Gbps. Zwrot pieniędzy w ciągu 14 dni.