Zaščita vašega omrežja z Iptables - Proxy - NAT - IDS: 2. DEL

V Prejšnja objava Videli smo, da konfiguracija IPTables deluje kot požarni zid. Zdaj lahko vidimo, kako ustvariti te skripte, tako da se pravila samodejno izvajajo, ko se sistem zažene, in tudi, kako lahko ta pravila za trenutek odpravimo ali ustavimo.

Preden naredimo skript in vam pokažemo, kako izgleda, se pogovorimo malo o NAT-u in konceptu, kaj želimo narediti s to opremo.

NAT in kontekst primera.

Ko govorimo o NAT, lahko to zamenjamo z usmerjanjem, saj sta oba zadolžena za medsebojno povezovanje dveh različnih omrežij. Resnična razlika je v tem, da se usmerjanje uporablja za prehod iz enega lokalnega omrežja v drugo, to drugo omrežje pa se lahko poveže z usmerjevalnikom in izstopi na internet.

Ko govorimo o NAT, govorimo o usmerjanju paketov iz lokalnega ali zasebnega omrežja v javno omrežje ali internet. To stori z maskiranjem paketov tako, da postavi javni IP, s katerim gre na internet. Z drugimi besedami, usmerjevalnika ne potrebujemo, ker je javni IP neposredno v lasti računalnika GNU / Linux.

nat

To bomo storili s sloganom, da svoj Linux uporabljamo kot usmerjevalnik / požarni zid za dostop do interneta iz lokalnega omrežja. Tu pa se lahko pojavita dva scenarija.

  • Da je naš Linux med usmerjevalnikom ponudnika storitev in lokalnim omrežjem.

V tem primeru bi med usmerjevalnikom in našim Linuxom obstajalo omrežje, med Linuxom in lokalnim omrežjem pa bi bilo drugačno omrežje. To pomeni, da našemu usmerjevalniku ne bi bilo treba izvesti NAT kot takega, s preprosto usmeritvijo prometa, kot je razloženo v Prejšnja objava Bilo bi dobro.

  • Da ima naš Linux vmesnik, povezan z lokalnim omrežjem, in prek drugega vmesnika prejme neposredno javni IP, s katerim krmili.

To pomeni, da mora naš Linux uporabljati NAT, da lahko paketi dosežejo internet.

Za namene tega majhnega laboratorija bomo rekli, da naš Linux neposredno prejme javni IP in tako lahko preizkusi učinke NAT.

Nato uporabimo sintakso

 iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE

Kjer je eth1 vmesnik, kjer prejmemo javni IP, torej kam gremo na internet.

MASQUERADE se uporablja, kadar je ip javen, vendar se lahko sčasoma spreminja (dinamično). V nasprotnem primeru lahko uporabimo SNAT –izvirni ip

Ustvarjanje skripta iptables

Recimo torej, da je: 172.26.0.0 naše lokalno omrežje in 81.2.3.4 javni IP, s katerim gremo v internet. (gre za statični ip). Imam vmesnike eth0 (lokalno omrežje)

eth1 (Javno omrežje).

V bistvu je sestavljen iz ustvarjanja skripta, ki ga lahko pokličete iz /etc/init.d/firestop (na primer). in iz tega skripta lahko zaženemo, ustavimo ali preverimo stanje naše konfiguracije, kot to počnemo s katerim koli sistemskim demonom.

Recimo, da so moja pravila IPTABLES:

#! / bin / bash # Požarni zid mojega doma. # Ime datoteke / etc / firewall_on # Avtor Jlcmux Twitter: @Jlcmux # # Osnovni pravilnik. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT za skupno rabo interneta od eth0 do eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Dovoli dohodne povezave, ki jih sprožijo moji iptables -A FORWARD -m state --state VZPOSTAVLJENO, POVEZANO -j SPREJEM # # Pooblaščeni iptables za odhodni promet -A NAPREJ -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A NAPREJ -i eth0 -o eth1 -p tcp --dport 443 -j SPREJEM iptables -A NAPREJ -i eth0 -o eth1 -p udp --dport 53 -j SPREJEM
Ne pozabimo dati dovoljenj za izvajanje

Pojasnilo:

Skript v bistvu naredi naslednje:

  1. Najprej omejite vso navigacijo, povezave in promet. (Osnovne politike požarnega zidu)
  2. Nato ustvarite NAT s ciljnim eth1. kar pomeni, da imamo statični javni ip «81.2.3.4»
  3. Odpre vrata, potrebna za sprejem paketov povezav, ki sem jih sprožil sam.
  4. Sprejema odhodni promet HTTP, HTTPS in DNS.
Pravila so namenjena NAPREJ prometu, ker svoj Linux uporabljamo kot usmerjevalnik, zato se pravilniki uporabljajo za promet, ki prehaja skozi Linux, torej deluje kot posrednik. To pomeni, da naš Linux v resnici ne more neposredno krmariti ali sprejemati nobenih podatkov. Velja samo za računalnike, povezane z njim, ne pa tudi zase

Če smo za navigacijo želeli uporabiti svojo opremo, ponovimo vrstice in spremenimo NAPREJ v VHOD ali IZHOD, kot je primerno.

Prekliči skript.

Zdaj bomo ustvarili skript, ki bo preglasil vse zgoraj in računalnik pustil čist pred vsem tem. (Za namene testiranja ali pa želimo izključiti požarni zid).

#! / bin / bash # Požarni zid mojega doma. # Ime datoteke / etc / firewall_off # Avtor Jlcmux Twitter: @Jlcmux # #Izbris pravil iptables -F # # Uporaba privzetih pravilnikov (ves promet sprejet) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Avtomatizacija.

Zdaj moramo znotraj ustvariti skript /etc/init.d/ storitev pa se zažene samodejno in jo lahko upravljamo na bolj udoben način.

#! / bin / bash # Požarni zid mojega doma. # Ime datoteke /etc/init.d/ požarni zid # Avtor Jlcmux Twitter: @Jlcmux primer $ 1 v začetku) / etc / firewall_on ;; stop) / etc / firewall_off ;; status) iptables -L ;; *) echo "Napačna sintaksa. Veljavno = /etc/init.d/ začetek požarnega zidu | stop | status ;; esac

Pojasnilo:

Ta zadnji skript, ki smo ga vnesli /etc/init.d/ z imenom požarni zid. Če želimo torej upravljati požarni zid, lahko uporabimo ukaz /etc/init.d/ start firewall. Na enak način ga lahko ustavimo ali vidimo stanje.

Zdaj bomo uredili datoteko /etc/rc.local in postavimo nekaj takega: /etc/init.d/ start firewall tako da se začne s sistemom.

Pa tudi. To je drugi del. Upam, da bo vsem prinesel nekaj. V naslednjem vidimo Proxy in IDS.


7 komentarja, pustite svojega

Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   dhunter je dejal

    Če uporabljate Debian, je v repo paketu (iptables-persistent), ki stori točno to, odvrže trenutna pravila v /etc/iptables/rules.v4 ali v6, odvisno od tega, kaj uporabljate, in jih nato uporabi za vas ko dvignete sistem.

  2.   ocz je dejal

    V praksi bi za čiščenje konfiguracije običajnega požarnega zidu iptables (in uporaba NAT-a z mojega stališča ne bi bila tako) v večini primerov zadoščalo splakovanje pravil in ponastavitev privzetih pravilnikov na ACCEPT.
    Toda teoretično in kolikor vem, morate poleg tega počistiti tudi neprivzete nize in ponastaviti števce. Ukrepi, ki jih je treba upoštevati, saj poleg "filtriranja" obstajajo še druge tabele (za to je obvezno prebrati datoteko "/ proc / net / ip_tables_names").

    Mimogrede, pravoslavje pravi, da mora biti požarni zid že vklopljen, preden je omrežje. Ne vem, kako se to doseže v drugih sistemih Linux, toda v sistemih Debian bi lahko skript prilagodil in nastavil v imenik "/etc/network/if-pre-up.d/".

    Dober požarni zid. 😉

  3.   Nautilus. je dejal

    Pozdravljeni, objava je zelo dobra. Prebral sem celotna 2 zvezka.

    Čakam na naslednjo 🙂

  4.   anonimen je dejal

    Vprašanje iz moje nevednosti, nadaljujemo z iptables, toda za več različic jedra nftables že preizkušam, vprašanja so, ali je nftables nekaj beta glede iptables? Se bodo iptables uporabljali še dlje?

    Hvala.

    1.    yukiteru je dejal

      nftables vključuje vse funkcionalnosti iptables, ip6tables, arptables in ebtables, vse pa uporabljajo novo infrastrukturo tako v jedrnem kot v uporabniškem prostoru, kar zagotavlja boljšo zmogljivost in izboljšano funkcionalnost. nftables bo nadomestil iptables in vsa druga omenjena orodja, zaenkrat pa ne, vsaj dokler nftables kot taka ne bo bolj razširjena.

  5.   Alexander je dejal

    zelo dober prispevek, hotel sem prebrati več, ker je zelo dobro razloženo .. pozdrav hvala velik prispevek

  6.   Avrah je dejal

    Zdravo! Zelo dobro obe objavi.
    Kot prispevek lahko dodate na koncu v tem delu:

    "Zdaj bomo uredili datoteko /etc/rc.local in dali nekaj takega: /etc/init.d/firestop start, da se začne s sistemom."

    Dodajte to rc.local.

    če je [-x /etc/init.d/ požarni zid]; potem
    /etc/init.d/ start firewall
    fi

    Kar pomeni, da če ima "požarni zid" dovoljenja za izvajanje, ga izvedite, če ne.
    Če želite, da se požarni zid ne zažene, morate le odstraniti dovoljenja.

    Na primer: chmod + x /etc/init.d/ požarni zid
    da se zažene ob vsakem zagonu ali ...
    chmod -x /etc/init.d/ požarni zid
    da ga popolnoma onemogočite.

    Lep pozdrav!