Š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:
Rodiklis
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.
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į.
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.
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:
- Leisti visą srautą, išskyrus arba
- 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į.
Č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
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:
Taikomos VISOS ribojamos politikos nuostatos.
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.
Tikiuosi, kad ši informacija jums patiko. Kitame kalbėsiu apie NAT, „Proxy“ ir „Firewal“ scenarijus.
12 komentarai, palikite savo
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.
Puikus straipsnis. Nekantriai laukiu antros dalies.
Labai geras paaiškinimas, jis man padėjo suprasti savo darbo proxy. Ačiū
Sveiki, Jlcmux,
Puiku, man labai patiko, kada bus prieinama kita šalis?
Sveikinimai ir ačiū už pasidalinimą
Ačiū už komentarą.
Vakar išsiunčiau kitą dalį, per dieną manau, kad jie ją išleis.
Sveikinimai.
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.
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.
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.
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.
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!
„Linux“ sistemoje, žinoma, galite sukurti virtualias sąsajas. Jei turite eth0, galite turėti eth0: 0, eth0: 1, eth0: 2 ... ir kt
Labai gerai, ačiū, kad pasidalinai