Linuxi tulemüüri algajatele mõeldud iptable'i juhend
Iptables on äärmiselt paindlik tulemüüri utiliit, mis on loodud Linuxi operatsioonisüsteemidele. Ükskõik, kas olete algaja Linuxi geek või süsteemiadministraator, võib iptables olla teile mõnevõrra kasulik. Loe edasi, kui näitame teile, kuidas konfigureerida kõige mitmekülgsemat Linuxi tulemüüri.
pildi autor ezioman.
Umbes iptables
iptables on käsurea tulemüüri utiliit, mis kasutab liikluse lubamiseks või blokeerimiseks poliitikakette. Kui ühendus üritab ennast teie süsteemis sisse seada, otsib iptables loendist reeglit, millega see sobitada. Kui seda ei leia, pöördutakse vaiketoimingu poole.
iptables on peaaegu alati eelinstallitud mis tahes Linuxi jaotusse. Selle värskendamiseks / installimiseks laadige lihtsalt pakett iptables:
sudo apt-get install iptables
Iptable'idele, nagu Firestarter, on GUI-de alternatiive, kuid iptables pole tegelikult nii raske, kui olete mõne käsu all hoidnud. Iptablesi reeglite konfigureerimisel soovite olla eriti ettevaatlik, eriti kui olete SSH-serveriks, sest üks vale käsk võib teid püsivalt lukustada, kuni see on füüsilises masinas käsitsi fikseeritud.
Kettide tüübid
iptables kasutab kolme erinevat ahelat: sisend, edastamine ja väljund.
Sisend - Seda ketti kasutatakse sissetulevate ühenduste käitumise juhtimiseks. Näiteks kui kasutaja proovib SSH-d teie arvutisse / serverisse proovida, üritavad iptables sobitada IP-aadressi ja pordi sisendahela reegliga.
Edasi - Seda ketti kasutatakse sissetulevate ühenduste jaoks, mida tegelikult kohalikult ei tarnita. Mõelge ruuterile - andmeid saadetakse sellele alati, kuid tegelikult on need mõeldud ruuterile endale; andmed edastatakse lihtsalt sihtmärgile. Kui te ei tee oma süsteemis mingisugust marsruutimist, NAT-i loomist või midagi muud, mis nõuab edastamist, ei kasuta te seda ketti isegi.
On üks kindel viis kontrollida, kas teie süsteem kasutab / vajab edasipääsuketti.
iptables -L -v
Ülaltoodud ekraanipilt on serverist, mis on töötanud paar nädalat ja millel ei ole sissetulevate ega väljuvate ühenduste suhtes mingeid piiranguid. Nagu näete, on sisendahel töötlenud 11GB pakette ja väljundahel 17GB. Edasikett seevastu pole ühe paketi töötlemiseks vajalik. Selle põhjuseks on asjaolu, et server ei edasta mingil viisil ega kasutata läbipääsuseadmena.
Väljund - Seda ketti kasutatakse väljuvate ühenduste jaoks. Näiteks kui proovite pingida howtogeek.com, kontrollib iptables enne ühenduse katse lubamise või keelamise otsust oma väljundahelat, et näha, millised reeglid on seotud pingiga ja howtogeek.com.
Hoiatus
Kuigi välise hosti pingimine tundub midagi sellist, mis vajaks vaid väljundahelat läbimist, pidage meeles, et andmete tagastamiseks kasutatakse ka sisendahelat. Kui kasutate süsteemi lukustamiseks iptablesi, pidage meeles, et paljud protokollid nõuavad kahesuunalist sidet, nii et nii sisend- kui ka väljundahel peab olema korralikult konfigureeritud. SSH on levinud protokoll, mida inimesed unustavad lubada mõlemas ahelas.
Poliitikaahela vaikekäitumine
Enne konkreetsete reeglite sisestamist ja konfigureerimist peate otsustama, milline on kolme ahela vaikekäitumine. Teisisõnu, mida soovite iptables teha, kui ühendus ei vasta olemasolevatele reeglitele?
Selleks, et näha, mida teie eeskirjade ahelad on praegu tasakaalustamata liiklusega seotud, käivitage iptables -L
käsk.
Nagu näete, kasutasime puhtama väljundi saamiseks ka käsku grep. Sellel ekraanipildil arvatakse meie ketid praegu liiklust aktsepteerivat.
Rohkem kui soovite, et teie süsteem aktsepteeriks vaikimisi ühendusi. Kui te pole reeglite ahela reegleid varem muutnud, peaks see seade juba olema konfigureeritud. Mõlemal juhul on siin vaikimisi ühenduste aktsepteerimiseks käsk:
iptables - poliitika INPUT ACCEPT
iptables - poliitika VÄLJUNDITE VASTUVÕTU
iptables - poliitika EDASI VASTUVÕTU
Vaikimisi aktsepteerimisreegli abil saate seejärel iptablesi abil konkreetsete IP-aadresside või pordinumbrite keelamiseks jätkata kõigi muude ühenduste aktsepteerimist. Nende käskudeni jõuame minutiga.
Kui te pigem keelaksite kõik ühendused ja määraksite käsitsi ühenduse loomise, peaksite muutma oma kettide vaikepoliitikat. Selle tegemine oleks tõenäoliselt kasulik ainult serverite jaoks, mis sisaldavad tundlikku teavet ja millel on alati ainult samad IP-aadressid.
iptables - poliitika INPUT DROP
iptables - poliitika OUTPUT DROP
iptables - poliitika FORWARD DROP
Ühenduspõhised vastused
Kui teie vaikeahelareeglid on konfigureeritud, saate hakata iptablesile reegleid lisama, et ta teaks, mida teha, kui ta leiab ühenduse konkreetselt IP-aadressilt või pordilt. Selles juhendis tutvume kolme kõige tavalisema ja sagedamini kasutatava vastusega.
Nõus - Luba ühendus.
Tilk - Katkesta ühendus, käitu nii, nagu seda pole 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 parim, kui te ei soovi, et mõni konkreetne allikas teie süsteemiga ühendust looks, kuid soovite, et nad teaksid, et teie tulemüür blokeeris need.
Parim viis nende kolme reegli erinevuse näitamiseks on näidata, kuidas see välja näeb, kui arvuti proovib iga sellise sätte jaoks konfigureeritud iptablesiga Linuxi masinat pingida.
Ühenduse lubamine:
Ühenduse katkestamine:
Ühenduse tagasilükkamine:
Spetsiifiliste ühenduste lubamine või blokeerimine
Konfigureeritud poliitikaahelate abil saate nüüd konfigureerida iptables konkreetsete aadresside, aadressivahemike ja pordide lubamiseks või blokeerimiseks. Nendes näidetes määrame ühendused Tilk
, kuid saate neid ümber lülitada VASTU
või KEELDA
, sõltuvalt teie vajadustest ja sellest, kuidas te oma poliitikaahelad seadistasite.
Märkus. Nendes näidetes kasutame iptables -A
olemasolevale ahelale reeglite lisamiseks. iptables algab loendi ülaosast ja läbib iga reegli, kuni leiab selle, mis talle sobib. Kui peate reegli lisama teise kohale, saate seda kasutada iptables -I [kett] [number]
numbri täpsustamiseks, mis see loendis peaks olema.
Ühendused ühest IP-aadressist
See näide näitab, kuidas blokeerida kõik ühendused IP-aadressilt 10.10.10.10.
iptables -A SISEND -s 10.10.10.10 -j DROP
Ühendused IP-aadresside vahemikust
See näide näitab, kuidas blokeerida kõik 10.10.10.0/24 võrgupiirkonnas olevad IP-aadressid. IP-aadresside vahemiku määramiseks võite kasutada võrgumaskit või kaldkriipsu märget.
iptables -A SISEND -s 10.10.10.0/24 -j DROP
või
iptables -A SISEND -s 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 SISEND -p tcp --dport ssh -s 10.10.10.10 -j DROP
Ssh saate asendada mis tahes protokolli või pordinumbriga. The -p tcp
osa koodist ütleb iptablesile, millist ühendust protokoll kasutab. Kui blokeerite protokolli, mis kasutab TCP asemel UDP-d, siis -p udp
oleks selle asemel vajalik.
See näide näitab, kuidas blokeerida SSH-ühendused mis tahes IP-aadressilt.
iptables -A SISEND -p tcp --port ssh -j DROP
Ühenduse olekud
Nagu me varem mainisime, vajavad paljud protokollid kahepoolset suhtlust. Näiteks kui soovite lubada SSH-ühendusi oma süsteemiga, vajavad sisend- ja väljundahelad neile reeglit. Aga mis siis, kui soovite, et SSH-i sisenemine teie süsteemi oleks lubatud? Kas reegli lisamine väljundahelasse ei võimalda ka väljuvaid SSH-i katseid?
Seal tulevad ühenduse olekud, mis võimaldavad teil võimaldada kahesuunalist suhtlust, kuid võimaldavad luua ainult ühesuunalisi ühendusi. Vaadake seda näidet, kus SSH-ühendused alates 10.10.10.10 on lubatud, kuid SSH-ühendused TO 10.10.10.10 pole lubatud. Kuid süsteemil on lubatud SSH kaudu teavet tagasi saata, kui seanss on juba loodud, mis muudab SSH-i suhtlemise nende kahe hosti vahel võimalikuks.
iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state - riik NEW, ESTABLISED -j ACCEPT
iptables -A VÄLJUND -p tcp - sport 22 -d 10.10.10.10 -m olek - riik ESTABLISHED -j ACCEPT
Muudatuste salvestamine
Iptables-reeglites tehtud muudatused tühistatakse järgmisel korral, kui iptables-teenus taaskäivitatakse, kui te muudatuste salvestamiseks käsku ei käivita. See käsk võib teie levitamisest olenevalt erineda:
Ubuntu:
sudo / sbin / iptables-save
Red Hat / CentOS:
/ sbin / service iptables salvestab
Või
/etc/init.d/iptables salvestada
Muud käsud
Loetlege praegu konfigureeritud iptables-reeglid:
iptables -L
Lisamine -v
Valik annab teile pakettide ja baitide teabe ning lisamise -n
loetleb kõik numbriliselt. Teisisõnu - hostinimed, protokollid ja võrgud on loetletud numbritena.
Kõigi praegu konfigureeritud reeglite kustutamiseks võite anda käsu loputus.
iptables -F