Shorewall - augsta līmeņa ugunsmūris Linux serveru konfigurēšanai


Ugunsmūra iestatīšana operētājsistēmā Linux var būt ļoti biedējoša iesācējiem vai tiem, kas nav ļoti pazīstami ar iptables. Par laimi, Shorewall ir ļoti viegli lietojams risinājums.

Šajā daudzdaļīgajā apmācībā es jums iesākšu darbu ar Shorewall un iepazīstināšu jūs ar dažām sarežģītākām tēmām, izmantojot šo lielisko ugunsmūra sistēmu.

Kas ir Shorewall?

Shorewall būtībā ir iptables priekšgals, taču tā ir komandrindas vides priekšējā daļa, kuras konfigurēšanai tiek izmantoti vairāki teksta faili. Kaut arī Shorewall ir spēcīga ugunsmūra sistēma, kuru var mērogot ļoti lielos tīklos, kas apkalpo daudzas mašīnas, mēs sāksim ar pamata divu interfeisu konfigurāciju un pielaidīsim pamatus.

Divu interfeisu konfigurāciju veido mašīna ar diviem Ethernet pieslēgvietām, no kurām viena ienāk, bet otra - vietējā tīklā.

Shorewall instalēšana Linux

Shorewall var instalēt, izmantojot apt-get un yum pakotņu pārvaldnieka rīkus.

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

Pēc instalēšanas mums ir jāpārkopē konfigurācijas paraugs no direktorija “/ usr/share/doc/shorewall” uz Shorewall noklusējuma direktoriju “/ etc/shorewall”.

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

Un tad CD uz/etc/shorewall.

$ cd /etc/shorewall

Ja ieskatāmies šajā direktorijā, mēs redzam virkni failu un shorewall.conf failu. Shorewall skatās tīklu kā dažādu zonu grupu, tāpēc pirmais fails, kuru vēlamies apskatīt, ir fails “/ etc/shorewall/zonas”.

Šeit mēs redzam, ka pēc noklusējuma ir trīs zonas: net, loc un visas. Ir svarīgi atzīmēt, ka Shorewall izturas pret pašu ugunsmūra mašīnu kā savu zonu un glabā to mainīgajā ar nosaukumu $FW. Šis mainīgais būs redzams visos pārējos konfigurācijas failos.

Fails “/ etc/shorewall/zonas” ir diezgan pašsaprotams. Jums ir tīkla zona (saskarne ar internetu), lokālā zona (saskarne ar LAN saskarne) un viss, kas ir viss.

Šī iestatīšana ļauj atteikties no:

  1. Tas ļauj visiem savienojuma pieprasījumiem no lokālās zonas (LAN) uz tīkla zonu (internetu).
  2. visi savienojuma pieprasījumi (ignorēti) tiek nomesti no tīkla zonas uz ugunsmūri un LAN.
  3. noraida un reģistrē visus pārējos pieprasījumus.

Bitam LOG LEVEL vajadzētu būt pazīstamam ikvienam, kurš ir veicis administrēšanu ar Apache, MySQL vai jebkuru citu citu FOSS programmu. Šajā gadījumā mēs sakām Shorewall izmantot mežizstrādes informācijas līmeni.

Ja vēlaties, lai ugunsmūris būtu pieejams administrēšanai no LAN, varat savai failam “/ etc/shorewall/policy” pievienot šādas rindas.

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

Tagad, kad mūsu zonas un politika ir iestatīta, mums ir jākonfigurē mūsu saskarnes. Jūs to darāt, rediģējot failu “/ etc/shorewall/interfaces”.

Šeit mēs esam iestatījuši mūsu interneta saskarni kā eth0 tīkla zonai. Vietējā LAN pusē esam iestatījuši otru interfeisu eth1 lokālajai zonai. Lūdzu, pielāgojiet šo failu, lai pareizi aktivizētu jūsu konfigurāciju.

Dažādas iespējas, kuras varat ievietot kādā no šīm saskarnēm, ir plašas, un tās vislabāk ir detalizēti izskaidrotas manā lapā.

$ man shorewall-interfaces

Dažas no tām ātri tiek noturētas šādi:

  1. nosmurfs - filtrē paketes ar apraides adresi kā avotu.
  2. logmartians - žurnāla paketes ar neiespējamu avota adresi.
  3. routefilter - kodola maršruta filtrēšana pretkrāpšanas novēršanai.

Protams, tagad, kad mūsu sistēma ir ugunsmūrēta, mums būs nepieciešami noteikti savienojumi, lai tos varētu paveikt. Jūs tos definējat noteikumu failā vietnē “/ etc/shorewall/rules”.

Sākumā šis fails izskatās mulsinošs, galvenokārt tāpēc, ka kolonnas pārklājas, bet galvenes ir diezgan pašsaprotamas. Pirmkārt, jums ir sleja ACTION, kas raksturo to, ko vēlaties veikt.

Pēc tam jums ir galvene SOURCE, kurā jūs definējat zonu, no kuras nāk pakete. Tad jums ir jūsu DEST vai galamērķis, kas ir galamērķa zona vai IP adrese. Izmantosim piemēru.

Pieņemsim, ka vēlaties palaist SSH serveri aiz ugunsmūra mašīnā ar IP adresi 192.168.1.25. Jums ne tikai būs jāatver ugunsmūra ports, bet arī jāsaka ugunsmūrim, ka jebkurai datplūsmai, kas nāk no 22. porta, ir jānovirza uz mašīnu 192.168.1.25.

Tas ir pazīstams kā Port Forwarding. Tā ir izplatīta iezīme lielākajā daļā ugunsmūra/maršrutētāju. Sadaļā “/ etc/shorewall/rules” to izdarīsit, pievienojot šādu rindu:

SSH(DNAT)	net		loc:192.168.1.25

Iepriekš mēs esam definējuši visas SSH paredzētās paketes, kas nāk no tīkla zonas uz ugunsmūri, ir jānovirza (DNAT) uz mašīnas 22. portu ar adresi 192.168.1.25.

To sauc par tīkla adrešu tulkošanu vai NAT. “D” vienkārši norāda Shorewall, ka tas ir NAT galamērķa adresei.

Lai tas darbotos, kodolā jābūt iespējotam NAT atbalstam. Ja jums nepieciešama NAT un jums to nav, lūdzu, skatiet manu apmācību par Debian kodola atkārtotu kompilēšanu.

Atsauces saites

Shorewall mājas lapa

Nākamajā rakstā mēs aplūkosim dažas progresīvākas tēmas, taču šeit vajadzētu būt daudz, lai jūs tagad sāktu darbu. Kā vienmēr, lūdzu, ieskatieties cilvēka lapās, lai iegūtu dziļāku izpratni.