Baza znanja Preprosta navodila za delo s storitvijo Profitserver
Glavne Baza znanja Konfiguracija požarnega zidu v sistemu Linux

Konfiguracija požarnega zidu v sistemu Linux


Požarni zid v sistemu Linux ima ključno vlogo pri varovanju računalniškega sistema. Deluje kot ovira, nadzoruje in filtrira omrežni promet, da zaščiti sistem pred nepooblaščenim dostopom, napadi in drugimi grožnjami. Brez pravilno konfiguriranega požarnega zidu je lahko strežnik ranljiv za različne vrste kibernetskih napadov, kar ima resne posledice za varnost in zaupnost podatkov.

V tem članku si bomo ogledali dve glavni orodji za konfiguracijo požarnega zidu Linux: firewalld in iptables. Izvedli bomo primerjalno analizo njihovih značilnosti, funkcionalnosti in prednosti. Poleg tega bomo zagotovili podrobna navodila za nastavitev in uporabo vsakega od teh orodij ter razpravljali o najboljših praksah za zaščito vašega sistema s požarnim zidom na platformi Linux. Vsa dejanja bodo prikazana na a virtualni strežnik s korenskim dostopom.

Konfiguracija požarnega zidu v sistemu Linux

Požarni zid (Firewall Daemon) je program za upravljanje požarnega zidu v operacijskih sistemih Linux. Zagotavlja uporabniški vmesnik za konfiguriranje pravil požarnega zidu, omogočanje ali blokiranje povezav omrežnih aplikacij. V večini strežniških distribucij je privzeto vnaprej nameščen. Če Firewalld ni vnaprej nameščen, ga je mogoče namestiti neodvisno iz uradnih skladišč distribucije.

Za sisteme Red Hat (kot so RHEL, CentOS, Fedora) se namestitev izvede z ukazom:

yum install firewalld

Za Debian/Ubuntu:

apt-get install firewalld

Po namestitvi ga lahko takoj zaženemo in aktiviramo z ukazom:

systemctl start firewalld

Nato morate dodati storitev v zagon:

systemctl enable firewalld
Dodajanje požarnega zidu v samodejno nalaganje Linuxa

Na tej točki priporočamo, da onemogočite ufw, saj sočasna uporaba tega orodja s požarnim zidom ali iptables ni priporočljiva. Preverite stanje:

systemctl status ufw
Preverjanje ufw linux

Če ga želite ustaviti, vnesite ukaz:

systemctl stop ufw

Za popolno deaktivacijo:

ufw disable

Po teh dejanjih lahko nadaljujete s konfiguracijo požarnega zidu.

Najprej je treba določiti cone zaupanja. Firewalld uporablja koncept con za določanje stopnje zaupanja za omrežne vmesnike. Vsakemu vmesniku je dodeljeno eno območje in pravila požarnega zidu se uporabljajo glede na območje. Seznam vseh razpoložljivih con odprete z ukazom:

firewall-cmd --get-zones

Običajno se uporabljajo 4 glavne cone:

  1. javno: To območje je za omrežja, ki se vam zdijo nevarna;
  2. Zasebno: Velja za domača omrežja ali druge zaupanja vredne omrežne povezave;
  3. notranja: Uporablja se za notranja omrežja, kot so tista znotraj organizacije ali omrežja podjetja;
  4. DMZ: To območje je mesto, kjer so običajno nameščeni strežniki, ki bi morali biti dostopni iz interneta.

Vendar je to le en primer. Svojo cono lahko dodate z ukazom:

firewall-cmd --permanent --new-zone=nameyourzone

Po dodajanju je potrebno ponovno nalaganje:

firewall-cmd --reload

Za brisanje cone se uporablja podobna metoda

firewall-cmd --permanent --delete-zone=nameyourzone

Po določitvi območij je potrebno omogočiti promet za potrebne storitve in vrata. Če želite omogočiti določeno storitev, uporabite ukaz:

firewall-cmd --zone=public --add-service=name

Kje Ime je ime storitve. Če želite na primer omogočiti promet za Apache:

firewall-cmd --zone=public --add-service=http

Če želite določiti dovoljena vrata, uporabite ukaz:

firewall-cmd --zone=public --add-port=number/protocol

Na primer, standardna vrata 22 za SSH bi izgledala takole:

firewall-cmd --zone=public --add-port=22/tcp

Na tej stopnji so glavna pravila že ustvarjena. Nato določite, kako bo promet obdelan glede na vir, cilj, vrata in druga merila. Če želite dodati pravilo (z uporabo javnega območje kot primer):

firewall-cmd --zone=public rule

Če želite na primer dovoliti dohodni promet iz katerega koli vira do vrat 80 (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

Če želite odstraniti pravilo:

firewall-cmd --permanent --remove-rule=rule_specification

Kje izreči je vrsta pravila (npr. pristanišče, storitev, bogato pravilo itd.) in specifikacija_pravila je specifikacija samega pravila.

Ko spremenite konfiguracijo Firewalld, jih morate shraniti in uporabiti. Za shranjevanje sprememb uporabite ukaz:

firewall-cmd --runtime-to-permanent

Če želite uporabiti spremembe:

firewall-cmd --reload

Po končani nastavitvi lahko preverite izbrane parametre tako, da odprete seznam vseh pravil:

firewall-cmd --list-all
pravila požarnega zidu Linux

Če pride do težav, preverite dnevnike požarnega zidu z ukazom:

journalctl -u firewalld

Opomba: Pokrili smo samo splošni algoritem za nastavitev povezave. Orodje ima široko funkcionalnost. Za popolne informacije o vseh razpoložljivih možnostih lahko uporabite uradna dokumentacija ali odpri pomoč:

firewall-cmd --help

Konfiguriranje iptables v sistemu Linux

Za razliko od Firewallda je iptables starejše, a še vedno pogosto uporabljeno orodje v Linuxu za upravljanje požarnega zidu. Zagotavlja bolj neposreden in prilagodljiv pristop k pravilom filtriranja paketov na ravni jedra Linuxa. Vendar pa iptables zahteva naprednejše znanje in izkušnje v primerjavi s Firewalldom, zaradi česar je manj dostopen za začetnike. Preverite vnaprej nameščeno različico orodja z ukazom:

iptables -V

Če orodje ni nameščeno, ga bo treba namestiti. Ukaz za namestitev na Ubuntu, Debian:

apt install iptables

Za sisteme Red Hat (npr. CentOS, Fedora):

yum install iptables

Ukaz za aktivacijo po namestitvi:

systemctl start iptables

Če želite dodati k zagonu, izvedite:

systemctl enable iptables

Pred začetkom konfiguracije iptables je pomembno razumeti, kako deluje. K temu pomaga sintaksa programa. Videti je takole:

iptables -t table action chain additional_parameters

Poglobimo se v vsako postavko.

Iptables ima štiri glavne tabele: filter, nat, mangle in raw. Vsak je zasnovan za obdelavo določenih vrst paketov in ima svoje verige pravil:

  1. filter: To je najpogosteje uporabljena tabela, ki vsebuje pravila za filtriranje paketov. Uporablja se za sprejemanje odločitev o tem, ali dovoliti ali zavrniti pakete.
  2. nat: Ta tabela se uporablja za spreminjanje omrežnih naslovov in vrat v paketih. Pogosto se uporablja za nastavitev maskiranja (NAT).
  3. klopi: V tej tabeli lahko spreminjate glave paketov. Uporablja se za posebne paketne operacije, kot je označevanje.
  4. surovi: Ta tabela se uporablja za konfiguracijo pravil, ki veljajo, preden gredo skozi sistem za sledenje povezavi. Običajno se uporablja za nastavitev pravil, ki jih sistem za sledenje ne sme spreminjati, kot je izpuščanje paketov z določenih naslovov.

Vsaka tabela vsebuje niz verig. Verige so zaporedje pravil, ki se preverjajo zaporedno. Obstajajo tri vnaprej določene verige:

  1. INPUT (dohodni). Pravila v tej verigi določajo, kaj storiti s prejetimi paketi.
  2. IZHOD (odhodni). Ta veriga velja za vse pakete, ki jih vaš računalnik pošlje drugim napravam ali računalnikom v omrežju.
  3. NAPREJ (posredovanje). Pravila v tej verigi določajo, kaj storiti s posredovanimi paketi.

Končno ima vsaka veriga neko akcijo (cilj). V praksi se uporablja 5 glavnih dejanj:

  1. SPREJEMO: Dovolite, da paket preide skozi požarni zid.
  2. DROP: Zavrnite paket in ga zavrzite brez odgovora.
  3. ZAVRNITI: Zavrnite paket in pošljite pošiljatelju sporočilo o napaki ICMP.
  4. LOG: zabeležite paket v sistemski dnevnik in izvedite drugo dejanje (npr. SPREJMI ali IZVRŠI).
  5. NAZAJ: prenehajte preverjati pravila v trenutni verigi in se vrnite v klicno verigo (če je primerno).

Za začetek nastavitve odprite seznam obstoječih pravil z ukazom:

iptables -L
Konfiguracija požarnega zidu v sistemu Linux

Kot vodnik za konfiguriranje Iptables si poglejmo praktične primere najpogosteje uporabljenih ukazov. Zaradi udobja bomo primere razdelili v 3 skupine, odvisno od določene verige.

Chain INPUT:

  1. Dovoli dohodni promet prek protokola TCP na vratih 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Dovolite dohodni promet prek protokola UDP na vratih 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Blokirajte dohodni promet z določenega naslova IP:

iptables -A INPUT -s 192.168.1.100 -j DROP

Chain IZHOD:

  1. Dovoli odhodni promet prek protokola TCP na vratih 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Dovolite odhodni promet prek protokola UDP na vratih 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Blokirajte odhodni promet na določena vrata (na primer 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Chain NAPREJ:

  1. Blokiraj posredovan promet iz določenega obsega naslovov IP:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Blokirajte posredovanje paketov iz določenega omrežnega vmesnika:

iptables -A FORWARD -i eth1 -j DROP

3. Omejite število sočasnih povezav za določena vrata (v tem primeru 10 povezav na minuto na vratih 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Kot lahko vidite, je v vsakem posameznem primeru uporabljen dodaten argument (ukaz). Če želite dobiti celoten seznam možnih argumentov in splošno podporo za funkcionalnost orodja, vnesite:

iptables -h
seznam ukazov za nastavitev iptables linux

Če želite zagotoviti, da so nastavitve pravilne, znova vnesite ukaz za ogled seznama pravil:

iptables -L
Preverjanje pravil iptables linux

Če želite izbrisati določeno pravilo, uporabite ukaz:

iptables -D chain rule_number

Na primer, če želite izbrisati pravilo številka 1 iz verige INPUT, bo ukaz videti takole:

iptables -D INPUT 1

Če želite izbrisati vsa pravila z enim ukazom:

iptables -F

Pomembno opozorilo: pravila iptables se ne shranijo samodejno po ponovnem zagonu sistema ali storitve. Če želite shraniti pravila, jih je treba dodati v konfiguracijsko datoteko in obnoviti po ponovnem zagonu. The iptables-save in iptables-restore pripomočki lahko pomagajo pri tem. Če želite shraniti pravila, vnesite ukaz:

iptables-save > /etc/iptables/rules.v4

To shrani trenutna pravila iptables v datoteko rules.v4. Za obnovitev po ponovnem zagonu vnesite:

iptables-restore < /etc/iptables/rules.v4

Ta ukaz obnovi pravila iz datoteke rules.v4.

zaključek

Konfiguriranje požarnega zidu v sistemu Linux z uporabo požarnega zidu ali iptables je pomemben vidik zagotavljanja varnosti strežnika. Obe orodji nudita zanesljiv način za upravljanje omrežnega prometa in zaščito sistema pred nepooblaščenim dostopom in kibernetskimi napadi. Izbira med požarnim zidom in iptables je odvisna od posebnih potreb in preferenc uporabnika ob upoštevanju njune različne funkcionalnosti in prednosti.

❮ Prejšnji članek Uporabniki Linuxa: upravljanje in dovoljenja
Naslednji članek ❯ Diagnostika obremenitve strežnika

Vprašajte nas o VPS

Vedno smo pripravljeni odgovoriti na vaša vprašanja kadarkoli podnevi ali ponoči.