Shorewall - Vatrozid visokog nivoa za Linux servere


Postavljanje zaštitnog zida u Linuxu može biti vrlo zastrašujuće za početnike ili nekoga ko nije baš upoznat sa iptables. Srećom, u Shorewall-u postoji rješenje koje je vrlo jednostavno za korištenje.

U ovom višedijelnom tutorijalu, pomoći ću vam da počnete sa Shorewall-om i provest ću vas kroz neke naprednije teme sa ovim fantastičnim sistemom zaštitnog zida.

Šta je Shorewall?

Shorewall je u suštini front-end za iptables, ali je front-end okruženja komandne linije koji koristi nekoliko tekstualnih datoteka za svoju konfiguraciju. Dok je Shorewall robustan firewall sistem koji se može proširiti na veoma velike mreže koje opslužuju brojne mašine, počećemo sa osnovnom konfiguracijom sa dva interfejsa i utvrditi osnove.

Konfiguracija sa dva interfejsa sastoji se od mašine sa dva eternet porta, od kojih jedan ulazi, a drugi izlazi na lokalnu mrežu.

Instalirajte Shorewall Firewall u Linux

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 uzorak konfiguracije iz direktorija “/usr/share/doc/shorewall” u Shorewall-ov zadani direktorij “/etc/shorewall”.

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

Ako pogledamo u ovaj direktorij, vidimo gomilu datoteka i shorewall.conf datoteku.

Shorewall posmatra mrežu kao grupu različitih zona, tako da je prvi fajl koji želimo da pogledamo datoteka “/etc/shorewall/zones”.

sudo nano /etc/shorewall/zones

Ovdje vidimo da postoje tri zone definirane po defaultu: fw, net i loc. Važno je napomenuti da Shorewall tretira samu mašinu zaštitnog zida kao sopstvenu zonu i pohranjuje je u varijablu pod nazivom $fw.

Fajl “/etc/shorewall/zones” je prilično razumljiv. Imate net zonu (internet sučelje), loc zonu (sučelje usmjereno na LAN) i fw, što je sve.

Ova postavka daje sljedeće:

  • Dozvoljava sve zahtjeve za povezivanje od loc zone (LAN) do net zone (Internet).
  • Odbacuje sve zahtjeve za povezivanje (ignorira) iz mrežne zone na firewall i LAN.
  • Odbija i evidentira sve ostale zahtjeve.

Bit LOG LEVEL bi trebao biti poznat svima koji su administrirali sa Apache, MySQL ili bilo kojim drugim brojem drugih FOSS programa. U ovom slučaju, kažemo Shorewall-u da koristi informacioni nivo evidentiranja.

Sada kada su naše zone i politike postavljene, 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š internetski interfejs kao eth0 u net zonu. Na našoj LAN strani, postavili smo drugi interfejs, eth1, na loc zonu. Molimo prilagodite ovu datoteku tako da odgovara vašoj konfiguraciji.

Različite opcije koje možete postaviti za bilo koje od ovih sučelja su opsežne i najbolje su detaljno objašnjene na man stranici.

man shorewall-interfaces

Kratki pregled nekih od njih je sljedeći:

  • nosmurfs – filtrirajte pakete sa adresom emitovanja kao izvorom.
  • logmartiani – zabilježite pakete sa nemogućom izvornom adresom.
  • filter rute – filtriranje rute kernela za sprečavanje lažiranja.

Naravno, sada kada je naš sistem zaštićen vatrozidom, trebat će nam određene veze koje će nam biti dozvoljene da bismo obavili ono što trebamo da uradimo. Definišete ih u datoteci pravila na „/etc/shorewall/rules“.

sudo nano /etc/shorewall/rules

Ova datoteka u početku izgleda zbunjujuće, uglavnom zato što se kolone preklapaju, ali zaglavlja su prilično razumljiva. Prvo, imate kolona ACTION, koja opisuje šta želite da izvedete.

Zatim imate SOURCE zaglavlje u kojem definirate zonu odakle paket potiče. Zatim imate DEST, ili destinaciju, što je zona ili IP adresa odredišta. Koristimo primjer.

Pretpostavimo da želite da pokrenete SSH server iza vašeg zaštitnog zida na mašini sa IP adresom 192.168.1.25. Ne samo da ćete morati da otvorite port u svom zaštitnom zidu, već ćete morati da kažete zaštitnom zidu da svaki saobraćaj koji dolazi na port 22 treba da bude preusmjeren na mašinu na 192.168.1.25.

Ovo je poznato kao Prosljeđivanje portova. To je uobičajena karakteristika na većini firewall-a/rutera. U “/etc/shorewall/rules“, ovo biste postigli dodavanjem reda poput ove:

SSH(DNAT)	net		loc:192.168.1.25

Iznad smo definirali sve SSH-destinirane pakete koji dolaze iz mrežne zone do zaštitnog zida moraju biti usmjereni (DNAT) na port 22 na mašini sa adresom 192.168.1.25.

To se zove Prevod mrežne adrese ili NAT. “D” jednostavno govori Shorewall-u da je ovo NAT za odredišnu adresu.

Da bi ovo funkcioniralo, morate imati omogućenu NAT podršku u vašem kernelu. Ako vam je potreban NAT, a nemate ga, pogledajte moj vodič o ponovnom kompajliranju Debian kernela.

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