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

Šiame įraše bandoma šiek tiek paaiškinti, kaip veikia tinklai ir kaip mūsų „Linux“ įrangą paversti maršrutizatoriumi, kuris užtikrina šiek tiek daugiau mūsų tinklo, nesvarbu, ar tai būtų namai, ar net verslas. Taigi pradėkime prie reikalo:

Šis turinys sukurtas pagal knygą „Linux - sistemos administravimas ir tinklo paslaugų valdymas“ - Sébastien BOBILLIER

Maršrutavimas ir filtravimas

Norėdami kalbėti ir suprasti maršrutą, pirmiausia galime apibrėžti, kokia yra maršrutizatoriaus funkcija? Tam galime pasakyti, kad maršrutizatorius, be tinklo sukūrimo ir leidimo prisijungti prie kitos įrangos (žinant, kad tai galime padaryti su AP, „Switch“, „Hub“ ar kt.), Turi galimybę sujungti du skirtingus tinklus.

maršrutizatorius

Kaip matome paveikslėlyje, yra vietinis tinklas „10.0.1.0“, kurį sukuria maršrutizatorius ir pasiekia vieną iš dviejų jo sąsajų. Tada maršrutizatorius kitoje sąsajoje turi kitą tinklą su savo viešuoju IP, kuriuo gali prisijungti prie interneto. Maršruto parinkimo funkcija iš esmės yra tarnautojas tarp šių dviejų tinklų, kad jie galėtų bendrauti.

„Linux“ kaip maršrutizatorius.

Natūralu, kad „Linux“ branduolys jau gali atlikti „persiuntimą“, tačiau pagal nutylėjimą jis yra išjungtas, todėl jei norime, kad „Linux“ atliktų šį darbą, turime pereiti prie failo.

/proc/sys/net/ipv4/ip_forward

Čia rasime, kad tai yra failas, kuriame yra tik nulis „0“. Norėdami suaktyvinti šį elgesį, turime jį pakeisti į „1“. Deja, tai ištrinama, kai perkrauname kompiuterį, norėdami palikti jį aktyvuotą pagal numatytuosius nustatymus, turime naudoti komandą:

sysctl net.ipv4.ip_forward=1

Arba redaguokite jį tiesiai faile /etc/sysctl.conf. Priklausomai nuo paskirstymo, ši konfigūracija taip pat gali būti faile, esančiame  /etc/sysctl.d/.

Pagal numatytuosius nustatymus mūsų „Linux“ turi turėti maršruto lentelę, kuri paprastai yra mūsų LAN tinklo konfigūracija ir ryšys su maršrutizatoriumi. Jei norime pamatyti šį maršrutą, galime naudoti dvi komandas:

route -n

o

netstat -nr

Abi komandos turėtų grąžinti tą patį.

Ekrano kopija nuo 2014-09-30 18:23:06

Apskritai, šios konfigūracijos pakanka, kad „Linux“ galėtų būti vartai, o kiti kompiuteriai gali naršyti per mūsų kompiuterį. Dabar, jei norime, kad „Linux“ sujungtų du ar daugiau tinklų, pavyzdžiui, vietinių ar ne, galime naudoti statinius maršrutus.

Tarkime, kad mano „Linux“ turi dvi tinklo sąsajas, pirmoji turi interneto ryšį, kurio tinklas yra 172.26.0.0, o antrasis (10.0.0.0) turi keletą kompiuterių iš kito vietinio tinklo. Jei norime paketus nukreipti į tą kitą tinklą, galime jį naudoti:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8

Apskritai tai yra:

route add -net REDDESTINO netmask MASCARA gw IPDELLINUX

jei duosime maršrutas -n nepaisant to, ar šis tinklas egzistuoja, ar ne, šis maršrutas bus nustatytas mūsų lentelėje.

Ekrano kopija nuo 2014-09-30 18:31:35

Jei norime pašalinti minėtą maršrutą, galime jį naudoti

route del -net 10.0.0.0 netmask 255.0.0.0

„Iptables“.

Iš esmės „iptables“ naudojami filtruojant paketus, išeinančius, gaunamus ar kitus, todėl tai yra puiki priemonė mūsų tinklo srautui valdyti. Na, „iptables“ leidžia filtruoti to paties kompiuterio srautą ir filtruoja srautą, kuris praeina per jį. (Persiuntimas). „Iptables“ galima suskirstyti į lenteles, grandines ir veiksmus.

  • Lentos:  iš esmės gali būti dvi lentelės, filtras, filtruoti paketus ir  NAT versti adresus, tai yra, pereiti iš vieno tinklo į kitą.
  • Grandinės: Grandinė nurodo eismo tipą, kurį norime filtruoti ar plaukioti, tai yra kuriam srautui pritaikysime lenteles? ir jie gali būti:  ĮVADAS: Įeinantis srautas, IŠĖJIMAS: išvykstamasis srautas arba PERSIŲSTI: Eismas, einantis pro jį, bet tai nėra tinkamas susisiekimas.
  • Tai taip pat gali pasirodyti POSTROUTINGAS, kuris naudojamas paketui apdoroti tam tikru būdu po jo nukreipimo.
  • Veiksmai: Veiksmai iš esmės yra veiksmas, kurį reikia atlikti su grandine. Šis veiksmas gali būti Dropp kad tiesiog sunaikina tą srautą ar PRIIMTI. leidžiantis srautui atlikti tokį veiksmą.

„IPTABLES“ taisyklės išsaugomos ir vykdomos jų sukūrimo tvarka. Jei taisyklė pašalina ankstesnę taisyklę, visada taikoma paskutinė tvarka taisyklėje.

Ugniasienės politika.

Paprastai ugniasienės natūraliai veikia dviem būdais:

  1. Leisti visą srautą, išskyrus arba
  2. Neleiskite jokio srauto, išskyrus ...

Norėdami taikyti politiką, naudokite IPTABLES - P VEIKLOS GRANDINĖ

Kur eilutė nurodo srauto tipą (INPUT, OUTPUT, FORWARD, POSTROUTING ...), o veiksmas yra LAŠAS AR PATINKAMAS.

Pažvelkime į pavyzdį.

Ekrano kopija nuo 2014-09-30 18:53:23

Čia matome, kad iš pradžių man pavyko pinguoti, tada pasakiau „IPTABLES“, kad visas OUTPUT srautas DROP arba neleidžiamas. Tada liepiau „IPTABLES“ tai priimti.

Jei mes ketiname kurti ugniasienę nuo nulio, mes visada turime taikyti taisykles (Neleisti jokio srauto, išskyrus ... Tam mes taikome taisykles

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Jei bus taikoma ši politika, jie neturės jokio ryšio
.

Norėdami grįžti, rašome tą patį ir pakeičiame DROP į ACCEPT.

Šiuo metu, kadangi draudžiamas visas srautas, mes pradedame IPTABLES pasakyti, koks srautas gali būti.

Sintaksė yra:

iptables -A cadena -s ip_orgigen -d ip_destino -p protocolo --dport puerto -j acción

Kur:

Stygos = ĮVEŽIMAS, IŠĖJIMAS arba PIRMAS

origin_ip = Paketų kilmė, tai gali būti vienas IP arba tinklas ir šiuo atveju turime nurodyti kaukę).

paskirties_ip = kur eina paketai. tai gali būti vienas IP arba tinklas ir šiuo atveju turime nurodyti kaukę).

protokolas = nurodo paketų naudojamą protokolą (icmp, tcp, udp ...)

uostas = eismo paskirties uostas.

veiksmas = LAŠUOTI arba PRIIMTI.

pavyzdys:

Ekrano kopija nuo 2014-09-30 19:26:41

Taikomos VISOS ribojamos politikos nuostatos.

Ekrano kopija nuo 2014-09-30 19:27:42

Tada pridedame taisykles, kad būtų galima srautą per 80 prievadą HTTP ir 443 HTTPS, naudojant TCP protokolą. Tada 53 prievadas Taikoma DNS klientui išspręsti domenus, kitaip jūs nenorite naršyti. Tai veikia su udp protokolu.

Linija:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Taip yra dėl šių dalykų: Kai pateikiate, pavyzdžiui, HTTP užklausą, prisijungiate prie 80 serverio prievado, tačiau serveris, norėdamas grąžinti informaciją, turi prisijungti prie jūsų per bet kurį prievadą. (Paprastai didesnis nei 1024).

Kadangi visi mūsų uostai yra uždaryti, to nebus galima pasiekti, jei neatidarysime visų aukštesnių nei 1024 uostų (bloga idėja). Tai sako, kad priimamas visas gaunamas srautas iš mano sukurto ryšio. Turiu omenyje ryšį, kurį iš principo aš pradėjau.

Įtraukiant OUTPUT į taisykles, tai taikoma tik aptariamai įrangai, jei mes naudojame savo įrangą kaip maršrutizatorių, kad leistume atlikti šiuos ryšius, turime pakeisti OUTPUT į FORWARD. Kadangi srautas praeina per kompiuterį, bet jo ne inicijuoja
Visos šios taisyklės ištrinamos iš naujo paleidus, todėl turite sukurti scenarijus, kad jie būtų pradėti pagal numatytuosius nustatymus. Bet tai pamatysime kitame

Tikiuosi, kad ši informacija jums patiko. Kitame kalbėsiu apie NAT, „Proxy“ ir „Firewal“ scenarijus.


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.   Rogelio pinto sakė

    Tai yra pagrindas, kurį daugelis verslininkų imasi gaminti savo ugniasienes, todėl rinkoje yra tiek daug ugniasienių su įterptąja „Linux“ markių, vienų gerų, o kitų ne tiek daug.

  2.   Heberis sakė

    Puikus straipsnis. Nekantriai laukiu antros dalies.

  3.   Milton sakė

    Labai geras paaiškinimas, jis man padėjo suprasti savo darbo proxy. Ačiū

  4.   faustodas sakė

    Sveiki, Jlcmux,

    Puiku, man labai patiko, kada bus prieinama kita šalis?

    Sveikinimai ir ačiū už pasidalinimą

    1.    @Jlcmux sakė

      Ačiū už komentarą.

      Vakar išsiunčiau kitą dalį, per dieną manau, kad jie ją išleis.

      Sveikinimai.

  5.   Izraelis sakė

    Labai geras straipsnio draugas @ Jlcmux, aš tikrai išmokau su juo, nes jis išsiaiškino kai kurias abejones, kurias turėjau kurį laiką, beje, jūs neprieštarautumėte pasidalinti straipsnio šaltinio Sébastien BOBILLIER knyga, gerai slau2s ir dabar pamatyti 2-ąją dalį, salu2s.

    1.    @Jlcmux sakė

      Sveiki Ačiū, kad pakomentavote Izraelį.

      Pasirodo, kad knygą turiu fizine forma. Bet šią nuorodą radau „Google“ knygose. http://books.google.com.co/books?id=zxASM3ii4GYC&pg=PA356&lpg=PA356&dq=S%C3%A9bastien+BOBILLIER+Linux+%E2%80%93+Administraci%C3%B3n+del+sistema+y+explotaci%C3%B3n+de+los+servicios+de+red#v=onepage&q=

      Manau, kad tai baigta.

  6.   ariel sakė

    Labai geras straipsnis, pridedu užklausą: Koks būtų „Linux“ kaip maršrutizatoriaus naudojimo pranašumas, jei toks yra, atsižvelgiant į jam skirtą aparatinę įrangą? O gal tai tik mankštai? Aš žinau, kad yra specialių skyrelių, bet aš nežinau, ar jie nori išgelbėti senus asmeninius kompiuterius, ar suteikti daugiau lankstumo konfigūracijai.

    1.    @Jlcmux sakė

      Na, manau, kad pranašumai ir trūkumai priklauso nuo scenarijaus, kuriame ketinate tai įgyvendinti. Kodėl tikrai nesiruošiate pirkti savo namams UTM ar pan.? O galbūt ir smulkiam verslui, kuris to sau leisti negali. Tai taip pat gerai, kaip pratimas, nes tai padeda suprasti visą šio logiką ir galite geriau sukonfigūruoti tam skirtą „FWall“. Be to, beveik visi šie įrenginiai iš tikrųjų tai, ką jie turi, yra „Embedded Linux“.

      Sveikinimai.

  7.   ariel sakė

    Sveiki, klausimas, ar galite sugeneruoti „dirbtinę“ sąsają „Linux“ sistemoje, skirtą panašiam maršrutui tarp tinklų nukreipti? (paketinio atsekamojo stiliaus) dirbti su virtualiomis mašinomis? pvz., jei turiu eth0 (nes, žinoma, turiu vieną kortelę), ar galiu sukurti eth1, kad sukurtumėte kitą tinklą? Labai geras auklėtojas!

    1.    gyvas sakė

      „Linux“ sistemoje, žinoma, galite sukurti virtualias sąsajas. Jei turite eth0, galite turėti eth0: 0, eth0: 1, eth0: 2 ... ir kt

  8.   chinoloko sakė

    Labai gerai, ačiū, kad pasidalinai