Teie võrgu turvamine rakendusega Iptables - Proxy - NAT - IDS: 1. OSA

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:

See sisu põhineb raamatul "Linux - süsteemihaldus ja võrguteenuste operatsioon" - Sébastien BOBILLIER

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.

ruuter

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.

Ekraanipilt 2014-09-30 18:23:06

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

Ekraanipilt 2014-09-30 18:31:35

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:

  1. Luba kogu liiklus, välja arvatud või
  2. Ä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.

Ekraanipilt 2014-09-30 18:53:23

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
Kui need reeglid kehtivad, pole neil mingit tüüpi ühendust
.

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:

Ekraanipilt 2014-09-30 19:26:41

Kehtivad kõik piiratud reeglid.

Ekraanipilt 2014-09-30 19:27:42

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.

Reeglitesse OUTPUT lisades kehtib see ainult kõnealuste seadmete kohta. Kui kasutame nende ühenduste lubamiseks oma seadmeid ruuterina, peame muutma OUTPUT väärtuseks FORWARD. Kuna liiklus käib läbi arvuti, kuid seda see ei algata
Kõik need reeglid kustutatakse pärast taaskäivitamist, nii et peate skriptid looma nii, et need algaksid vaikimisi. Kuid seda näeme järgmises

Loodan, et see teave meeldis teile. Järgmises räägin NAT-ist, puhverserverist ja Firewali skriptidest.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   Rogelio pinto DIJO

    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.

  2.   Heber DIJO

    Suurepärane artikkel. Jään teist osa ootama.

  3.   Milton DIJO

    Väga hea selgitus, see aitas mul mõista oma töö volikirja. Aitäh

  4.   faustod DIJO

    Tere, Jlcmux,

    Suurepärane, mulle väga meeldis, millal teine ​​pool saadaval on?

    Tervitused ja tänud jagamise eest

    1.    @Jlcux DIJO

      Täname kommentaari eest.

      Saatsin teise osa eile, päeva jooksul arvan, et nad avaldavad selle.

      Tervitused.

  5.   Iisrael DIJO

    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.

    1.    @Jlcux DIJO

      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.

  6.   Ariel DIJO

    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.

    1.    @Jlcux DIJO

      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.

  7.   Ariel DIJO

    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!

    1.    elav DIJO

      Linuxis saate loomulikult luua virtuaalseid liideseid. Kui teil on eth0, võite olla eth0: 0, eth0: 1, eth0: 2 ... jne

  8.   chinoloco DIJO

    Nii hea, aitäh jagamast