Linuxi tulemüür mängib arvutisüsteemi turvamisel olulist rolli. See toimib tõkkena, kontrollides ja filtreerides võrguliiklust, et kaitsta süsteemi volitamata juurdepääsu, rünnakute ja muude ohtude eest. Ilma korralikult konfigureeritud tulemüürita võib server olla haavatav erinevat tüüpi küberrünnakute suhtes, mis toob kaasa tõsiseid tagajärgi andmete turvalisusele ja konfidentsiaalsusele.
Selles artiklis vaatleme kahte peamist Linuxi tulemüüri seadistamise tööriista: firewalld ja iptables. Teeme nende omaduste, funktsionaalsuse ja eeliste võrdleva analüüsi. Lisaks pakume üksikasjalikke juhiseid iga tööriista seadistamiseks ja kasutamiseks ning arutame parimaid tavasid oma süsteemi turvamiseks Linuxi platvormil tulemüüriga. Kõiki toiminguid demonstreeritakse virtuaalserveris, millel on juurjuurdepääs.
Tulemüüri konfigureerimine Linuxis
Firewalld (tulemüürideemon) on programm Linuxi operatsioonisüsteemide tulemüüri haldamiseks. See pakub kasutajaliidest tulemüürireeglite konfigureerimiseks, võrgurakenduste ühenduste lubamiseks või blokeerimiseks. See on enamikus serverijaotistes vaikimisi eelinstallitud. Kui Firewalld pole eelinstallitud, saab selle installida eraldi jaotuse ametlikest hoidlatest.
Red Hat süsteemide (nt RHEL, CentOS, Fedora) puhul toimub installimine käsuga:
yum install firewalld
Debiani/Ubuntu jaoks:
apt-get install firewalld
Pärast installimist saab selle kohe käivitada ja aktiveerida käsuga:
systemctl start firewalld
Järgmisena peate käivitamiseks lisama teenuse:
systemctl enable firewalld
Siinkohal soovitame ufw keelata, kuna selle tööriista samaaegne kasutamine tulemüüri või iptablesiga ei ole soovitatav. Kontrollige olekut:
systemctl status ufw
Selle peatamiseks sisestage käsk:
systemctl stop ufw
Täielikuks deaktiveerimiseks:
ufw disable
Pärast neid toiminguid saate jätkata tulemüüri konfigureerimist.
Esiteks on vaja määratleda usaldustsoonid. Firewalld kasutab võrguliideste usaldusväärsuse määramiseks tsoonide kontseptsiooni. Igale liidesele on määratud üks tsoon ja tulemüürireegleid rakendatakse tsooni alusel. Kõigi saadaolevate tsoonide loend avatakse käsuga:
firewall-cmd --get-zones
Tavaliselt kasutatakse 4 põhitsooni:
- avalik: see tsoon on mõeldud võrkudele, mida peate ebaturvaliseks;
- Era-: kehtib koduvõrkude või muude usaldusväärsete võrguühenduste kohta;
- sisemine: kasutatakse sisevõrkude jaoks, näiteks organisatsiooni või ettevõtte võrgu sees;
- DMZ: see tsoon on koht, kus tavaliselt paigutatakse serverid, mis peaksid olema Internetist juurdepääsetavad.
See on siiski vaid üks näide. Oma tsooni saate lisada käsuga:
firewall-cmd --permanent --new-zone=nameyourzone
Pärast lisamist on vaja uuesti laadida:
firewall-cmd --reload
Tsooni kustutamiseks kasutatakse sarnast meetodit
firewall-cmd --permanent --delete-zone=nameyourzone
Pärast tsoonide määratlemist on vaja liiklust võimaldada vajalike teenuste ja sadamate jaoks. Teatud teenuse lubamiseks kasutage käsku:
firewall-cmd --zone=public --add-service=name
Kus nimi on teenuse nimi. Näiteks Apache liikluse lubamiseks:
firewall-cmd --zone=public --add-service=http
Lubatud portide määratlemiseks kasutage käsku:
firewall-cmd --zone=public --add-port=number/protocol
Näiteks SSH standardne 22 port näeks välja selline:
firewall-cmd --zone=public --add-port=22/tcp
Selles etapis on põhireeglid juba loodud. Järgmisena määrake, kuidas liiklust töödeldakse, olenevalt allikast, sihtkohast, pordist ja muudest kriteeriumidest. Reegli lisamiseks ( näitena avalik tsoon):
firewall-cmd --zone=public rule
Näiteks sissetuleva liikluse lubamiseks mis tahes allikast porti 80 (HTTP):
firewall-cmd --zone=public --add-port=80/tcp --permanent
Reegli eemaldamiseks toimige järgmiselt.
firewall-cmd --permanent --remove-rule=rule_specification
Kus reegel on reegli tüüp (nt port, teenus, rikkalik reegel jne) ja reegli_spetsifikatsioon on reegli enda spetsifikatsioon.
Pärast tulemüüri konfiguratsiooni muudatuste tegemist tuleb need salvestada ja rakendada. Muudatuste salvestamiseks kasutage käsku:
firewall-cmd --runtime-to-permanent
Muudatuste rakendamiseks tehke järgmist.
firewall-cmd --reload
Pärast seadistamise lõpetamist saate kontrollida valitud parameetreid, avades kõigi reeglite loendi:
firewall-cmd --list-all
Probleemide ilmnemisel kontrollige tulemüüri logisid käsuga:
journalctl -u firewalld
Märkus: Oleme käsitlenud ainult ühenduse loomise üldist algoritmi. Tööriistal on ulatuslik funktsionaalsus. Täieliku teabe saamiseks kõigi saadaolevate valikute kohta saate kasutada ametlikku dokumentatsiooni või avada abi:
firewall-cmd --help
IPtablesi konfigureerimine Linuxis
Erinevalt tulemüürist on iptables vanem, kuid Linuxis siiski laialdaselt kasutatav tööriist tulemüüri haldamiseks. See pakub otsesemat ja paindlikumat lähenemist pakettide filtreerimise reeglitele Linuxi kerneli tasemel. Kuid iptables nõuab Firewalldiga võrreldes täpsemaid teadmisi ja kogemusi, mistõttu on see algajatele vähem juurdepääsetav. Kontrollige tööriista eelinstallitud versiooni käsuga:
iptables -V
Kui tööriist pole installitud, tuleb see installida. Ubuntu, Debiani installimise käsk:
apt install iptables
Red Hat süsteemide jaoks (nt CentOS, Fedora):
yum install iptables
Käsk aktiveerimiseks pärast installimist:
systemctl start iptables
Käivitamisele lisamiseks käivitage:
systemctl enable iptables
Enne iptablesi konfigureerimise alustamist on oluline mõista, kuidas see töötab. Sellele aitab kaasa programmi süntaks. See näeb välja järgmine:
iptables -t table action chain additional_parameters
Süveneme igasse üksusse sügavamalt.
Iptablesil on neli peamist tabelit: filter, nat, mangle ja raw . Igaüks neist on loodud teatud tüüpi pakettide töötlemiseks ja neil on oma reeglite ahelad:
- filtreerida: see on kõige sagedamini kasutatav tabel, mis sisaldab pakettide filtreerimise reegleid. Seda kasutatakse pakettide lubamise või keelamise kohta otsuste tegemiseks.
- nat: seda tabelit kasutatakse pakettide võrguaadresside ja portide muutmiseks. Seda kasutatakse sageli maskeeringu (NAT) seadistamiseks.
- mangle: selles tabelis saate muuta pakettide päiseid. Seda kasutatakse spetsiaalsete paketitoimingute jaoks, näiteks märgistamiseks.
- toores: seda tabelit kasutatakse reeglite konfigureerimiseks, mis kehtivad enne ühenduse jälgimise süsteemi läbimist. Tavaliselt kasutatakse seda reeglite seadistamiseks, mida jälgimissüsteem ei tohiks muuta, näiteks teatud aadressidelt pakettide eemaldamiseks.
Iga tabel sisaldab kettide komplekti. Ketid on reeglite jada, mida kontrollitakse järjestikku. Eelmääratletud ahelaid on kolm:
- SISEND (sissetulev). Selle ahela reeglid määravad, mida teha sissetulevate pakettidega.
- VÄLJUND (väljaminev). See ahel kehtib kõikidele pakettidele, mida teie arvuti saadab teistele võrgus olevatele seadmetele või arvutitele.
- EDASI (edasi suunamine). Selle ahela reeglid täpsustavad, mida edasisaadetud pakettidega teha.
Lõpuks on igal ahelal mingi tegevus (sihtmärk). Praktikas kasutatakse 5 põhitoimingut:
- NÕUSTUN: lubage paketil tulemüüri läbida.
- DROP: lükake pakett tagasi ja visake see ära ilma vastuseta.
- KEELDUN: lükake pakett tagasi ja saatke saatjale ICMP tõrketeade.
- LOG: Logige pakett süsteemilogi ja tehke mõni muu toiming (nt ACCEPT või DROP).
- RETURN: lõpetage praeguse ahela reeglite kontrollimine ja pöörduge tagasi helistamisahelasse (kui see on kohaldatav).
Seadistamise alustamiseks avage olemasolevate reeglite loend käsuga:
iptables -L
Iptablesi seadistamise juhendina vaatame praktilisi näiteid enamkasutatavatest käskudest. Mugavuse huvides jagame näited 3 rühma, olenevalt konkreetsest ahelast.
Keti sisend :
- Sissetuleva liikluse lubamine TCP-protokolli kaudu pordis 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. Lubage sissetulev liiklus UDP-protokolli kaudu pordis 22:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. Blokeerige sissetulev liiklus konkreetselt IP-aadressilt.
iptables -A INPUT -s 192.168.1.100 -j DROP
Keti väljund :
- Luba väljuv liiklus TCP-protokolli kaudu pordis 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. Lubage väljaminev liiklus UDP-protokolli kaudu pordis 80:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. Blokeerige väljaminev liiklus konkreetsesse porti (näiteks 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
Kett EDASI :
- Teatud IP-aadresside vahemiku edastatud liikluse blokeerimine:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. Blokeerige pakettide edastamine kindlast võrguliidesest:
iptables -A FORWARD -i eth1 -j DROP
3. Piirake konkreetse pordi samaaegsete ühenduste arvu (selles näites 10 ühendust minutis pordis 80):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
Nagu näete, kasutatakse igal üksikul juhul täiendavat argumenti (käsku). Võimalike argumentide täieliku loendi ja tööriista funktsionaalsuse üldise toe saamiseks sisestage:
iptables -h
Seadete õigsuse tagamiseks sisestage reeglite loendi kuvamiseks käsk uuesti:
iptables -L
Konkreetse reegli kustutamiseks kasutage käsku:
iptables -D chain rule_number
Näiteks kui soovite SISEND-ahelast reegli number 1 kustutada, näeb käsk välja järgmine:
iptables -D INPUT 1
Kõigi reeglite kustutamiseks ühe käsuga:
iptables -F
Oluline märkus : iptables'i reegleid ei salvestata automaatselt pärast süsteemi või teenuse taaskäivitamist. Reeglite salvestamiseks tuleb need lisada konfiguratsioonifaili ja pärast taaskäivitamist taastada. Utiliidid iptables-save ja iptables-restore aitavad seda teha. Reeglite salvestamiseks sisestage järgmine käsk:
iptables-save > /etc/iptables/rules.v4
See salvestab kehtivad iptablesi reeglid failis rules.v4. Pärast taaskäivitamist taastamiseks sisestage:
iptables-restore < /etc/iptables/rules.v4
See käsk taastab reeglid failist rules.v4.
Järeldus
Tulemüüri konfigureerimine Linuxis tulemüüri või iptablesi abil on serveri turvalisuse tagamise oluline aspekt. Mõlemad tööriistad pakuvad usaldusväärseid vahendeid võrguliikluse haldamiseks ja süsteemi kaitsmiseks volitamata juurdepääsu ja küberrünnakute eest. Valik tulemüüri ja iptablesi vahel sõltub kasutaja konkreetsetest vajadustest ja eelistustest, arvestades nende erinevat funktsionaalsust ja tugevusi.