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