„Shorewall“ - aukšto lygio ugniasienė, skirta konfigūruoti „Linux“ serverius


Ugniasienės nustatymas sistemoje „Linux“ gali būti labai bauginantis naujokui arba tiems, kurie nėra gerai susipažinę su „iptables“. Laimei, „Shorewall“ yra labai paprastas naudoti sprendimas.

Šioje kelių dalių pamokoje aš pradėsiu nuo „Shorewall“ ir apžvelgsiu kai kurias pažangesnes temas naudodamas šią nuostabią užkardos sistemą.

Kas yra „Shorewall“?

„Shorewall“ iš esmės yra „iptables“ sąsaja, tačiau tai yra komandinės eilutės aplinkos sąsaja, kurios konfigūravimui naudojama daug tekstinių failų. Nors „Shorewall“ yra tvirta užkardos sistema, kurią galima keisti labai dideliuose tinkluose, aptarnaujančiuose daugybę mašinų, pradėsime nuo pagrindinės dviejų sąsajų konfigūracijos ir susikaupsime pagrindų.

Dviejų sąsajų konfigūraciją sudaro mašina su dviem Ethernet prievadais, vienas įeinantis ir vienas išeinantis į vietinį tinklą.

„Shorewall“ diegimas „Linux“

„Shorewall“ galima įdiegti naudojant „apt-get“ ir „yum“ paketų tvarkyklės įrankius.

$ sudo apt-get install shorewall6
$ sudo yum install shorewall6

Po įdiegimo turime nukopijuoti pavyzdinę konfigūraciją iš katalogo „/ usr/share/doc/shorewall“ į numatytąjį „Shorewall“ katalogą „/ etc/shorewall“.

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

Tada CD į/etc/shorewall.

$ cd /etc/shorewall

Pažvelgę į šį katalogą, matome daugybę failų ir shorewall.conf failą. „Shorewall“ tinklą laiko skirtingų zonų grupe, todėl pirmasis failas, kurį norime apžvelgti, yra „/ etc/shorewall/zone“ failas.

Čia matome, kad pagal numatytuosius nustatymus yra trys zonos: net, loc ir visos. Svarbu pažymėti, kad „Shorewall“ pati ugniasienės mašiną traktuoja kaip savo zoną ir saugo ją kintamajame, vadinamame $FW. Šį kintamąjį matysite visuose likusiuose konfigūracijos failuose.

Failas „/ etc/shorewall/zonas“ yra savaime suprantamas. Jūs turite tinklo zoną (interneto sąsaja), vietinę zoną (sąsaja su LAN) ir viską, kas yra viskas.

Atlikus šią sąranką atsisakoma:

  1. Tai leidžia visas prisijungimo užklausas iš vietinės zonos (LAN) į tinklo zoną (internetą)
  2. Išmeta visas ryšio užklausas (ignoruoja) iš tinklo zonos į užkardą ir LAN.
  3. atmeta ir registruoja visas kitas užklausas.

„LOG LEVEL“ bitai turėtų būti žinomi visiems, kurie administravo naudodami „Apache“, „MySQL“ ar bet kurią kitą FOSS programą. Šiuo atveju liepiame „Shorewall“ naudoti registravimo informacijos lygį.

Jei norite, kad jūsų ugniasienė būtų prieinama administruoti iš jūsų LAN, galite pridėti šias eilutes prie savo failo „/ etc/shorewall/policy“.

#SOURCE		DEST	POLICY		LOG		LEVEL		LIMIT:BURST
loc			$FW		ACCEPT
$FW			loc		ACCEPT

Dabar, kai yra nustatytos mūsų zonos ir politika, turime sukonfigūruoti savo sąsajas. Tai darote redaguodami failą „/ etc/shorewall/interfaces“.

Čia mes nustatėme savo interneto sąsają kaip eth0 prie tinklo zonos. Savo LAN pusėje mes nustatėme kitą sąsają, eth1, į lokalinę zoną. Pakoreguokite šį failą, kad jūsų konfigūracija būtų tinkamai suaktyvinta.

Įvairios parinktys, kurias galite įdėti bet kuriai iš šių sąsajų, yra platus ir geriausiai išsamiai paaiškintos vyro puslapyje.

$ man shorewall-interfaces

Greitas kai kurių iš jų paleidimas yra toks:

  1. nosmurfs - filtruokite paketus, kurių šaltinis yra transliacijos adresas.
  2. logmartians - žurnalų paketai su neįmanomu šaltinio adresu.
  3. maršrutinis filtras - branduolio maršruto filtravimas, siekiant apsaugoti nuo klastojimo.

Žinoma, dabar, kai mūsų sistema yra užkarda, mums reikės tam tikrų jungčių, kad būtų galima atlikti tai, ką turime padaryti. Tai galite apibrėžti taisyklių faile, esančiame „/ etc/shorewall/rules“.

Šis failas iš pradžių atrodo painus, daugiausia dėl to, kad stulpeliai sutampa, tačiau antraštės yra gana savaime suprantamos. Pirmiausia turite stulpelį VEIKSMAS, kuriame aprašoma, ką norite atlikti.

Tada turėsite antraštę „SOURCE“, kurioje apibrėžsite zoną, iš kurios kilęs paketas. Tada turite savo DEST arba paskirties vietą, kuri yra paskirties zona arba IP adresas. Leiskite naudoti pavyzdį.

Tarkime, kad kompiuteryje norite paleisti SSH serverį už savo užkardos, kurio IP adresas yra 192.168.1.25. Turėsite ne tik atidaryti ugniasienės prievadą, bet ir pasakyti ugniasienei, kad bet koks srautas, patenkantis į 22 prievadą, turi būti nukreiptas į mašiną 192.168.1.25.

Tai vadinama „Port Forwarding“. Tai yra įprasta daugumos užkardos/maršrutizatorių funkcija. Dalyje „/ etc/shorewall/rules“ tai atliksite pridėdami tokią eilutę:

SSH(DNAT)	net		loc:192.168.1.25

Aukščiau mes apibrėžėme, kad visi SSH skirti paketai, ateinantys iš tinklo zonos į užkardą, turi būti nukreipti (DNAT) į 22 prievadą mašinoje, kurios adresas 192.168.1.25.

Tai vadinama tinklo adresų vertimu arba NAT. "D" paprasčiausiai nurodo Shorewall, kad tai yra paskirties adreso NAT.

Kad tai veiktų, jūsų branduolyje turite įjungti NAT palaikymą. Jei jums reikia NAT ir jo neturite, peržiūrėkite mano „Debian“ branduolio kompiliavimo pamoką.

Nuorodos nuorodos

„Shorewall“ tinklapis

Kitame straipsnyje mes apžvelgsime keletą pažangesnių temų, tačiau čia turėtų būti daug, kad galėtumėte pradėti nuo šiol. Kaip visada, prašome pažvelgti į vyro puslapius, kad gautumėte išsamesnį supratimą.