Iptablesi algaja juhend, Linuxi tulemüür

Sisukord:

Iptablesi algaja juhend, Linuxi tulemüür
Iptablesi algaja juhend, Linuxi tulemüür

Video: Iptablesi algaja juhend, Linuxi tulemüür

Video: Iptablesi algaja juhend, Linuxi tulemüür
Video: Не заводится бензокоса (диагностика и ремонт) - YouTube 2024, Aprill
Anonim
Iptables on Linuxi operatsioonisüsteemide jaoks loodud äärmiselt paindlik tulemüüri utiliit. Olenemata sellest, kas olete algaja Linuxi geek või süsteemiadministraator, on tõenäoliselt mõni viis, kuidas iptablesi saab teile suurepäraselt kasutada. Loe edasi, kui näeme teile, kuidas kõige mitmekülgse Linuxi tulemüüri konfigureerida.
Iptables on Linuxi operatsioonisüsteemide jaoks loodud äärmiselt paindlik tulemüüri utiliit. Olenemata sellest, kas olete algaja Linuxi geek või süsteemiadministraator, on tõenäoliselt mõni viis, kuidas iptablesi saab teile suurepäraselt kasutada. Loe edasi, kui näeme teile, kuidas kõige mitmekülgse Linuxi tulemüüri konfigureerida.

pildi autor Eziooman.

Info iptablesi kohta

iptables on käsurea tulemüüri utiliit, mis kasutab liikluse lubamiseks või blokeerimiseks poliitilisi ahelaid. Kui ühendus üritab end süsteemis luua, otsib iptables oma loendis reegli, mis vastab sellele. Kui ta seda ei leia, pöördub ta vaikimisi poole.

Iptables on peaaegu alati Linuxi levitamisel eelinstallitud. Selle värskendamiseks / installimiseks laadige lihtsalt iptablesi pakett:

sudo apt-get install iptables

Iptablesile on GUI alternatiivid nagu Firestarter, kuid iptables pole tegelikult nii raske, kui sul on vähe käske. Iptablesi reeglite seadistamisel on eriti ettevaatlik, eriti kui olete SSH serverisse sisse lülitanud, sest üks vale käsk võib sulle püsivalt lukustada, kuni see on fikseeritud käsitsi fikseeritud.

Ketid

iptables kasutab kolme erinevat ahelat: sisend, edasi ja väljund.

Sisend - Seda ahelat kasutatakse sissetulevate ühenduste käitumise kontrollimiseks. Näiteks kui kasutaja üritab SSH-d oma arvutisse / serverisse proovida, iptables üritab sisendhela reeglis olevat IP-aadressi ja porti sobitada.

Edasi - Seda ketti kasutatakse sissetulevate ühenduste jaoks, mida tegelikult kohaletoimetatakse ei toimu. Mõelge ruuterile - sellele saadetakse alati andmeid, kuid harva on see tegelikult määratud ruuteri enda jaoks; andmed edastatakse lihtsalt eesmärgile. Kui te ei tee mingisugust marsruutimist, NATing'i või midagi muud oma süsteemis, mis nõuab edastamist, ei kasuta te seda ketti isegi.

On olemas üks kindel võimalus kontrollida, kas teie süsteem kasutab või vajab edasihelaid.

iptables -L -v

Ülaltoodud ekraanipilt on serverist, mis on mõne nädala jooksul käivitunud ja millel puuduvad sissetulevate või väljaminevate ühenduste piirangud. Nagu näete, on sisendahel töödelnud 11 GB pakette ja väljundketid on töödanud 17 GB. Teisest küljest ei ole edasi-ahelaga vaja ühtki paketti töödelda. Seda seetõttu, et server ei tee mingit ekspedeerimist ega kasuta läbilaskva seadet.
Ülaltoodud ekraanipilt on serverist, mis on mõne nädala jooksul käivitunud ja millel puuduvad sissetulevate või väljaminevate ühenduste piirangud. Nagu näete, on sisendahel töödelnud 11 GB pakette ja väljundketid on töödanud 17 GB. Teisest küljest ei ole edasi-ahelaga vaja ühtki paketti töödelda. Seda seetõttu, et server ei tee mingit ekspedeerimist ega kasuta läbilaskva seadet.

Väljund - Seda ketti kasutatakse väljaminevate ühenduste jaoks. Näiteks kui proovite pinga howtogeek.com-i, kontrollib iptables oma toodangu ketti, et näha, millised eeskirjad puudutavad ping ja howtogeek.com, enne kui otsustate lubada või keelata ühenduse katse.

Hoiatus

Kuigi välise serveri pingimine tundub olevat selline, mis vajab ainult tootmisahela läbimist, pidage meeles, et andmete tagastamiseks kasutatakse ka sisendketti. Kui kasutate iptablesi oma süsteemi lukustamiseks, pidage meeles, et paljud protokollid nõuavad kahesuunalist suhtlemist, nii et nii sisendi kui ka väljundketid tuleb korralikult konfigureerida. SSH on ühine protokoll, mida inimesed unustavad mõlemas ketas lubada.

Poliitikaahela vaikimisi käitumine

Enne konkreetsete reeglite sisenemist ja konfigureerimist soovite otsustada, mida soovite kolme keti vaikimisi käitumiseks pidada. Teisisõnu, mida soovid iptables teha, kui ühendus ei vasta olemasolevatele reeglitele?

Selleks, et näha, millised teie poliitikavaldkonnad on praegu konfigureeritud võrrelda liiklust, käivitage

iptables -L

käsk

Nagu näete, kasutasime ka grep-käsku, et anda meile puhtam väljund. Selles pildil on praegu meie kettad liikluse heakskiitmiseks.
Nagu näete, kasutasime ka grep-käsku, et anda meile puhtam väljund. Selles pildil on praegu meie kettad liikluse heakskiitmiseks.

Veel kordi, kui mitte, siis tahad, et teie süsteem nõustuks vaikimisi ühendustega. Kui pole eelnevalt poliitikarea reegleid muutnud, peaks see seade juba olema konfigureeritud. Mõlemal juhul on siin käsu vaikimisi ühenduste vastuvõtmiseks:

iptables --policy INPUT ACCEPT

iptables --policy OUTPUT ACCEPT

iptables --policy FORWARD ACCEPT

Kui vaikimisi nõustute reegliga, võite iptablesi kasutada konkreetsete IP-aadresside või pordinumbrite keelamiseks, jätkates kõigi teiste ühenduste vastuvõtmist. Me jõuame nende käskude juurde minutiga.

Kui soovite pigem keelata kõik ühendused ja määrata käsitsi, millised neist soovite lubada ühenduse loomiseks, peaksite oma ketid vaikimisi reegleid langetama. See oleks tõenäoliselt kasulik ainult tundlikke andmeid sisaldavatele serveritele ja nendega on ühendatud ainult samad IP-aadressid.

iptables --policy INPUT DROP

iptables --policy OUTPUT DROP

iptables --policy FORWARD DROP

Ühendusespetsiifilised vastused

Kui teie vaikimisi ahela poliitikad on seadistatud, võite alustada iptablesi reeglite lisamist, nii et ta teab, mida teha, kui ta puutub kokku mõnest konkreetsest IP-aadressist või porti ühendatud või sealt. Selles juhendis läheme üle kolme kõige elementaarsema ja sagedamini kasutatava vastuse.

Nõustun - lase ühendus.

Tilk - Tühjenda ühendus, toimige nagu pole kunagi juhtunud. See on parim, kui te ei soovi, et allikas teaks teie süsteemi olemasolu.

Keelduge - Ära luba ühendust, vaid saatke tagasi veateade. See on parim, kui te ei soovi konkreetse allikaga ühendust oma süsteemiga, kuid soovite, et nad teaksid, et teie tulemüür blokeeris neid.

Parim viis nende kolme reegli vahelise erinevuse näitamiseks on näidata, mis see välja näeb, kui arvuti üritab pingida Linuxi masinat iptablesiga, mis on konfigureeritud iga nende seadete jaoks.

Ühenduse lubamine:

Ühenduse tagasilükkamine:
Ühenduse tagasilükkamine:
Image
Image

Spetsiifiliste ühenduste lubamine või blokeerimine

Oma poliitikakettidega saab seadistada iptablesi, et lubada või blokeerida konkreetseid aadresse, aadressiribasid ja porte. Nendes näidetes seademe ühendused

DROP

kuid võite neid vahetada

ACCEPT

või

REJECT

sõltuvalt teie vajadustest ja sellest, kuidas olete oma poliitikavaldkondi kujundanud.

Märkus: nendes näidetes läheme kasutama

iptables -A

olemasoleva ahela eeskirjade lisamiseks. iptables algab selle loendi ülaosas ja läbib iga reegli, kuni see leiab selle, mis see sobib. Kui peate teise reegli lisama, saate seda kasutada

iptables -I [chain] [number]

et määrata number, mis peaks olema nimekirjas.

Ühendused ühest IP-aadressist

See näide näitab, kuidas blokeerida kõik ühendused IP-aadressilt 10.10.10.10.

iptables -A INPUT -s 10.10.10.10 -j DROP

Ühendused mitmest IP-aadressist

See näide näitab, kuidas blokeerida kõik IP-aadressid võrgu vahemikus 10.10.10.0/24. IP-aadresside vahemiku määramiseks võite kasutada võrgumaski või standardseid kaldkriipsu tähist.

iptables -A INPUT -s 10.10.10.0/24 -j DROP

või

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

Ühendused konkreetse sadama juurde

See näide näitab, kuidas SSH-ühendusi 10.10.10.10 blokeerida.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

Saate asendada ssh mõne protokolli või pordi numbriga. The

-p tcp

osa kood ütleb iptablesile, millist ühendust protokoll kasutab. Kui blokeerisite protokolli, mis kasutab UDP-d, mitte TCP-d, siis

-p udp

selle asemel oleks vaja.

See näide näitab, kuidas SSH-ühendusi blokeerida mis tahes IP-aadressilt.

iptables -A INPUT -p tcp --dport ssh -j DROP

Ühenduste riigid

Nagu varem mainisime, nõuab paljud protokollid kahesuunalist suhtlemist. Näiteks kui soovite oma süsteemile SSH-ühendusi lubada, peavad sisend- ja väljundketid nõudma neile lisatavat reeglit. Aga mis siis, kui soovite, et teie süsteemile tulevad SSH-d lubataks? Ärge lisage reegli väljundkettale ka väljuvaid SSH-i katseid?

See on koht, kus saabuvad ühendused, mis annavad teile võimaluse, et peate lubama kahesuunalise suhtlemise, kuid võimaldavad luua ainult ühe suuna ühendused. Vaadake seda näidet, kui SSH-ühendused 10.10.10.10 on lubatud, kuid SSH-ühendused 10.10.10.10-le ei ole. Siiski on süsteemil võimalik SSH-i kaudu teavet saata niikaua, kui seanss on juba loodud, mis võimaldab nende kahe hostiga SSH-sid siduda.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT

Muudatuste salvestamine

Teie iptablesi reeglitele tehtud muudatused lammutatakse järgmisel korral, kui iptablesi teenus taastab, välja arvatud juhul, kui käivitate käsku muudatuste salvestamiseks. See käsk võib sõltuvalt levitamisest olla erinev:

Ubuntu:

sudo /sbin/iptables-save

Red Hat / CentOS:

/sbin/service iptables save

Or

/etc/init.d/iptables save

Muud käsud

Nimeta praegu seadistatud iptablesi reeglid:

iptables -L

Lisades

-v

variant annab teile paketi ja baidi teabe ja lisab

-n

loetleb kõike arvuliselt. Teisisõnu - masinanimed, protokollid ja võrgud on loetletud numbritena.

Kõigi praegu seadistatud reeglite kustutamiseks võite väljastada flush käsu.

iptables -F

Soovitan: