Selles postituses proovitakse veidi selgitada, kuidas võrgud töötavad ja kuidas muuta meie Linuxi varustus ruuteriks, mis muudab meie võrgu veidi turvalisemaks, olgu see siis kodus või isegi äris. Alustame siis asjaga:
Marsruutimine ja filtreerimine
Marsruutimisest rääkimiseks ja selle mõistmiseks saame kõigepealt määratleda, mis on ruuteri roll? Selle jaoks võime öelda, et ruuteril on lisaks võrgu loomisele ja ühenduse lubamisele muude seadmetega (teades, et saame seda teha AP, Switchi, jaoturi või teiste abil) võimalus ühendada omavahel ka kaks erinevat võrku.
Nagu näeme pildil, on olemas ruuteri loodud kohalik võrk "10.0.1.0", mis jõuab ühte selle kahest liidesest. Siis on ruuteril oma teises liideses veel üks võrk oma avaliku IP-ga, millega ta saab Interneti-ühenduse luua. Marsruutimisfunktsioon on põhimõtteliselt vahendaja nende kahe võrgu vahel, et nad saaksid suhelda.
Linux kui ruuter.
Loomulikult on Linuxi kernelil juba võimalus "edastada", kuid vaikimisi on see keelatud, nii et kui tahame, et meie Linux seda tööd teeks, peame minema faili.
/proc/sys/net/ipv4/ip_forward
Seal leiame, et see on fail, mis sisaldab ainult nulli "0". Peame selle käitumise aktiveerimiseks muutma selle väärtuseks üks "1". Kahjuks kustutatakse see arvuti taaskäivitamisel. Kui soovite selle vaikimisi aktiveerida, peame kasutama käsku:
sysctl net.ipv4.ip_forward=1
Või redigeerige seda otse failis /etc/sysctl.conf. Sõltuvalt levitamisest võib see konfiguratsioon olla ka failis /etc/sysctl.d/.
Vaikimisi peab meie Linuxil olema marsruutimistabel, mis on üldjuhul meie LAN-võrgu konfiguratsioon ja ühendus ruuteriga. Kui tahame seda marsruutimist näha, saame kasutada kahte käsku:
route -n
o
netstat -nr
Mõlemad käsud peaksid tagastama sama.
Üldiselt piisab sellest konfiguratsioonist, et teie Linux toimiks lüüsina ja teised arvutid saavad meie arvutis navigeerida. Nüüd, kui tahame, et meie Linux ühendaks kaks või enam võrku, olgu need siis kohalikud või mitte, saame kasutada staatilisi marsruute.
Oletame, et minu Linuxil on kaks võrguliidest, esimesel on Interneti-ühendus, mille võrk on 172.26.0.0, ja teisel (10.0.0.0) on mõned arvutid teisest kohalikust võrgust. Kui tahame pakette suunata sellesse teise võrku, saame seda kasutada:
route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8
Üldiselt on see:
route add -net REDDESTINO netmask MASCARA gw IPDELLINUX
kui anname marsruut -n olenemata sellest, kas see võrk on olemas või mitte, fikseeritakse see marsruut meie tabelis.
Kui soovime nimetatud marsruudi kaotada, saame seda kasutada
route del -net 10.0.0.0 netmask 255.0.0.0
iptables.
Põhimõtteliselt kasutatakse iptablesi pakettide, väljaminevate, sissetulevate või teiste filtreerimiseks, see teeb sellest suurepärase tööriista meie võrguliikluse haldamiseks. Noh, iptables, nii nagu see võimaldab meil filtreerida liiklust samast arvutist, võimaldab see filtreerida ka seda läbivat liiklust. (Edastamine). Iptable'i saab jagada tabeliteks, stringideks ja toiminguteks.
- Lauad: põhimõtteliselt võib olla kaks tabelit, filtrid, pakettide filtreerimiseks ja nat aadresside tõlkimiseks, st ühest võrgust teise liikumiseks.
- Ketid: Kett viitab liikluse tüübile, mida me tahame filtreerida või ujuda, see tähendab, millisele liiklusele me tabeleid rakendame? ja need võivad olla: INPUT: Sissetulev liiklus, VÄLJUND: väljaminev liiklus või EDASI: Liiklus, mis seda läbib, kuid see pole tema enda ühendus.
- See võib ka ilmuda MARSRUUTIMISE JÄREL, mida kasutatakse paketi teatud viisil töötlemiseks pärast selle suunamist.
- Meetmed: Toimingud on põhimõtteliselt kettiga tehtavad toimingud. See tegevus võib olla DOP, see lihtsalt hävitab selle liikluse või VASTU. mis võimaldab liiklusel seda toimingut teha.
Reeglid IPTABLES salvestatakse ja täidetakse nende loomise järjekorras ning kui reegel kustutab eelmise reegli, rakendatakse alati tellimuse viimast reeglit.
Tulemüüri eeskirjad.
Üldiselt töötavad tulemüürid loomulikult kahel viisil:
- Luba kogu liiklus, välja arvatud või
- Ärge lubage liiklust, välja arvatud ...
Reeglite rakendamiseks kasutage IPTABLID - P TEGEVUSKETT
Kui string tähistab liikluse tüüpi (INPUT, OUTPUT, FORWARD, POSTROUTING ...) ja toiming on DROP OR ACCEPT.
Vaatame ühte näidet.
Siin näeme, et algul suutsin pingida, siis ütlesin IPTABLES-ile, et kogu OUTPUT-liiklus on DROP või pole lubatud. Siis käskisin IPTABLESil see vastu võtta.
Kui me ehitame tulemüüri nullist, peame alati järgima reegleid (Ärge lubage liiklust, välja arvatud ... Selleks rakendame reegleid
iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Naasmiseks kirjutame sama ja asendame DROP sõnaga ACCEPT.
Siinkohal, kuna kogu liiklus on keelatud, hakkame oma IPTABLES-ile ütlema, milline liiklus sellel võib olla.
Süntaks on:
iptables -A cadena -s ip_orgigen -d ip_destino -p protocolo --dport puerto -j acción
Kui:
String = SISEND, VÄLJUND või EDASI
päritolu_ip = Pakettide päritolu, see võib olla üks IP või võrk ja sel juhul peame määrama maski).
sihtkoha_ip = kuhu paketid lähevad. see võib olla üks IP või võrk ja sel juhul peame maski määrama).
protokoll = näitab pakettide kasutatavat protokolli (icmp, tcp, udp ...)
port = liikluse sihtsadam.
tegevus = LENNU või VASTU.
Näide:
Kehtivad kõik piiratud reeglid.
Seejärel lisame reeglid, et oleks võimalik liiklust läbi pordi 80 HTTP ja 443 HTTPS koos TCP-protokolliga. Seejärel ühendatakse port 53 DNS-i kliendil domeenide lahendamiseks, vastasel juhul te ei navigeeri. See töötab udp-protokolliga.
Rida:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Selle põhjuseks on järgmine: Näiteks kui esitate HTTP-päringu, loote ühenduse serveri 80. pordiga, kuid teabe tagastamiseks peab server teiega ühendust võtma mis tahes pordi kaudu. (Üldiselt suurem kui 1024).
Kuna kõik meie sadamad on suletud, ei saavutata seda enne, kui avame kõik sadamad, mis on kõrgemad kui 1024 (halb idee). See ütleb, et kogu sissetulev liiklus, mis pärineb minu loodud ühendusest, on aktsepteeritud. Ma mõtlen, et seos, mille ma põhimõtteliselt alustasin.
Loodan, et see teave meeldis teile. Järgmises räägin NAT-ist, puhverserverist ja Firewali skriptidest.
See on alus, mida paljud ettevõtjad võtavad enda tulemüüride valmistamiseks, seetõttu on turul nii palju sisseehitatud Linuxiga tulemüüre, ühed head ja teised mitte nii palju.
Suurepärane artikkel. Jään teist osa ootama.
Väga hea selgitus, see aitas mul mõista oma töö volikirja. Aitäh
Tere, Jlcmux,
Suurepärane, mulle väga meeldis, millal teine pool saadaval on?
Tervitused ja tänud jagamise eest
Täname kommentaari eest.
Saatsin teise osa eile, päeva jooksul arvan, et nad avaldavad selle.
Tervitused.
Väga hea artiklisõber @ Jlcmux, õppisin temaga koos, sest ta selgitas mõningaid kahtlusi, mis mul juba mõnda aega olid, muide, te ei viitsi jagada artikli allika raamatut, Sébastien BOBILLIERi raamatut, noh slau2s ja nüüd vt 2. osa, salu2s.
Tere Täname Iisraeli kommenteerimise eest.
Tuleb välja, et mul on raamat füüsilises vormis. Kuid leidsin selle lingi Google Booksist. 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=
Ma arvan, et see on täielik.
Väga hea artikkel, lisan küsimuse: Mis oleks linuxi ruuterina kasutamise eelis, kui seda on, sellele pühendatud riistvara suhtes? Või on see mõeldud ainult liikumiseks? Ma tean, et on olemas spetsiaalseid distrosid, kuid ma ei tea, kas need on mõeldud vanade arvutite päästmiseks või konfiguratsiooni paindlikumaks muutmiseks.
Ma arvan, et eelised ja puudused sõltuvad stsenaariumist, kus kavatsete seda rakendada. Miks te kindlasti ei kavatse oma maja jaoks UTM-i või midagi sellist osta? Ja võib-olla ka väikeettevõtte jaoks, kes seda endale lubada ei saa. See on hea ka harjutusena, kuna see aitab teil mõista kogu selle loogikat ja saate paremini konfigureerida spetsiaalset FWalli. Peale selle on peaaegu kõigil neil seadmetel tõesti sisseehitatud Linux.
Tervitused.
Tere, küsimus, kas saate linuxis luua "kunstliku" liidese võrkude vahelise marsruutimise jaoks? (pakettjälgimisstiil) virtuaalsete masinatega töötamiseks? nt kui mul on eth0 (kuna mul on muidugi üks kaart), kas ma saan luua teise võrgu loomiseks eth1? Väga hea juhendaja!
Linuxis saate loomulikult luua virtuaalseid liideseid. Kui teil on eth0, võite olla eth0: 0, eth0: 1, eth0: 2 ... jne
Nii hea, aitäh jagamast