Verkon suojaaminen Iptables - Proxy - NAT - IDS: OSA 1

Tässä viestissä yritetään selventää hieman siitä, miten verkot toimivat ja kuinka tehdä Linux-laitteistostamme reititin, joka tekee verkostostamme hieman turvallisemman, joko kotona tai jopa yrityksessä. Joten aloitetaan asia:

Tämä sisältö perustuu kirjaan "Linux - Järjestelmänhallinta ja verkkopalvelujen käyttö" - Sébastien BOBILLIER

Reititys ja suodatus

Jos haluat puhua ja ymmärtää reitityksestä, voimme ensin määrittää, mikä on reitittimen rooli? Tätä varten voimme sanoa, että reititin voi verkon luomisen ja yhteyden sallimisen lisäksi muihin laitteisiin (tietäen, että voimme tehdä tämän AP: llä, Switchillä, Hubilla tai muilla) myös kyvyn yhdistää kaksi eri verkkoa toisiinsa.

reititin

Kuten kuvasta näkyy, reititin on luonut paikallisen verkon "10.0.1.0", joka saavuttaa toisen sen kahdesta rajapinnasta. Sitten reitittimellä on toisella käyttöliittymällä toinen verkko, jonka julkisella IP-osoitteella se voi muodostaa yhteyden Internetiin. Reititystoiminnon on periaatteessa toimittava välittäjänä näiden kahden verkon välillä, jotta ne voivat kommunikoida.

Linux reitittimenä.

Luonnollisesti Linux-ytimellä on jo kyky suorittaa "edelleenlähetys", mutta se on oletusarvoisesti pois käytöstä, joten jos haluamme Linuximme tekemään tämän työn, meidän on mentävä tiedostoon.

/proc/sys/net/ipv4/ip_forward

Sieltä huomaamme, että se on tiedosto, joka sisältää vain nollan "0". Meidän on muutettava se yhdeksi "1" aktivoidaksemme tämän toiminnan. Tämä valitettavasti poistetaan, kun käynnistämme tietokoneen uudelleen. Jos haluat jättää sen oletusarvoisesti aktivoituksi, meidän on käytettävä komentoa:

sysctl net.ipv4.ip_forward=1

Tai muokkaa sitä suoraan tiedostossa /etc/sysctl.conf-. Jakelusta riippuen tämä kokoonpano voi olla myös tiedostossa  /etc/sysctl.d/.

Oletusarvon mukaan Linuxillamme on oltava reititystaulukko, joka yleensä on LAN-verkkomme kokoonpano ja yhteys reitittimeen. Jos haluamme nähdä tämän reitityksen, voimme käyttää kahta komentoa:

route -n

o

netstat -nr

Molempien komentojen pitäisi palauttaa sama.

Kuvakaappaus 2014-09-30 18:23:06

Yleensä tämä kokoonpano riittää Linuxille toimimaan yhdyskäytävänä ja muut tietokoneet voivat navigoida tietokoneemme läpi. Jos nyt haluamme Linuximme yhdistävän kaksi tai useampaa verkkoa, olivatpa ne paikallisia vai ei, voimme käyttää staattisia reittejä.

Oletetaan, että Linuxissani on kaksi verkkoliitäntää, ensimmäisessä on Internet-yhteys, jonka verkko on 172.26.0.0, ja toisessa (10.0.0.0) on joitain tietokoneita toisesta lähiverkosta. Jos haluamme reitittää paketit toiseen verkkoon, voimme käyttää:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8

Yleensä se on:

route add -net REDDESTINO netmask MASCARA gw IPDELLINUX

jos annamme reitti -n riippumatta siitä, onko tämä verkko olemassa vai ei, tämä reititys korjataan taulukossamme.

Kuvakaappaus 2014-09-30 18:31:35

Jos haluamme poistaa mainitun reitityksen, voimme käyttää sitä

route del -net 10.0.0.0 netmask 255.0.0.0

iptables.

Pohjimmiltaan iptablesia käytetään pakettien, lähtevien, saapuvien tai muiden suodattamiseen, mikä tekee siitä erinomaisen työkalun verkkoliikenteen hallintaan. No, iptables, aivan kuten se antaa meidän suodattaa saman tietokoneen liikennettä, se myös suodattaa sen läpi kulkevan liikenteen. (Edelleenlähetys). Iptable voidaan jakaa taulukoihin, ketjuihin ja toimintoihin.

  • Taulut:  periaatteessa taulukoita voi olla kaksi, suodattaa, suodattaa paketteja ja  NAT kääntää osoitteita, eli siirtyä verkosta toiseen.
  • Ketjut: Ketju viittaa liikennetyyppiin, jonka haluamme suodattaa tai uida, eli mihin liikenteeseen aiomme soveltaa taulukoita? ja ne voivat olla:  INPUT: Saapuva liikenne, LÄHTÖ: lähtevä liikenne tai ETEENPÄIN: Liikenne kulkee sen läpi, mutta se ei ole sen oma yhteys.
  • Se voi myös näkyä JÄLJENNYS, Käytetään paketin käsittelyyn tietyllä tavalla sen jälkeen, kun se on reititetty.
  • toimet: Toiminnot ovat periaatteessa ketjun kanssa suoritettava toiminta. Tämä toiminta voi olla DROP joka vain tuhoaa liikenteen tai HYVÄKSYÄ. jonka avulla liikenne voi tehdä kyseisen toiminnon.

IPTABLES-säännöt tallennetaan ja suoritetaan niiden luomisjärjestyksessä, ja jos sääntö poistaa edellisen säännön, järjestyksessä käytetään aina viimeistä sääntöä.

Palomuurikäytännöt.

Palomuurit toimivat yleensä kahdella tavalla:

  1. Salli kaikki liikenne paitsi tai
  2. Älä salli liikennettä paitsi ...

Käytä käytäntöjä käyttämällä IPTABLETIT - P-TOIMINTAKETJU

Jos merkkijono edustaa liikennetyyppiä (INPUT, OUTPUT, FORWARD, POSTROUTING ...) ja toiminto on DROP OR ACCEPT.

Katsotaanpa esimerkkiä.

Kuvakaappaus 2014-09-30 18:53:23

Täällä näemme, että aluksi pystyin pingata, sitten sanoin IPTABLESille, että kaikki OUTPUT-liikenne oli PUDOTETTU tai sitä ei sallittu. Sitten käskin IPTABLESia hyväksymään se.

Jos aiomme rakentaa palomuurin tyhjästä, meidän on aina sovellettava sääntöjä (Älä salli liikennettä paitsi ... Tätä varten käytämme sääntöjä

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P Eteenpäin
Jos näitä käytäntöjä sovelletaan, heillä ei ole minkäänlaista yhteyttä
.

Palataksemme kirjoitamme saman ja korvataan DROP sanalla HYVÄKSY.

Tässä vaiheessa, koska kaikki liikenne on estetty, alamme kertoa IPTABLE-tiedostoille, mitä liikennettä sillä voi olla.

Syntaksi on:

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

Missä:

Merkkijono = INPUT, Output tai FORWARD

origin_ip = Pakettien alkuperä, tämä voi olla yksi IP tai verkko, ja tässä tapauksessa meidän on määritettävä peite).

määränpää_ip = minne paketit ovat menossa. tämä voi olla yksi IP tai verkko, ja tässä tapauksessa meidän on määritettävä peite).

protokolla = osoittaa pakettien käyttämän protokollan (icmp, tcp, udp ...)

portti = liikenteen kohdesatama.

toiminta = DROP tai HYVÄKSY.

esimerkiksi:

Kuvakaappaus 2014-09-30 19:26:41

KAIKKI rajoitetut käytännöt ovat voimassa.

Kuvakaappaus 2014-09-30 19:27:42

Sitten lisätään säännöt voidakseen saada liikennettä porttien 80 HTTP ja 443 HTTPS kautta TCP-protokollalla. Sitten portti 53 DNS-asiakkaalle käytetään ratkaisemaan toimialueet, muuten et navigoi. Tämä toimii udp-protokollan kanssa.

Linja:

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

Tämä johtuu seuraavista syistä: Kun teet esimerkiksi HTTP-pyynnön, muodostat yhteyden palvelimen porttiin 80, mutta palvelimen on palautettava tiedot yhteyden muodostamiseksi sinulle minkä tahansa portin kautta. (Yleensä suurempi kuin 1024).

Koska kaikki satamamme ovat kiinni, tätä ei voida saavuttaa, elleivät avaa kaikkia yli 1024: n portteja (huono idea). Tämä sanoo, että kaikki saapuva liikenne, joka tulee itsestäni muodostamasta yhteydestä, hyväksytään. Tarkoitan, yhteyden, jonka aloitin periaatteessa.

Kun asetat OUTPUT -sääntöihin, tämä koskee vain kyseisiä laitteita. Jos käytämme laitteitamme reitittimenä näiden yhteyksien sallimiseksi, meidän on vaihdettava OUTPUT-asetukseksi FORWARD. Koska liikenne kulkee tietokoneen läpi, mutta se ei käynnistä sitä
Kaikki nämä säännöt poistetaan uudelleenkäynnistyksen jälkeen, joten sinun on luotava komentosarjat, jotta ne alkavat oletusarvoisesti. Mutta näemme tämän seuraavassa

Toivottavasti pidit näistä tiedoista. Seuraavassa puhun NAT: sta, välityspalvelimesta ja Firewalin komentosarjoista.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Rogelio pinto dijo

    Tämä on perusta, jonka monet yrittäjät käyttävät omien palomuuriensa valmistamiseen, ja siksi markkinoilla on niin monia tuotemerkkejä sulautetulla linuxilla varustettuja palomuureja, jotkut hyvät ja toiset eivät niin paljon.

  2.   Heber dijo

    Erinomainen artikkeli. Odotan innolla toista osaa.

  3.   Milton dijo

    Erittäin hyvä selitys, se auttoi minua ymmärtämään työni valtakirjan. Kiitos

  4.   faustod dijo

    Hei Jlcmux,

    Erinomainen, pidin siitä todella, milloin toinen osapuoli on käytettävissä?

    Terveisiä ja kiitoksia jakamisesta

    1.    @Jlcux dijo

      Kiitos kommentista.

      Lähetin toisen osan eilen, päivän aikana luulen, että he julkaisevat sen.

      Tervehdys.

  5.   Israel dijo

    Erittäin hyvä artikkeliystävä @ Jlcmux, opin todella hänen kanssaan, koska hän selvitti joitain epäilyjä, joita minulla oli jonkin aikaa, muuten ei kannata jakaa artikkelin lähdekirjaa, Sébastien BOBILLIERin kirjaa, hyvin slau2s ja nyt nähdäksesi 2. osan, salu2s.

    1.    @Jlcux dijo

      Hei Kiitos, kun kommentoit Israelia.

      On käynyt ilmi, että minulla on kirja fyysisessä muodossa. Mutta löysin tämän linkin Google-kirjoista. 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=

      Luulen, että se on täydellinen.

  6.   Ariel dijo

    Erittäin hyvä artikkeli, lisätään kysymys: Mikä olisi linuxin käytön etuna reitittimenä, jos sellaista on, suhteessa sille omistettuun laitteistoon? Vai onko se vain liikuntaa varten? Tiedän, että on olemassa erillisiä distroja, mutta en tiedä, onko niiden tarkoitus pelastaa vanhat tietokoneet vai tarjota joustavuutta kokoonpanossa.

    1.    @Jlcux dijo

      Luulen, että edut ja haitat riippuvat tilanteesta, jossa aiot toteuttaa tämän. Miksi et todellakaan aio ostaa taloon UTM: ää tai vastaavaa? Ja ehkä pienyritykselle, jolla ei ole varaa siihen. Se on myös hyvä harjoitus, koska se auttaa sinua ymmärtämään kaiken logiikan ja voit paremmin määrittää erillisen FWallin. Tämän lisäksi melkein kaikilla näillä laitteilla on todella sulautettu Linux.

      Tervehdys.

  7.   Ariel dijo

    Hei, kysymys, voitko luoda "keinotekoisen" käyttöliittymän Linuxiin samanlaista reititystä varten verkkojen välillä? (pakettien jäljitystyyli) toimimaan virtuaalikoneiden kanssa? esim. jos minulla on eth0 (koska tietysti minulla on yksi kortti), voinko luoda eth1: n toisen verkon luomiseksi? Erittäin hyvä tutor!

    1.    vilkas dijo

      Linuxissa voit tietysti luoda virtuaalisia rajapintoja. Jos sinulla on eth0, voit käyttää eth0: 0, eth0: 1, eth0: 2 ... jne

  8.   chinoloco dijo

    Niin hyvä, kiitos jakamisesta