Príprava siete pre DMZ na Proxmoxe a pfSense

Demilitarized zone DMZ, znamená v sieťovej terminológii zóna (pásmo), ktorá oddeľuje (izoluje) od seba 2 a viac sieti na fyzickej, alebo logickej úrovni. DMZ sa najčastejšie používa ak chceme oddeliť domácu, príp. podnikovú lokálnu sieť od siete v ktorej vystavujeme do internetu servery rôzneho typu. Dnes Vám ukážem ako si pripravíme prostreie DMZ pre VM a LXC na Proxmoxe. Ako bránu do internetu použijem pfSense.

Obsah

Úvod do DMZ

Čo je DMZ sme si už povedali. Hlavným účelom DMZ je oddeliť privátnu sieť od siete, ktorá je dostupná aj z internetu. Na väčšine bežných home routerov si takmer každý všimol možnosť zapnúť DMZ funkciu. Ide o to, že režim DMZ sa povolí, nastaví sa IP adresa a do jedného portu sa pripojí fyzicky server (počítač), ktorý bude prístupný z internetu. Niektoré DMZ v routeroch fungujú tak, že PC (resp. server) , ktorý chceme vystaviť do internetu je v tej istej LAN ako ostatné PC a všetky packety (v závislosti od nastavenia pravidiel firewallu) sa preposielajú na daný PC. Takýto typ DMZ nazývame DMZ host (z bepečnostného hľadiska sa to nepovažuje za plnohodnotnú DMZ). Druha možnosť je, že DMZ sieť je úplne izolovaná od LAN a tento typ môžeme nazývať, DMZ subnet. Viac o DMZ je na wikipedii. Na wikipedii sú aj popisne obrázky aby si človek vedel predstaviť ako to funguje.

DMZ s jedným firewallom
DMZ s dvoma firewallmi

Na obrázkoch je popis s jedným, alebo dvoma firewallmi. Z uvedeného je jasné, že ak používame DMZ, tak musíme prepojiť vždy, minimálne 3 siete.

  • WAN
  • DMZ
  • LAN

Ak si pozorne pozrieme nasledujúci obrázok, tak zistíme, že v mojom prípade mám len 2 fyzické siete a to WAN a LAN. Ako teda vytvorím DMZ ?

Stručný popis topológie siete

Toto je konkrétna topológia siete na ktorej Vám ukážem ako vytvoriť DMZ. Najprv si však sieť popíšeme

Hardwarovým základom je Odroid H2, ktorý disponuje dvoma GigaBitovymi sieťovými kartami (Odroid H2 predstavuje na obrázku čierný rámček). Na odroid H2 je nainštalované virtuálne prostredie Proxmox 6. Sieťové karty som nastavil v Proxmox takto:

  • enp2s0 -> WAN
  • enp3s0 -> LAN

Na Proxmoxe je nainštalovaný firewall pfSense (KVM), ktorý riadí celu sieť. Sieťové karty sú v linux bridge vmbr0 (WAN) a vmbr1 (LAN). Firewall pfSense ich potom vidí ako vtnet0 (WAN – PPPoE) a vtnet1 (LAN). Na obrázku je vidieť, že LAN je nakonfigurovaná na IP rozsah 192.168.1.0/24. Červenou farbou je ohraničená sieť LAN. Z obrázku je jasné, že naša domáca LAN sieť (PC, NTB, tlačiareň IP kamera a wifi router) je cez fyzicky switch a linux bridge vmbr1 pripojená do pfSense, Tým istým linux bridge sú do pfSense tiež pripojené Web a SFTP server (Linux Bridge si môžeme predstaviť ako virtuálny switch) na ktoré je aplikovaný Port Forwarding. Tieto servery sú prístupné aj z internetu a tak hrozí, že cez tieto servery sa útočník môže dostať na zariadenia v LAN sieti. Preto je vhodné na tieto účeli zriadiť novú tzv. DMZ a servery umiestniť do izolovanej DMZ.

Úprava topológie siete

V úvode som spomínal, že na DMZ je potreba vždy minimálne 3 siete. Avšak, keď sa pozrieme na obrázok, tak zistíme, že máme len 2 fyzické sieťové porty (enp2s0 a enp3s0 ). To znamená, že musíme pracovať na úrovni virtualizácie. Pôvodný obrázok trocha upravíme. Webový a SFTP server musíme umiestniť do DMZ. V skutočnosti virtualizujem viac serverov a aby som nemal veľa práce s kreslením, tak pôvodne servery budú na obrázku ako lokálne (bez prístupu na internet) a v DMZ budú nové servery.

V rámci Proxmox VE, musíme vytvoriť nové sieťové rozhranie. Toto rozhranie bude DMZ a na obrázku je vyznačené zelenou farbou. IP adresa siete pre DMZ bude 192.168.20.0/24. Takýchto oddelených sietí (DMZ) je možné spraviť aj viac. Ja osobne som vytvoril 4 DMZ siete, ale návod tu bude len pre jednu. Ak chceme vytvoriť viac takýchto sieti, tak postup je analogický pre každú sieť. Mimochodom, DMZ je veľmi podobná VLAN sieti v prípade použitia fyzických serverov, pripojených do fyzického switcha, ktorý podporuje VLAN siete.

Nastavenie siete na Proxmoxe

Prihlásime sa do webového rozhrania Proxmox. Presunieme sa v rámci nodu na Network. Na obrázku vidíme 2 sieťové karty premostené na vmbr0 a vmbr1.

Klikneme na Create a Linux Bridge. Vyplníme ako je na obrázku. Podľa konvencie musíme zachovať Name v tvare vmbrx, kde x je číslo od 0 do 9999. Bridge ports nastavíme v našom prípade na enp3s0.20. Musíme to mapovať na existujúci názov sieťového zariadenia, za ktorým nasleduje bodka a číslo. Ak to máme nastavené podľa obrázka, tak klikneme na Create.

Avšak linuxové mosty ešte nie sú aktívne, čiže klikneme na Apply Configuration. Ak používame staršiu ver. Proxmoxu, kde ešte nie je súčasťou utilita ifupdown2, tak nám vyskočí chyba s informáciou, že nemáme nainštalovaný ifupdown2 (alebo niečo v tomto zmysle, už si to nepamätám). Ifupdown2 teda musíme nainštalovať ručne. Aktualizujeme systém a nainštalujeme ifupdown2.

apt update
apt install ifupdown2

Teraz môžeme klikuť na Apply Configuration aby sa načítala nová konfigurácia siete. Ak z nejakého dôvodu nefunguje reload, tak ďalšou možnosťou je reboot celého uzla. Ak je všetko v poriadku, tak sa v stĺpci pod položkou Active zobrazí YES. Takto potom vyzerá keď sme vytvorili 4x Linux bridge (nás v tejto chvíli zaujmá len vmbr2 s ktorým budeme ďalej pracovať).

Aktualizácia 21.04.2022

Na obrázku som si všimol že v poslednom riadku v stĺpci VLAN aware je nastavená hodnota na Yes. Správne má byť nastavená na hodnotu No.

Koniec aktualizácie

Presunieme sa na virtuálny stroj (v mojom prípade označený ID 100 (pfsense) a klik na Hardware. VM pfSense má zatiaľ 2 sieťové karty (WAN a LAN). Tieto sieťové karty sú premostené na fyzické sieťové karty. Teraz potrebujeme vyrobiť ďalšie sieťové karty (zariadenia) na ktoré nasmerujeme naše nové vmbr2, vmbr3 atď.

Čiže klikneme na Add a Network Device. Bridge nastavíme na vmbr2 (resp. použijeme takú vmbrx s ktorou chceme prepojiť port na VM pfsense). Model necháme VirtIO a klikneme na Add. Takto potom vyzerajú nové Network device na VM pfSense. Nás bude pochopiteľne zaújmať len Network Device (net2).

Na Proxmoxe máme sieťovanie ukončené a môžeme začať nastavenia ma pfSense.

Konfigurácia siete na pfSense

Prihlásime sa do webkonfigurátora pfsense a prejdeme do

Interface --> Assignments

Keď rozklikneme Available network ports: tak uvidíme, že tam sú 4 nové sieťové zariadenia označené ako vtnet2, 3, 4 a 5. PfSense tieto zariadenia vidí ako fyzické a tak s nimi aj bude pracovať. Z ponuky vyberieme vtnet2 a klikneme na +Add. Tým sme vytvorili nové rozhranie pod názvom OPT1.

Klikneme na OPT1 aby sme toto sieťové rozhranie nakonfigurovali. OPT1 sa nám určite nebude páčiť, takže to v nastaveniach zmeníme, ale poďme postupne

  • Enable – nastavíme na yes
  • Description – DMZ2
  • IPv4 Configuration Type – Static IPv4
  • IPv4 Address – 192.168.20.1/24

Save

DHCP server (voliteľne)

Voliteľne môžeme, alebo nemusíme nastaviť aj DHCP server. Ideálne je, keď sa nastaví aj DHCP server (používať sa ale nemusí).

Services --> DHCP Server --> DMZ2
  • Enable – nastavíme na yes
  • Range – 192.168.20.10 – 192.168.20.20 (napr. pre 10 zariadení)
  • DNS server – 192.168.1.1 (voliteľne)

Save

Firewall pravidlo

Ak vytvoríme nový sieťový interface v pfSense, tak v predvolenom stave je akákoľvek komunikácia na tomto rozhraní zakázaná. Takže teraz nastavíme testovacie pravidlo na bráne firewall.

Upozorňujem!!!, že toto je len testovacie pravidlo aby sme overili funkčnosť siete. Týmto pravidlom úplne porušujeme filozofiu celej DMZ.

Firewall --> Rules --> DMZ2

Toto pravidlo otvorí celú novo vytvorenú sieť všetkým ostatným sieťam. V tomto pravidle je všetko prednastavené a zmeniť stači len Protokol z TCP na Any. Nasledne klikneme na Save a Apply Changes aby sme potvrdili zmeny. Aj keď nastavenie pravidiel pre DMZ je veľmi dôležité, tak účelom dnešného blogu nie je nastavenie pravidiel (o tom by som chcel písať neskôr).

Nastavenie LXC a test siete

Teraz sa znova presunieme na Proxmox a vytvoríme nový linuxový kontajner. O vytvorení LXC som písal už v niekoľkých predošlých blogoch, takže teraz uvediem len to čo je najdôležitejšie. Pri nastavení parametrov siete (karta Network) je najdôležitejšie vybrať správny Bridge. V našom prípade vmbr2.

Týmto sme nastavili most, cez ktorý budeme liezť na správny port do pfSense (tym pádom aj na internet). Označíme aj DHCP aby sme overili správnu funkčnosť pridelenia IP adresy (ak by sme v pfSense nenastavili pravidlo, tak pri konfigurácii DHCP sa automaticky vytvorí skryté pravidlo pre správne fungovanie DHCP) . Kontajner je vytvorený do niekoľkých sekúnd. Cez Shell sa môžeme do kontajnera ihneď prihlásiť

PCT enter <ID CT>

Najprv preveríme či bola správne pridelená IP adresa a otestujeme ping na verejný internet.

ip a
ping -c 3 google.com

Vidíme, že IP adresa je pridelená správne podľa nastaveného rozsahu (viď červený rámik) a ping je prakticky tiež v poriadku.

Záver

Dnes sme si ukázali ako vytvoriť v rámci proxmox niekoľko sieťových rozhraní, ktoré sú spravované firewallom pfSense. Takéto rozhrania je možné využiť ako DMZ a tak bezpečne chrániť privátnu sieť pred útokmi z internetu. Avšak najdôležitejšou časťou DMZ je správna konfigurácia firewallu, ktorú by som chcel prebrať nabudúce. Snáď sa čoskoro dostanem aj k napísaniu ďalšieho blogu.

Použitá literatúra

Leave a Reply

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *