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
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
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:
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