„iptables“

Kaip valdyti tinklo srautą naudojant?

Kaip valdyti tinklo srautą naudojant?
„… A vartotojo erdvės „Unix“ įrankis, suteikiantis sistemos administratoriams galimybę sukonfigūruoti IP paketų filtravimo taisykles, įdiegtas branduolio tinklo filtro modulyje.“ „Iptables“ veikia kaip užkarda, naudojant paketų filtravimo taisykles, pagrįstas įvairiais kriterijais, tokiais kaip IP adresas, prievadas ir protokolai.

Šiame vadove bus aptarta, kaip konfigūruoti ir naudoti „iptables“ taisykles „Ubuntu“ sistemoje, kad apsaugotumėte savo tinklą. Nesvarbu, ar esate pradedantysis „Linux“ vartotojas, ar patyręs sistemos administratorius, iš šio vadovo vienaip ar kitaip sužinosite ką nors naudingo apie „iptables“.

„Iptables“ yra iš anksto įdiegtos „Ubuntu“ ir daugumoje „Debian“ pagrįstų paskirstymų. „Ubuntu“ taip pat pakuoja GUFW užkardą, grafinę alternatyvą, kurią galite naudoti dirbdami su „iptables“.

PASTABA: Norėdami naudoti ir konfigūruoti „iptables“, jums reikės „sudo“ privilegijų jūsų sistemoje. Daugiau apie sudo galite sužinoti iš šios mokymo programos.

Dabar, kai žinote, kas yra „Iptables“, pasinerkime tiesiai!

Kaip naudoti „iptables“ valdant IPv4 srautą?

Norėdami naudoti „Iptables“ IPv4 tinklui ir srautui valdyti, turite suprasti šiuos dalykus:

„Iptables“ komanda

„Iptables“ siūlo daugybę parinkčių, leidžiančių pritaikyti ir suderinti „iptables“ taisykles. Aptarkime kai kuriuos iš šių parametrų ir pažiūrėkime, ką jie daro.

PASTABA: Galite sukonfigūruoti taisyklių rinkinį, kuris valdo konkretų pogrupį, vadinamą „iptables“ grandinėmis.

„Iptables“ parametrai

Prieš pradėdami kurti ir konfigūruoti „iptables“ taisykles, pirmiausia supraskime „iptables“ pagrindus, pvz., Bendrą sintaksę ir numatytuosius argumentus.

Apsvarstykite toliau pateiktą komandą:

sudo iptables -I ĮVADAS -s 192.168.0.24 -j DROP

Aukščiau nurodyta komanda nurodo „iptables“ sukurti taisyklę grandinėje. Taisyklė numeta visus paketus iš 192 IP adreso.168.0.24.

Panagrinėkime komandą eilutėje po eilutės, kad ją geriau suprastume.

„Iptables“ siūlo daugybę parametrų, kuriuos galite naudoti norėdami sukonfigūruoti įvairias taisykles. Įvairūs parametrai, kuriuos galite naudoti norėdami konfigūruoti „iptables“ taisykles, yra šie:

„Iptables“ taisyklės parametras apibūdinimas
-s šaltinis Nurodykite šaltinį, kuris gali būti adresas, pagrindinio kompiuterio vardas arba tinklo pavadinimas.
-p -protokolas Nurodo ryšio protokolą; pavyzdžiui, TCP, UDP ir kt.
-d-paskirtis Nurodo paskirties vietą, kuri gali būti adresas, tinklo pavadinimas arba pagrindinio kompiuterio vardas.
-j -šokti Nustato veiksmą, kurį „iptables“ turi atlikti radęs paketą.
-o-out-sąsaja Nustato sąsają, per kurią „iptable“ siunčia paketą.
-i-sąsajoje Nustato sąsają, naudojamą tinklo paketams nustatyti.
-c -set-counters Leidžia administratoriui nustatyti nurodytos taisyklės baitų ir paketų skaitiklius.
-g -goto grandinė Parametras nurodo, kad po grąžinimo apdorojimas turėtų tęstis vartotojo nustatytoje grandinėje.
-f-fragmentas Liepia „iptables“ taikyti taisyklę tik antriems ir kitiems suskaidytų paketų fragmentams.

„Iptables“ parinktys

„Iptables“ komanda palaiko daugybę galimybių. Kai kurie iš jų yra šie:

Variantas apibūdinimas
-A-pridėti Prideda taisyklę prie nurodytos grandinės pabaigos
-D -trinti Pašalina taisyklę iš nurodytos grandinės
-F - praplaukite Pašalina visas taisykles po vieną
-L sąrašas Parodo visas nurodytos grandinės taisykles
-Aš -įterpiu Įterpia taisyklę į nurodytą grandinę (perduodama kaip skaičius, kai nenurodytas skaičius; taisyklė pridedama viršuje)
-C - patikrinkite Užklausos dėl taisyklės atitikimo; reikalavimas nurodytoje taisyklėje
-v -verbose Pateikiama daugiau informacijos, kai naudojama su parametru -L
-N - nauja grandinė Pridedama nauja vartotojo apibrėžta grandinė
-X -trinti-grandinę Pašalina konkrečią vartotojo apibrėžtą grandinę

„Iptables“ lentelės

„Linux“ branduolyje yra numatytosios lentelės, kuriose pateikiamas susijusių taisyklių rinkinys. Šiose numatytosiose lentelėse yra numatytųjų grandinių rinkinys, tačiau vartotojai gali tinkinti taisykles pridėdami vartotojo apibrėžtas taisykles.

PASTABA: Numatytosios lentelės labai priklausys nuo jūsų branduolio konfigūracijos ir įdiegtų modulių.

Čia yra numatytosios „iptables“ lentelės:

1: Filtrų lentelės

Filtravimo lentelė yra numatytoji lentelė, kurioje yra grandinės, naudojamos tinklo paketų filtravimui. Kai kurios šios lentelės numatytosios grandinės apima:

Grandinė apibūdinimas
Įvestis „Iptables“ naudoja šią grandinę bet kokiems į sistemą gaunamiems paketams, t.e., paketai, einantys į vietinio tinklo lizdus.
Rezultatas „Iptables“ naudoja išvesties grandinę vietoje sugeneruotiems paketams, t.e., paketai išeina iš sistemos.
Persiųsti Šią grandinę „Iptables“ naudoja paketams, nukreiptiems arba persiųstiems per sistemą.

2: NAT lentelės

NAT arba tinklo adresų lentelė yra maršruto parinkimo įrenginys, naudojamas modifikuoti šaltinio ir tikslinius IP adresus tinklo pakete. NAT lentelės pagrindinė paskirtis yra dviejų tinklų sujungimas privačiame adresų diapazone su viešuoju tinklu.

NAT buvo sukurtas taip, kad būtų palaikomas tikrų IP adresų užmaskavimas, leidžiantis privačių IP adresų diapazonams pasiekti išorinį tinklą. Tai padeda apsaugoti informaciją apie vidinius tinklus nuo viešųjų tinklų atskleidimo.

NAT lentelė įsidarbina, kai paketas užmezga naują ryšį.

„Iptables“ turi numatytąją NAT adresavimo lentelę. Šioje lentelėje yra trys pagrindinės grandinės:

Grandinė apibūdinimas
PREROUTING Leidžia modifikuoti paketų informaciją prieš atvykstant į INPUT grandinę, naudojamą gaunamiems paketams
IŠĖJIMAS Rezervuota vietoje sukurtiems paketams, t.e., prieš įvykstant tinklo maršrutui
POSTROUTINGAS Leidžia modifikuoti siunčiamus paketus - paketus, paliekančius OUTPUT grandinę

Žemiau pateiktoje diagramoje parodyta aukšto lygio šio proceso apžvalga.

Norėdami peržiūrėti savo NAT maršruto lenteles, naudokite toliau pateiktą komandą.

iptables -t nat -n -v -L

3: „Mangle“ lentelės

Mangle lentelė daugiausia naudojama specialiam paketų modifikavimui. Paprasčiau tariant, jis naudojamas tinklo paketo IP antraštėms modifikuoti. Paketų modifikavimas gali apimti paketo TTL vertės pakeitimą, paketui galiojančių tinklo apynių pakeitimą ir kt.

Lentelėje yra šios numatytosios grandinės:

Grandinė apibūdinimas
PREROUTING Rezervuota gaunamiems paketams
POSTROUTINGAS Naudojamas siunčiamiems paketams
ĮVADAS Naudojamas paketams, patenkantiems tiesiai į serverį
IŠĖJIMAS Naudojamas vietiniams paketams
Persiųsti Rezervuota paketams, nukreiptiems per sistemą

4: Žalios lentelės

Pagrindinis neapdorotos lentelės tikslas yra sukonfigūruoti išimtis paketams, kurie nėra tvarkomi stebėjimo sistemoje. Neapdorota lentelė paketuose nustato NOTRACK ženklą, ragindama „conntrack“ funkciją ignoruoti paketą.

„Conntrack“ yra „Linux“ branduolio tinklo funkcija, leidžianti „Linux“ branduoliui sekti visus tinklo ryšius, leidžiančius branduoliui nustatyti tinklo srautus sudarančius paketus.

Neapdorotoje lentelėje yra dvi pagrindinės grandinės:

Grandinė apibūdinimas
PREROUTING Rezervuota tinklo sąsajomis gaunamiems paketams
IŠĖJIMAS Rezervuota paketams, kuriuos inicijuoja vietiniai procesai

5: Apsaugos lentelė

Pagrindinis šios lentelės naudojimas yra nustatyti vidinį „Linux“ saugos gerinimo (SELinux) saugos mechanizmą, kuris pažymimas paketuose. Apsaugos ženklas gali būti taikomas kiekvienam ryšiui ar paketui.

Jis naudojamas privalomoms prieigos kontrolės taisyklėms ir yra antroji lentelė, prieinama po filtravimo lentelės. Jis siūlo šias numatytąsias grandines:

Grandinė apibūdinimas
ĮVADAS Rezervuota gaunamiems paketams į sistemą
IŠĖJIMAS Naudojamas vietoje sukurtiems paketams
PERSIŲSTI Naudojamas paketams, nukreipiamiems per sistemą

Peržiūrėję numatytuosius „Iptables“, eikime toliau ir aptarkime, kaip dirbti su „iptables“ taisyklėmis.

Kaip dirbti su „iptables“ taisyklėmis?

„Iptables“ taisyklės taikomos didėjimo tvarka. Tai reiškia, kad pirmiausia taikoma pirmoji konkretaus rinkinio taisyklė, paskui antroji, paskui trečioji ir t. T., Iki paskutinės.

Dėl šios funkcijos „iptables“ neleidžia pridėti taisyklių rinkinyje naudojant parametrą -A; Norėdami įtraukti į sąrašo viršų, turite naudoti -I, po kurio nurodomas skaičius, arba tuštindami jį.

Rodomi „Iptables“

Norėdami peržiūrėti „iptables“, naudokite komandą „iptables -L -v IPv4“ ir „ip6tables“ -L -v „IPv6“.

Taisyklių įterpimas

Norėdami įterpti taisykles į rinkinį, turite jas išdėstyti tikslia tvarka, atsižvelgdami į tos pačios grandinės naudojamas taisykles. Galite peržiūrėti „iptables“ taisyklių sąrašą naudodami komandą, kaip aptarta aukščiau:

sudo iptables -L -v

Pvz., Norėdami įterpti taisyklę, leidžiančią gaunamus ryšius su 9001 prievadu per TCP, turime nurodyti taisyklės numerį INPUT grandinei, laikydamiesi interneto eismo taisyklių.

sudo iptables -I INPUT 1 -p TCP --porto 9001 -m būsena --state NAUJA -j ACCEPT

Peržiūrėję dabartinius „iptables“, rinkinyje turėtumėte pamatyti naują taisyklę.

sudo iptables -L -v

Taisyklių pakeitimas

Pakeitimo funkcija veikia panašiai kaip įterpti, tačiau ji naudoja komandą „iptables -R“. Pvz., Norėdami pakeisti anksčiau pateiktą taisyklę ir nustatyti prievadą 9001 paneigti, mes:

sudo iptables -R INPUT 1 -p TCP --port 9001 -m būsena - valstija NAUJA -j ATMETTI

Taisyklės ištrynimas

Norėdami ištrinti taisyklę, mes perduodame taisyklės numerį. Pavyzdžiui, norėdami ištrinti anksčiau pateiktą taisyklę, galime nurodyti:

sudo iptables -D INPUT 1

Daugumoje „Linux“ sričių „iptables“ nėra tušti nei IPv4, nei IPv6. Taigi, jei nepridėjote naujos taisyklės, gausite išvestį, panašią į žemiau pateiktą. Tai rizikinga, nes tai reiškia, kad sistema leidžia visą gaunamą, išeinantį ir nukreiptą srautą.

Panagrinėkime, kaip sukonfigūruoti „iptables“:

Kaip konfigūruoti „iptables“?

Yra daugybė „iptables“ taisyklių konfigūravimo būdų. Šiame skyriuje naudojami pavyzdžiai, rodantys, kaip nustatyti taisykles naudojant IP adresus ir prievadus.

Eismo blokavimas ir leidimas uostuose

Norėdami užblokuoti arba leisti visą srautą tinklo sąsajoje, galite naudoti konkretų prievadą. Apsvarstykite šiuos pavyzdžius:

sudo iptables -A Įvestis -j ACCEPT -p TCP - paskirties prievadas 1001 -i wlan0

Aukščiau nurodytos komandos leidžia srautą per 1001 TCP prievadą wlan0 sąsajoje.

sudo iptables -A INPUT -j DROP -p TCP - paskirties prievadas 1001 -i wlan0

Ši komanda veikia priešingai nei pirmiau nurodyta komanda, nes ji blokuoja visą srautą „wlan0“ 1001 prievade.

Štai atidus komandos patikrinimas:

PASTABA: „Iptables“ nesupranta tinklo sąsajos slapyvardžių. Taigi sistemoje, kurioje yra daugiau nei viena virtuali sąsaja, turėsite rankiniu būdu ir aiškiai apibrėžti paskirties adresą.

Pavyzdžiui:

sudo iptables -A INPUT -j DROP -p TCP - paskirties prievadas 1001 -i wlan0 -d 192.168.0.24

Įtraukti į baltąjį sąrašą ir įtraukti juoduosius IP adresus

Galite sukurti užkardos taisykles naudodami „iptables“. Vienas iš pavyzdžių yra sustabdyti visą srautą ir leisti tinklo srautą tik iš aiškių IP adresų.

Pavyzdys:

„iptables“ -A INPUT -m būsena - valstybė NUSTATYTA, SUSIJED - j PRIIMTI
„iptables“ -A INPUT -i lo -m komentaras - komentaras „Allow loopback connection“ -j ACCEPT
„iptables“ -A INPUT -p icmp -m komentaras - komentaras „Leiskite Ping veikti kaip tikėtasi“ -j

PRIIMTI

iptables -A ĮVADAS-192.168.0.1/24 -j PRIIMTI
iptables -A ĮVADAS -s 192.168.0.0 -j PRIIMTI
„iptables“ -P INPUT DROP
„iptables“ -P FORWARD DROP

Pirmoje eilutėje nustatoma taisyklė, leidžianti visus 192 šaltinio IP adresus.168.0.1/24 potinklis. Taip pat galite naudoti CIDR arba atskirus IP adresus. Šioje komandoje mes nustatėme taisyklę leisti visiems srautams, susijusiems su esamais ryšiais. Paskutinėse komandose nustatėme INPUT ir FORWARD politiką, kad visi atsisakytų.

„IPpt6“ naudojimas „IPv6“

„Iptables“ komanda veikia tik naudojant „IPv4“. Norėdami naudoti „iptables“ „IPv6“, turite naudoti komandą „ip6tables“. „Ip6tables“ naudoja „raw“, „filter“, „security“ ir „mangle“ lenteles. Bendroji „ip6tables“ sintaksė yra panaši į „iptables“, be to, ji palaiko suderinamas „iptables“ parinktis, pvz., Pridėti, ištrinti ir kt.

Apsvarstykite galimybę naudoti „ip6tables“ vadovo puslapius, jei norite gauti daugiau informacijos.

Tinklo saugumo „iptables“ taisyklių rinkinių pavyzdys

Tinkamų užkardos taisyklių kūrimas daugiausia priklausys nuo sistemoje veikiančios paslaugos ir naudojamų prievadų. Tačiau čia yra keletas pagrindinių tinklo konfigūravimo taisyklių, kurias galite naudoti savo sistemai apsaugoti:

1: Leiskite „Loopback“ sąsajos srautą ir atmeskite visą grįžtamąjį ryšį, gaunamą iš kitų sąsajų

„iptables“ -A INPUT -i lo -j ACCEPT (Taip pat galite naudoti „ip6tables“)
„iptables“ - ĮVADAS ! -i lo -s 127.0.0.0 -j REJECT (taip pat galioja „ip6tables“)

2: atmesti visas ping užklausas

„iptables“ -A INPUT -p icmp -m būsena - state NAUJA --icmp tipo 8 -j ATSISAKYKITE

3: Leisti SSH ryšius

iptables -A ĮVADAS -p tcp --port 22 -m būsena - valstija NAUJA -j PRIIMTI

Tai yra komandų pavyzdžiai, kuriuos galite naudoti savo sistemai apsaugoti. Tačiau konfigūracija labai priklausys nuo to, ką ar kam norite pasiekti įvairias paslaugas.

ATSARGIAI: Jei norite visiškai išjungti „IPv6“, įsitikinkite, kad nekomentuojate eilutės, nes tai sulėtins atnaujinimo procesą:

pirmenybė :: ffff: 0: 0/96 100 rasta / etc / gai.konf .

Taip yra todėl, kad APT paketų tvarkyklė išsprendžia IPv6 veidrodinį domeną dėl apt-get atnaujinimo.

Kaip įdiegti „iptables“ taisykles?

Norėdami įdiegti „iptables“ „Ubuntu“ ar kitose „Debian“ sistemose, pirmiausia sukurkite du failus („ip4“ ir „ip6“) atitinkamiems IP adresams.

Bet kuriame faile pridėkite taisykles, kurias norite įgyvendinti, atitinkamuose failuose - „IPv4“ taisyklės prie „IP4“ failo ir „IPv6“ taisyklės prie „IP6“ failo.

Tada turime importuoti taisykles naudodami komandą:

sudo iptables-restore < /tmp/ip4 (replace filename for IPv6)

Tada galite patikrinti, ar taisyklės pritaikytos, naudodami komandą:

sudo iptables -L -v

„Quick iptables-persistent Guide“

„Ubuntu“ ir įprasti „Debian“ pagrindu veikiantys paskirstymai yra su „iptables-persistent“ paketu, kuris leidžia lengvai pritaikyti užkardos taisykles perkraunant. Pakete yra failai, kuriuos galite naudoti nustatydami IPv4 arba IPv6 taisykles, ir jie gali būti automatiškai pritaikomi paleidus.

Taip pat galite naudoti užkardos taisykles naudodami UFW arba GUFW. Apsvarstykite šią pamoką, kad sužinotumėte, kaip naudoti UFW.

Kaip įdiegti „iptables-persistent“?

Įsitikinkite, kad sistemoje esate įdiegę „iptables-persistent“. Naudokite dpkg ir patikrinkite, ar turite paketą.

Jei ne, naudokite šią komandą:

sudo apt-get install iptables-persistent

Du kartus būsite paraginti išsaugoti dabartines IPv4 ir IPv6 taisykles. Spustelėkite Taip, kad išsaugotumėte abi taisykles.

Norėdami išsaugoti IPv6, spustelėkite „Taip“.

Baigę diegti, patikrinkite, ar turite „iptables“ pakatalogį, kaip parodyta toliau pateiktame paveikslėlyje.

Dabar galite naudoti taisykles.v4 ir taisyklės.v6 pridėti „iptables“ taisykles, ir „iptables-persistent“ jas pritaikys automatiškai. Failai yra paprasti tekstiniai failai, kuriuos galite lengvai redaguoti naudodami bet kurį pasirinktą teksto redaktorių.

Išvada

Šioje pamokoje apžvelgėme „iptables“ pagrindus. Pradedant darbu su „iptables“, pagrindinėmis komandomis, numatytosiomis „iptables“ lentelėmis ir parametrais.

Iš to, ką sužinojote, turėtumėte sugebėti naudoti „iptables“ kurdami užkardos taisykles, kurios padėtų apsaugoti jūsų sistemą.

Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...
Geriausios „Linux“ skirtos „Gamepad“ žemėlapių sudarymo programos
Jei jums patinka žaisti žaidimus „Linux“ su žaidimų pultu, o ne įprasta klaviatūra ir pelės įvesties sistema, yra keletas jums naudingų programų. Daug...
Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...