Tinklo apsauga naudojant „Iptables - Proxy - NAT - IDS“: 2 DALIS

Į 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.

NAT

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ą.

„MASQUERADE“ naudojama, kai „IP“ yra viešas, tačiau laikui bėgant jis gali skirtis (dinamiškas). Kitu atveju galime naudoti SNAT – to-source ip

„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
Nepamirškime suteikti vykdymo leidimų

Paaiškinimas:

Scenarijus iš esmės atlieka šiuos veiksmus:

  1. Pirmiausia apribokite visą navigaciją, ryšius ir eismą. (Pagrindinė užkardos politika)
  2. Tada sukurkite NAT naudodami paskirties vietą eth1. nurodant, kad turime statinį viešąjį ip «81.2.3.4»
  3. Tai atveria prievadus, reikalingus mano inicijuotų ryšių paketams priimti.
  4. Priima siunčiamą HTTP, HTTPS ir DNS srautą.
Taisyklės yra skirtos FORWARD srautui, nes mes naudojame savo „Linux“ kaip maršrutizatorių, todėl politika naudojama srautui, kuris eina per „Linux“, tai yra, jis veikia kaip tarpininkas. Tai reiškia, kad mūsų „Linux“ negali tiesiogiai naršyti ar gauti jokių duomenų. Jis taikomas tik prie jo prijungtiems kompiuteriams, bet ne sau

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.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   dunteris sakė

    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ą.

  2.   OCZ sakė

    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. 😉

  3.   NauTiluS sakė

    Sveiki, pranešimas labai geras. Perskaičiau visus 2 tomus.

    Laukiu kito 🙂

  4.   anoniminis sakė

    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ū.

    1.    Jukiteru sakė

      „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“.

  5.   Aleksandras sakė

    labai geras pranešimas, norėjau perskaityti daugiau, nes jis labai gerai paaiškintas .. sveikinimai dėkingi už didelį indėlį

  6.   Avra sakė

    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ę!