Į Ankstesnė žinutė Pamatėme „IPTables“ konfigūraciją, kad ji veiktų kaip užkarda. Dabar mes galime pamatyti, kaip sukurti tuos scenarijus, kad taisyklės būtų vykdomos automatiškai, kai sistema paleidžiama, ir tai, kaip mes galime šias taisykles akimirkai pašalinti arba sustabdyti.
Prieš atlikdami scenarijų ir parodydami, kaip jis atrodo, šiek tiek pakalbėkime apie NAT ir koncepciją, ką norime daryti su šia įranga.
NAT ir pavyzdžio kontekstas.
Kalbėdami apie NAT, galime tai supainioti su maršrutu, nes abu atsakingi už dviejų skirtingų tinklų sujungimą. Tikrasis skirtumas yra tas, kad maršruto parinkimas taikomas pereinant iš vieno vietinio tinklo į kitą, o šis kitas tinklas gali prisijungti prie maršrutizatoriaus ir išeiti į internetą.
Kai kalbame apie NAT, mes kalbame apie paketų nukreipimą iš vietinio ar privataus tinklo į viešąjį tinklą ar internetą. Tai daro užmaskuodamas paketus įdėdamas viešąjį IP, su kuriuo jis eina į internetą. Kitaip tariant, mums nereikia maršrutizatoriaus, nes viešasis IP tiesiogiai priklauso GNU / Linux kompiuteriui.
Tai atliksime remdamiesi šūkiu, kad „Linux“ naudojame kaip maršrutizatorių / užkardą, kad galėtume eiti į internetą iš vietinio tinklo. Bet čia gali pasirodyti du scenarijai.
- Tai, kad mūsų „Linux“ yra tarp paslaugų teikėjo maršrutizatoriaus ir vietinio tinklo.
Šiuo atveju tarp maršrutizatoriaus ir mūsų „Linux“ būtų tinklas, o tarp „Linux“ ir vietinio tinklo - dar vienas kitas tinklas. Tai reiškia, kad mūsų maršrutizatoriui nereikėtų atlikti NAT, kaip paprasto eismo maršruto, kaip paaiškinta Ankstesnė žinutė Būtų gerai.
- Kad mūsų „Linux“ turi sąsają, prijungtą prie vietinio tinklo ir per kitą sąsają, ji tiesiogiai gauna viešą IP, su kuria jis naršo.
Tai reiškia, kad mūsų „Linux“ turi atlikti NAT, kad paketai galėtų pasiekti internetą.
Šios mažos laboratorijos tikslais mes sakysime, kad mūsų „Linux“ tiesiogiai gauna viešą IP ir galės išbandyti NAT poveikį.
Norėdami atlikti NAT, tada naudojame sintaksę
„iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE
Kur eth1 yra sąsaja, kur gauname viešąjį ip, tai yra, kur einame į internetą.
„Iptables“ scenarijaus kūrimas
Tarkime, kad: 172.26.0.0 yra mūsų vietinis tinklas, o 81.2.3.4 yra viešasis IP, su kuriuo mes einame į internetą. (tai yra statinis ip). Turiu sąsajas eth0 (vietinis tinklas)
eth1 (viešasis tinklas).
Iš esmės tai yra scenarijaus, kurį galima iškviesti iš /etc/init.d/firestop, sukūrimas (pavyzdžiui). ir iš šio scenarijaus galime pradėti, sustabdyti arba patikrinti savo konfigūracijos būseną, kaip tai darome su bet kuriuo sistemos demonu.
Tarkime, kad mano IPTABLES taisyklės yra:
#! / bin / bash # Mano namų užkarda. # Failo vardas / etc / firewall_on # Jlcmux „Twitter“: @Jlcmux # # Pagrindinė politika. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT dalintis internetu nuo eth0 iki eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT - į šaltinį 81.2.3.4 # # Leisti gaunamus ryšius, kuriuos pradėjo mano „iptables“ - FORWARD -m būsena - state NUSTATYTA, SUSIJED -j ACCEPT # # Įgalioti išeinančio srauto iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --port 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Paaiškinimas:
Scenarijus iš esmės atlieka šiuos veiksmus:
- Pirmiausia apribokite visą navigaciją, ryšius ir eismą. (Pagrindinė užkardos politika)
- Tada sukurkite NAT naudodami paskirties vietą eth1. nurodant, kad turime statinį viešąjį ip «81.2.3.4»
- Tai atveria prievadus, reikalingus mano inicijuotų ryšių paketams priimti.
- Priima siunčiamą HTTP, HTTPS ir DNS srautą.
Jei norime naudoti savo įrangą, kad galėtume naršyti, turėtume pakartoti eilutes ir atitinkamai pakeisti FORWARD į INPUT arba OUTPUT.
Atšaukti scenarijų.
Dabar mes sukursime scenarijų, kuris nepaisys visų aukščiau išvardytų dalykų ir paliks kompiuterį nuo viso šito. (Testavimo tikslais arba tiesiog norime išjungti užkardą).
#! / bin / bash # Mano namų užkarda. # Failo pavadinimas / etc / firewall_off # Autorius: Jlcmux Twitter: @Jlcmux # # Ištrinti „iptables“ taisykles -F # # Taikomos numatytosios strategijos (priimamas visas srautas) „iptables“ - „P INPUT ACCEPT iptables“ - „P OUTPUT ACCEPT iptables“ - „FORWARD ACCEPT“
Automatizavimas.
Dabar turime sukurti scenarijų viduje /etc/init.d/ o paslauga prasideda automatiškai ir mes galime ją valdyti patogiau.
#! / bin / bash # Mano namų užkarda. # Failo pavadinimas /etc/init.d/ užkarda # Jlcmux Twitter: @Jlcmux case $ 1 in start) / etc / firewall_on ;; stop) / etc / firewall_off ;; status) iptables -L ;; *) echo "Neteisinga sintaksė. Galioja = /etc/init.d/ užkardos paleidimas | sustabdyti | būsena ;; esac
Paaiškinimas:
Šį paskutinį scenarijų įdėjome /etc/init.d/ su vardu užkardą. Taigi, jei norime valdyti užkardą, galime naudoti komandą /etc/init.d/ užkardos paleidimas. Lygiai taip pat galime tai sustabdyti arba pamatyti valstybę.
Dabar redaguosime failą /etc/rc.local ir mes įdėjome kažką panašaus: /etc/init.d/ užkardos paleidimas pradėti nuo sistemos.
Taip pat. Tai yra antroji dalis. Tikiuosi, kad tai kažką atneš jums visiems. Kitame pamatysime „Proxy“ ir IDS.
Jei naudojate „Debian“, pakuotėje yra paketas („iptables-persistent“), kuris tai daro, jis ištrina dabartines taisykles /etc/iptables/rules.v4 arba v6, atsižvelgiant į tai, ką naudojate, ir tada jas pritaikote jums, kai pakeliate sistemą.
Praktiškai norint išvalyti įprastos „iptables“ užkardos konfigūraciją (ir mano požiūriu tai nebūtų naudinga NAT), daugeliu atvejų pakaktų nuleisti taisyklę ir iš naujo nustatyti numatytąją politiką į ACCEPT.
Tačiau teoriškai ir kiek aš žinau, be to, jūs taip pat turite išvalyti nenumatytas eilutes ir iš naujo nustatyti skaitiklius. Veiksmai, kuriuos reikia atlikti turint omenyje, kad be „filtro“ yra ir kitų lentelių (tam būtina perskaityti failą „/ proc / net / ip_tables_names“).
Beje, stačiatikybė sako, kad ugniasienė jau turi veikti prieš tinklą. Aš nežinau, kaip tai pasiekiama kitose „Linux“ sistemose, tačiau „Debian“ scenarijus galėjo būti pritaikytas ir nustatytas kataloge "/etc/network/if-pre-up.d/".
Gera užkarda visiems. 😉
Sveiki, pranešimas labai geras. Perskaičiau visus 2 tomus.
Laukiu kito 🙂
Mano nežinojimo klausimas, mes tęsiame su „iptables“, bet kelioms branduolio versijoms mes turime „nftable“. Aš jau bandau, kyla klausimų, ar „nftables“ yra kažkas beta „iptables“ atžvilgiu? Ar „iptables“ bus toliau naudojami daug ilgiau?
Ačiū.
„nftables“ apima visas „iptables“, „ip6tables“, „arptable“ ir „ebtable“ funkcijas, visa tai naudoja naują infrastruktūrą tiek branduolio, tiek vartotojų erdvėje, o tai užtikrina geresnį našumą ir patobulintą funkcionalumą. „nftables“ pakeis „iptables“ ir visas kitas paminėtas priemones, tačiau kol kas ne, bent jau tol, kol plačiau nebus naudojamos „nftables“.
labai geras pranešimas, norėjau perskaityti daugiau, nes jis labai gerai paaiškintas .. sveikinimai dėkingi už didelį indėlį
Sveiki! Labai geras abu postas.
Kaip indėlį galėtumėte papildyti šios dalies pabaigą:
"Dabar mes redaguosime failą /etc/rc.local ir įdėsime kažką panašaus į: /etc/init.d/ firewall start, kad jis prasidėtų nuo sistemos."
Pridėkite tai prie rc.local.
jei [-x /etc/init.d/ užkarda]; tada
/etc/init.d/ užkardos paleidimas
fi
Tai reiškia, kad jei „užkarda“ turi vykdymo teises, vykdykite ją, jei ne.
Jei norite, kad „užkarda“ neprasidėtų, tiesiog turite pašalinti leidimus.
Pavyzdžiui: chmod + x /etc/init.d/ užkarda
kad jis veiktų kiekvieną paleidžiant arba ...
chmod -x /etc/init.d/ užkarda
kad visiškai jį išjungtum.
Sveiki atvykę!