Algaja juhend iptables'ile, Linuxi tulemüür
Iptables on Linuxi operatsioonisüsteemidele ehitatud äärmiselt paindlik tulemüür. Olenemata sellest, kas olete Linuxi algaja või süsteemiadministraator, on ilmselt mingil moel iptables teile väga kasulik. Lugege edasi, kui näitame teile, kuidas konfigureerida kõige mitmekülgsemat Linuxi tulemüüri.
pildi autor ezioman.
Teave iptables'i kohta
iptables on käsurea tulemüüri utiliit, mis kasutab poliitikat, et lubada või blokeerida liiklust. Kui ühendus üritab teie süsteemis ennast sisse seada, otsib iptables oma nimekirjas reeglit, mis sobib sellega. Kui see ei leia ühtegi, siis lähtub see vaiketoimingust.
iptables on peaaegu alati eelinstallitud mis tahes Linuxi levitamises. Selle värskendamiseks / installimiseks laadige lihtsalt iptables pakett:
sudo apt-get installige iptables
Iptablesile on olemas GUI alternatiivid nagu Firestarter, kuid iptables ei ole tegelikult nii raske, kui teil on mõned käsud alla. Soovite olla iptables'i reeglite konfigureerimisel äärmiselt ettevaatlik, eriti kui olete SSH'd serverisse, sest üks vale käsk võib sulle jäädavalt lukustada, kuni see on füüsiliselt seadmesse fikseeritud..
Kettide tüübid
iptables kasutab kolme erinevat ahelat: sisend, edasi ja väljund.
Sisend - Seda ahelat kasutatakse sissetulevate ühenduste käitumise juhtimiseks. Näiteks, kui kasutaja üritab SSH-d teie arvutisse / serverisse proovida, püüab iptables sobitada IP-aadressi ja pordi sisendahela reegliga.
Edasi - Seda ahelat kasutatakse sissetulevate ühenduste jaoks, mida tegelikult ei tarnita kohapeal. Mõtle ruuterile - andmed saadetakse alati sellele, kuid harva suunatakse need ruuterile; andmed edastatakse lihtsalt oma eesmärgile. Kui te ei tee mingit marsruutimist, NATingit või midagi muud teie süsteemis, mis nõuab edastamist, siis seda ketki isegi ei kasuta.
On üks kindel viis kontrollida, kas teie süsteem kasutab / vajab edasiketteahelat.
iptables -L -v
Ülaltoodud ekraanipilt on serverist, mis on töötanud paar nädalat ja millel ei ole piiranguid sissetulevate või väljuvate ühenduste suhtes. Nagu näete, on sisendahel töödeldud 11GB pakette ja väljundahel on töödeldud 17GB. Seevastu ettepoole suunatud kett ei ole vaja ühe paketi töötlemiseks. See on sellepärast, et server ei tee mingit edastamist või seda ei kasutata läbipääsuks.
Väljund - Seda ahelat kasutatakse väljuvate ühenduste jaoks. Näiteks kui proovite ping howtogeek.com-i, kontrollib iptables oma väljundahelat, et näha, millised reeglid pingiga ja howtogeek.com-ga seonduvad, enne kui lubate või keelate ühenduse katse.
Hoiatus
Isegi kui välise peremehe pingutamine tundub olevat midagi, mis oleks vaja ainult väljundahela läbimist, pidage meeles, et andmete tagastamiseks kasutatakse ka sisendahelat. Kui kasutate iptables'i süsteemi lukustamiseks, pidage meeles, et paljud protokollid nõuavad kahesuunalist sidet, nii et nii sisend- kui ka väljundahelad peavad olema õigesti konfigureeritud. SSH on tavaline protokoll, mida inimesed unustavad mõlemale kettale lubada.
Poliitikaketi vaikimisi käitumine
Enne konkreetsete reeglite kasutuselevõttu ja seadistamist soovite otsustada, milline on kolme ahela vaikekäitumine. Teisisõnu, mida sa tahad, et iptables teeks, kui ühendus ei vasta olemasolevatele reeglitele?
Et näha, millised on teie poliitikakettide seadistused, et teha seda koos tasakaalustamata liiklusega, käivitage iptables -L
käsk.
Nagu näete, kasutasime ka grep käsku, et anda meile puhtam väljund. Sellel ekraanil arvatakse, et meie ketid aktsepteerivad liiklust.
Rohkem kui kord, tahad, et teie süsteem aktsepteerib vaikimisi ühendusi. Kui te pole eelnevalt muutnud poliisiketi eeskirju, peaks see seade olema juba konfigureeritud. Mõlemal juhul on siin käsk ühenduste vaikimisi vastu võtmiseks:
iptables - poliitika INPUT ACCEPT
iptables - poliitika OUTPUT ACCEPT
iptables - poliitikas FORWARD ACCEPT
Kui nõustute reegli aktsepteerimisega, saate iptables'iga teatud IP-aadresside või pordinumbrite keelamiseks kasutada kõiki teisi ühendusi. Me jõuame nende käskudega minuti pärast.
Kui te pigem keeldute kõigist ühendustest ja määrate käsitsi need, mida soovite ühendada, peaksite oma ketide vaikepoliitikat langema. See oleks ilmselt kasulik ainult serverite puhul, mis sisaldavad tundlikku teavet ja ainult kunagi on nendega samad IP-aadressid.
iptables - poliitika INPUT DROP
iptables - poliitika OUTPUT DROP
iptables - Poliitika FORWARD DROP
Ühendusega seotud vastused
Vaikimisi seadistatud ahelapoliitikate abil saate reeglite lisamist iptables'ile alustada, nii et ta teab, mida teha, kui ta puutub kokku konkreetse IP-aadressi või -portiga. Selles juhendis läheme üle kolme kõige tavalisema ja sagedamini kasutatava vastuse.
Nõustu - Luba ühendus.
Drop - Lülitage ühendus, toimige nagu see polnud kunagi juhtunud. See on parim, kui te ei soovi, et allikas mõistaks teie süsteemi olemasolu.
Keeldu - Ärge lubage ühendust, kuid saatke viga tagasi. See on kõige parem, kui te ei soovi, et konkreetne allikas teie süsteemiga ühenduks, kuid sa tahad, et nad teaksid, et teie tulemüür on neid blokeerinud.
Parim viis nende kolme reegli erinevuse näitamiseks on näidata, milline näeb välja, kui arvuti üritab pingutada Linuxi masinat iptablesiga, mis on konfigureeritud iga sellise sätte jaoks.
Ühenduse lubamine:
Ühenduse katkestamine:
Ühenduse tagasilükkamine:
Konkreetsete ühenduste lubamine või blokeerimine
Teie poliitikakettide konfigureerimise abil saate nüüd seadistada iptables'i teatud aadresside, aadressivahemike ja sadamate lubamiseks või blokeerimiseks. Nendes näidetes seame ühendused DROP
, kuid saate neid vahetada ACCEPT
või REJECT
, sõltuvalt teie vajadustest ja poliitikakettide konfigureerimisest.
Märkus. Nendes näidetes kasutame iptables -A
lisada eeskirjad olemasolevale ahelale. iptables algab oma nimekirja ülaosast ja läbib iga reegli, kuni ta leiab, et see sobib. Kui teil on vaja lisada reegel üle teise, saate seda kasutada iptables -I [kett] [number]
numbri täpsustamiseks loendis.
Ühendused ühest IP-aadressist
See näide näitab, kuidas blokeerida kõik ühendused IP-aadressilt 10.10.10.10.
iptables -A INPUT-id 10.10.10.10 -j DROP
Ühendused IP-aadresside hulgast
See näide näitab, kuidas blokeerida kõik 10.10.10.0/24 võrgupiirkonna IP-aadressid. IP-aadresside vahemiku täpsustamiseks saate kasutada võrgukaarti või tavalist kaldkriipsu.
iptables -A INPUT-id 10.10.10.0/24 -j DROP
või
iptables -A INPUT-id 10.10.10.0/255.255.255.0 -j DROP
Ühendused konkreetse pordiga
See näide näitab, kuidas blokeerida SSH-ühendused alates 10.10.10.10.
iptables -A INPUT -p tcp - import ssh -s 10.10.10.10 -j DROP
“Ssh” saate asendada mis tahes protokolli või pordi numbriga. The -p tcp
osa koodist ütleb iptablesile, millist ühendust protokoll kasutab. Kui blokeerisite protokolli, mis kasutab pigem UDP-d kui TCP-d -p udp
oleks vaja.
See näide näitab, kuidas blokeerida SSH-ühendused mis tahes IP-aadressist.
iptables -A INPUT -p tcp - dport ssh -j DROP
Ühendusriigid
Nagu me juba varem mainisime, vajavad paljud protokollid kahesuunalist suhtlust. Näiteks, kui soovite lubada SSH-ühendusi oma süsteemiga, vajavad sisend- ja väljundahelad neile lisatud reeglit. Aga mis siis, kui tahad, et SSH teie süsteemi siseneks? Kui väljundahelale reeglit ei lisata, lubatakse ka väljuvaid SSH-katseid?
See on koht, kus liitumisolekud tulevad, mis annavad teile võimaluse kahesuunaliseks suhtluseks lubada, kuid lubada ainult ühe suuna ühendusi. Vaadake seda näidet, kus on lubatud SSH-ühendused 10.10.10.10-st, kuid SSH-ühendused kuni 10.10.10.10 ei ole. Süsteemil on siiski lubatud edastada SSH-lt teavet seni, kuni seanss on juba loodud, mis teeb SSH-side võimalikuks nende kahe peremehe vahel.
iptables -A INPUT -p tcp - import ssh -s 10.10.10.10 -m olek - olek UUS, ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp - sport 22 -d 10.10.10.10 -m olek - riik ESTABLISHED -j ACCEPT
Muudatuste salvestamine
Iptables'i reeglite muudatused lammutatakse järgmisel korral, kui iptables teenus taaskäivitatakse, kui te ei tee muudatusi salvestamiseks käsku. See käsk võib erineda sõltuvalt teie levikust:
Ubuntu:
sudo / sbin / iptables-save
Red Hat / CentOS:
/ sbin / service iptables salvestada
Or
/etc/init.d/iptables salvestada
Muud käsud
Loetle praegu konfigureeritud iptables reeglid:
iptables -L
Lisamine -v
valik annab teile pakett- ja baitinformatsiooni ning lisab -n
loetleb kõik arvuliselt. Teisisõnu - hostnimed, protokollid ja võrgud on loetletud numbritena.
Kõigi praegu konfigureeritud reeglite kustutamiseks saate väljastada hoopis käsu.
iptables -F