Ankstesniame įraše matėme, kaip sukonfigūruoti IPTables, kad jos veiktų kaip užkarda. Dabar galime pamatyti, kaip sukurti scenarijus, kurie automatiškai paleistų taisykles, kai sistema paleidžiama, ir kaip ištrinti arba laikinai sustabdyti šias taisykles.
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 būtų vienas tinklas tarp maršrutizatoriaus ir mūsų „Linux“ sistemos, o kitas tinklas tarp „Linux“ sistemos ir vietinio tinklo. Tai reiškia, kad mūsų maršrutizatoriui nereikėtų atlikti NAT; pakaktų paprasto srauto nukreipimo, kaip paaiškinta ankstesniame įraše.
- 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ų /etc/init.d/ viduje , kad paslauga būtų paleista automatiškai ir galėtume ją lengviau valdyti.
#! / 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ų įdedame į /etc/init.d/ failą pavadinimu „firewall“ . Tada, jei norime valdyti užkardą, galime naudoti komandą /etc/init.d/firewall start. Taip pat galime ją sustabdyti arba patikrinti jos būseną.
Dabar redaguosime failą /etc/rc.local ir pridėsime kažką panašaus į: /etc/init.d/firewall start , kad jis prasidėtų nuo sistemos.
Taip pat. Tai yra antroji dalis. Tikiuosi, kad tai kažką atneš jums visiems. Kitame pamatysime „Proxy“ ir IDS.