Shorewall - Vatrozid visoke razine za Linux poslužitelje


Postavljanje vatrozida u Linuxu može biti vrlo zastrašujuće za početnike ili nekoga tko nije baš upoznat s iptables. Srećom, u Shorewallu postoji rješenje vrlo jednostavno za korištenje.

U ovom višedijelnom vodiču, počet ću s Shorewallom i provesti vas kroz neke naprednije teme s ovim sjajnim vatrozidnim sustavom.

Što je Shorewall?

Shorewall je u biti sučelje za iptables, ali je sučelje okruženja naredbenog retka koje za svoju konfiguraciju koristi nekoliko tekstualnih datoteka. Iako je Shorewall robustan vatrozidni sustav koji se može proširiti na vrlo velike mreže koje opslužuju brojne strojeve, počet ćemo s osnovnom konfiguracijom s dva sučelja i zakucati osnove.

Konfiguracija s dva sučelja sastoji se od stroja s dva ethernet priključka, jedan ulazi, a drugi izlazi na lokalnu mrežu.

Instalirajte Shorewall Firewall u Linuxu

Shorewall se može instalirati pomoću alata za upravljanje paketima apt i yum.

sudo apt install shorewall    [On Debian-based Sysems]
sudo yum install shorewall    [On RHEL-based Sysems]

Nakon instalacije trebamo kopirati primjer konfiguracije iz direktorija “/usr/share/doc/shorewall” u Shorewallov zadani direktorij “/etc/shorewall“.

sudo cp /usr/share/doc/shorewall/example/two-interfaces/* /etc/shorewall
cd /etc/shorewall

Ako pogledamo ovaj direktorij, vidjet ćemo hrpu datoteka i datoteku shorewall.conf.

Shorewall gleda na mrežu kao na grupu različitih zona, tako da je prva datoteka koju želimo pogledati datoteka “/etc/shorewall/zones”.

sudo nano /etc/shorewall/zones

Ovdje vidimo da postoje tri zone definirane prema zadanim postavkama: fw, net i loc. Važno je napomenuti da Shorewall tretira sam vatrozidni stroj kao vlastitu zonu i pohranjuje ga u varijablu pod nazivom $fw.

Datoteka “/etc/shorewall/zones” prilično je jasna sama po sebi. Imate net zonu (sučelje okrenuto internetu), loc zonu (sučelje okrenuto LAN-u) i fw, što je sve.

Ova postavka daje sljedeće:

  • Omogućuje sve zahtjeve za povezivanje iz loc zone (LAN) u net zonu (Internet).
  • Odbacuje sve zahtjeve za povezivanje (ignorira) iz mrežne zone na vatrozid i LAN.
  • Odbija i bilježi sve druge zahtjeve.

Bit LOG LEVEL trebao bi biti poznat svakome tko je radio s Apacheom, MySQL ili bilo kojim drugim FOSS programom. U ovom slučaju, kažemo Shorewallu da koristi razinu informacija zapisivanja.

Sada kada su naše zone i pravila postavljeni, moramo konfigurirati naša sučelja. To možete učiniti uređivanjem datoteke “/etc/shorewall/interfaces”.

sudo nano /etc/shorewall/interfaces

Ovdje smo postavili naše internetsko sučelje kao eth0 za net zonu. Na našoj LAN strani, postavili smo drugo sučelje, eth1, na loc zone. Molimo prilagodite ovu datoteku kako bi ispravno odgovarala vašoj konfiguraciji.

Različite opcije koje možete postaviti za bilo koje od ovih sučelja su opsežne i najbolje ih je detaljno objasniti na stranici priručnika.

man shorewall-interfaces

Kratki pregled nekih od njih je sljedeći:

  • nosmurfs – filtrirajte pakete s adresom emitiranja kao izvorom.
  • logmartians – zapišite pakete s nemogućom izvornom adresom.
  • routefilter – filtriranje rute kernela za sprječavanje lažiranja.

Naravno, sada kada je naš sustav zaštićen vatrozidom, morat ćemo dopustiti određene veze kako bismo obavili ono što trebamo učiniti. Definirate ih u datoteci pravila na adresi “/etc/shorewall/rules“.

sudo nano /etc/shorewall/rules

Ova datoteka isprva izgleda zbunjujuće, uglavnom zato što se stupci preklapaju, ali zaglavlja su prilično razumljiva sama po sebi. Prvo, imate stupac RADNJA koji opisuje što želite izvesti.

Zatim imate zaglavlje SOURCE gdje definirate zonu iz koje paket potječe. Zatim imate svoje DEST ili odredište, što je zona ili IP adresa odredišta. Poslužimo se primjerom.

Pretpostavimo da želite pokrenuti SSH poslužitelj iza vatrozida na računalu s IP adresom 192.168.1.25. Ne samo da ćete morati otvoriti priključak u svom vatrozidu, već ćete morati reći vatrozidu da svaki promet koji dolazi na priključak 22 mora biti preusmjeren na stroj na 192.168.1.25.

To je poznato kao Prosljeđivanje priključka. To je uobičajena značajka na većini vatrozida/usmjerivača. U “/etc/shorewall/rules“, to biste postigli dodavanjem retka poput ovog:

SSH(DNAT)	net		loc:192.168.1.25

Gore smo definirali sve pakete određene SSH-u koji dolaze iz mrežne zone do vatrozida moraju biti usmjereni (DNAT) na priključak 22 na računalu s adresom 192.168.1.25.

To se zove Prijevod mrežne adrese ili NAT. “D” jednostavno govori Shorewallu da je ovo NAT za odredišnu adresu.

Da bi ovo radilo, morate imati uključenu NAT podršku u vašem kernelu. Ako trebate NAT, a nemate ga, pogledajte moj vodič o ponovnom kompiliranju Debian kernela.

U sljedećem ćemo članku istražiti različite konfiguracije i opcije Shorewalla. Međutim, ovdje bi trebalo biti dovoljno informacija koje će vam pomoći da počnete za sada. Kao i uvijek, pogledajte stranice priručnika za dublje razumijevanje.