Kaip naudoti „iptables“ filtruoti paketus „Linux“

Turinys

Šioje pamokoje mes kalbėsime apie „iptables“, užkarda ar užkarda, kurią turime „Linux“. Šis įrankis leis mums filtruoti paketus (kuriuos nagrinės pamoka), generuoti žurnalo įrašą, atlikti NAT vertimus.

„Iptables“ dėka mes galime sukurti taisykles, kaip filtruoti paketus gana paprastai, nors pirmą kartą jį naudojant gali atrodyti šiek tiek painu, tačiau pamatysite, kad kai jį naudosite kelias dienas, jis nesukels jokių komplikacijų.

Norint naudoti šį įrankį, reikia didelių privilegijų, tai yra, mes turėsime būti super vartotojai, kad jis veiktų. Mes turime daug „iptables“ funkcijų, pamokos tikslas yra pamatyti apytikslį jo naudojimą per pavyzdžius. Svarbu, kad baigus pamoką toliau kasinėtumėte, nes tai labai naudinga.

Tada išeiname iš oficialios svetainės, jei tai įdomu:

PastabaTurime IPv6 ip6table.

Jei norime pamatyti informaciją apie „iptables“, terminale vykdysime šiuos veiksmus:

 vyras iptables
Pamatysime šią informaciją:

Paveikslėlyje galite pamatyti dalį komandos pateiktos informacijos, norėdami pamatyti visą, slinkite žemyn terminale. Kaip matėme pamokos pradžioje, viena iš „iptables“ mums leistų užduočių yra sukurti taisykles ar filtrus, kad žinotume, ką daryti su paketais, kurių kilmės / paskirties vieta yra mūsų mašina. Atlikdami šią užduotį mums bus įdomu sužinoti, kodėl naudojame šias sąvokas:

Lentos
„Iptables“ turi keletą lentelių, tačiau mūsų pamokoje mes sutelkiame dėmesį tik į filtrų lentelė, kuris yra atsakingas už filtravimą, pagal numatytuosius nustatymus naudojamas „iptables“.

Grandinės
Eilutės, kurias ketinu įdėti čia, yra tos, kurios priklauso anksčiau komentuotai lentelei.

  • Įvestis: Mūsų mašinai skirti paketai.
  • Išvestis: Paketai, kilę iš mūsų sistemos.
  • Persiųsti: Paketai, einantys per mūsų mašiną, turi būti nukreipti į kitą.

Taisyklės
Mes nurodysime 2, kurie bus naudojami pamokoje, tačiau yra ir daugiau.

  • Priimti: Paketai priimami.
  • Nuleiskite: Paketai išmetami.

Parametrai
Kai kurie parametrai, kuriuos galime naudoti, yra šie.

  • -Taisyklė: Norėdami pridėti taisyklę
  • -D taisyklė: Norėdami ištrinti nurodytą taisyklę.
  • -L: Leidžia išvardyti taisykles.
  • -F: Ištrinkite visas esamas taisykles.
  • -j taikinys: Nustatykite taisyklės tipą (Priimti, Atmesti).
  • -stalas: Rodys naudojamą lentelę (pagal numatytuosius nustatymus filtro lentelė).
  • -p protokolas: Naudojamas protokolui nurodyti.
  • -i sąsaja: Mes sukuriame taisyklės sąsają.
  • -s: Norėdami nurodyti kilmę.
  • -d: Norėdami nurodyti paskirties vietą.
  • -h: Rodoma pagalba.

Yra daug daugiau, kaip jie gali būti --Kelionės tikslo uostas arba -šaltinio prievadas. Norėdami pamatyti juos visus, galite paleisti aukščiau aptartą komandą:

 vyras iptables
Arba galite paleisti:
 iptables -h
PastabaTurite atidžiai išnagrinėti įrankio siūlomas parinktis, nes jis išskiria mažąsias ir didžiąsias raides ir mes galime padaryti klaidą (tai nebus tas pats, ką įdėti -p kad -P).

Pradėkime nuo pavyzdžių, iš viso bus įdėta 10, todėl jie bus geriau suprantami ir pamatysime, kaip „iptables“ veikia užkardos režimu. Pavyzdžiuose nematysite sudo, to neprireiks, jei esate kaip root, priešingu atveju kiekvieno pavyzdžio pradžioje turėsite pridėti žodį sudo.

1. Uždrausti išvykimą į bet kurią paskirties vietąPirmiausia pateiksime paprastą pavyzdį, niekur nepalikite išėjimo.

 iptables -A OUTPUT -j DROP
Šis yra labai lengvas, kaip matote, kitas yra dar lengvesnis.

2. Išvalykite visas taisyklesMes tęsiame labai paprastą pavyzdį, palikite savo „iptables“ be taisyklių, todėl vykdysime:

 iptables -F
Na, kitą kartą šiek tiek apsunkinkime.

3. Uždrausti išplaukti per 80 uostąDabar mes pasirūpiname, kad išvestis būtų uždaryta per konkretų prievadą, šiuo atveju tai yra 80, todėl mes negalėsime naršyti žiniatinklyje per http protokolą (jei eisime į https puslapį, galime naršyti, nors galėtume padaryti tą patį kaip 80).

 iptables -A OUTPUT -p tcp -paskirties prievadas 80 -j DROP
PastabaNaudodami paskirties ar šaltinio prievadą, norėdami nurodyti protokolą, turėsime įvesti parametrą -p.

Mes pereiname prie ketvirtojo pavyzdžio.
4. Uždrausti naršyti į puslapįŠia proga mes norime uždrausti prieigą prie X puslapio iš mūsų sistemos, įsivaizduokime, kad šis puslapis yra solvetic.com, todėl mes sužinome jo IP, labai lengva, atlikdami ping, kurį mes gausime.

O dabar vykdysime:

 iptables -A OUTPUT -d 178.33.118.246 -j DROP
Kaip matome, pakanka nurodyti savo IP po parametro -d.

5. Išvardinkite esamas taisyklesŠiame pavyzdyje bus bandomos išvardyti šiuo metu apibrėžtos filtravimo taisyklės:

 iptables -L
Mes matome vaizdą, mes turime tik dvi apibrėžtas taisykles, kaip matome toliau:

Pereikime prie šeštojo pavyzdžio, kuriame vėl naudosime taisyklių sąrašą.

6. Ištrinkite konkrečią taisyklęČia, pradedant taisyklėmis, kurias turėjome ankstesniame pavyzdyje, mes ištrinsime vieną iš išėjimo taisyklių, šiuo atveju pirmąją, kuri pasirodo, vykdome taip:

 „iptables“ -D OUTPUT 1
Norėdami patikrinti, ar jis buvo veiksmingai ištrintas, naudojame 5 pavyzdį:

Tęskime daugiau.

7. Venkite būti prispaustiemsNenorime, kad jie mus pinga, todėl užblokuosime įėjimą į ICMP protokolą.

 iptables -A INPUT -p ICMP -j DROP
Žemiau palieku pingingo vaizdą prieš vykdydamas aukščiau nurodytą komandą ir po:

Matome, kad mūsų mašina neatsako, nes atmeta ICMP paketus. Jei užblokuosime išvestį, o ne įvestį, vykdysime:

 iptables -A OUTPUT -p ICMP -j DROP
Tas pats, kaip ir ankstesniame paveikslėlyje, pasikartotų. Norėdami išbandyti, aš padariau ping 3 kartus, jei vykdysime, pamatysime paketų skaičių:
 iptables -L -v

Matome, kad ankstesniame paveikslėlyje iš tikrųjų yra 3.

8. Neleiskite IP siųsti mums duomenųMes ketiname taikyti įvestį, nenorime, kad tam tikras IP mus sujungtų, todėl vykdysime:

 iptables -A INPUT -s 192.168.66.1 -j DROP
Pažvelkime į ilgesnį pavyzdį.

9. Leisti išeiti į įvairius IPĮsivaizduokite, kad norite priimti tik išvestis į įvairius IP adresus, bet atmesti likusius rezultatus, mes turime vykdyti:

 Iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT Iptables -A OUTPUT -j DROP
PastabaTaisyklių vykdymo tvarka yra svarbi, pabandykite šį pavyzdį su tinklu, kurį norite leisti, ir užmegzkite ryšį, pamatysite, kad jis veikia, tada ištrinkite visas taisykles ir vykdykite 2 sakinius atvirkščiai, dabar jis atmes ryšius .

Pereikime prie dešimtojo ir paskutinio pavyzdžio.

10. Atidarykite 143 prievadą (imap)Ketiname atidaryti prievadą visiems tcp paketams, šiuo atveju 143, įvesti (likusiems būtų tas pats).

 iptables -A INPUT -m būsena -būsena NAUJA -p tcp --portas 143 -j ACCEPT
Šiame pavyzdyje norėjome naudoti --portas, kad matytumėte, jog galime tai naudoti arba --Kelionės tikslo uostas, mes taip pat galėtume naudoti --Sportas vietoj -šaltinio prievadas.

Pamoka baigiasi čia, dabar bandote taikyti kitas taisykles, kuo daugiau praktikuojatės, tuo greičiau turėsite taikyti taisykles ir tuo mažiau jums kainuos. Baigdami paliksime pamoką, kuri gali jus sudominti, atidarydami ir uždarydami „Windows 10“ prievadus.

wave wave wave wave wave