Osiguravanje vaše mreže pomoću Iptables - Proxy - NAT - IDS: 1. DIO

Ovaj post pokušava malo pojasniti kako mreže funkcioniraju i kako našu Linux opremu pretvoriti u usmjerivač koji osigurava malo više naše mreže, bilo kod kuće ili čak u poslu. Pa krenimo na posao:

Sadržaj se temelji na knjizi "Linux - Administracija sistema i rad mrežnih usluga" - Sébastien BOBILLIER

Usmjeravanje i filtriranje

Da bismo razgovarali i razumjeli usmjeravanje, prvo možemo definirati koja je funkcija usmjerivača? Za ovo možemo reći da usmjerivač, osim što stvara mrežu i omogućava povezivanje s drugom opremom (znajući da to možemo učiniti pomoću AP-a, Switch-a, Hub-a ili drugih), ima mogućnost povezivanja dvije različite mreže međusobno.

ruter

Kao što možemo vidjeti na slici, postoji lokalna mreža "10.0.1.0" koju kreira usmjerivač i dolazi do jednog od svoja dva sučelja. Tada usmjerivač na svom drugom sučelju ima drugu mrežu sa svojim javnim IP-om s kojim se može povezati na Internet. Funkcija usmjeravanja u osnovi služi kao posrednik između ove dvije mreže kako bi mogle komunicirati.

Linux kao usmjerivač.

Naravno, Linux kernel već ima mogućnost "prosljeđivanja", ali po defaultu je onemogućen, pa ako želimo da naš Linux radi ovaj posao, moramo ići na datoteku.

/proc/sys/net/ipv4/ip_forward

Tamo ćemo otkriti da se radi o datoteci koja sadrži samo nulu "0", ono što moramo učiniti je promijeniti je u jednu "1" da bismo aktivirali ovo ponašanje. Ovo se nažalost briše kada ponovo pokrenemo računar, da bismo ga ostavili aktiviranim po defaultu, moramo koristiti naredbu:

sysctl net.ipv4.ip_forward=1

Ili ga uredite direktno u datoteci /etc/sysctl.conf. Ovisno o distribuciji, ova konfiguracija može biti i u datoteci u  /etc/sysctl.d/.

Prema zadanim postavkama naš Linux mora imati tablicu usmjeravanja, što je obično konfiguracija naše lan mreže i veza s usmjerivačem. Ako želimo vidjeti ovo usmjeravanje, možemo koristiti dvije naredbe:

route -n

o

netstat -nr

Obje naredbe trebaju vraćati isto.

Snimak ekrana sa 2014-09-30 18:23:06

Općenito, ova konfiguracija je dovoljna da vaš Linux posluži kao prolaz i da se drugi računari mogu kretati kroz naše računalo. Ako sada želimo da naš Linux poveže dvije ili više mreža, na primjer, lokalnu ili ne, možemo koristiti statičke rute.

Pretpostavimo da moj Linux ima dva mrežna sučelja, prvo ima internetsku vezu čija je mreža 172.26.0.0, a drugo (10.0.0.0) ima neke računare iz druge lokalne mreže. Ako želimo usmjeravati pakete na tu drugu mrežu, možemo koristiti:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8

Općenito je:

route add -net REDDESTINO netmask MASCARA gw IPDELLINUX

ako damo ruta -n bez obzira postoji li ova mreža ili ne, ovo usmjeravanje će biti fiksirano u našoj tablici.

Snimak ekrana sa 2014-09-30 18:31:35

Ako želimo ukloniti navedeno usmjeravanje, možemo koristiti

route del -net 10.0.0.0 netmask 255.0.0.0

Iptables.

U osnovi se iptables koristi za filtriranje paketa, odlaznih, dolaznih ili drugih, što ga čini izvrsnim alatom za upravljanje našim mrežnim prometom. Pa, iptables, baš kao što nam omogućava filtriranje prometa sa istog računara, omogućava nam i filtriranje prometa koji prolazi kroz njega. (Prosljeđivanje). Iptable se mogu podijeliti na tablice, nizove i akcije.

  • Odbori:  u osnovi mogu biti dvije tablice, filter, za filtriranje paketa i  nat za prevođenje adresa, odnosno za prelazak sa jedne mreže na drugu.
  • Lanci: Lanac se odnosi na vrstu prometa koji želimo filtrirati ili preplivati, odnosno na koji ćemo promet primijeniti tablice? a mogu biti:  ULAZ: Dolazni promet, IZLAZ: odlazni promet ili NAPRED: Saobraćaj koji prolazi kroz njega, ali to nije ispravna veza.
  • Može se i pojaviti POSTROUTING, koja se koristi za tretiranje paketa na određeni način nakon što je usmjeren.
  • Akcije: Akcije su u osnovi radnje koje treba izvesti s lancem. Ova akcija može biti DROP, koji samo uništava taj promet ili PRIHVATI. koji omogućava prometu da izvrši tu akciju.

IPTABLES pravila spremaju se i izvršavaju redoslijedom u kojem su kreirana, a ako pravilo izbriše prethodno pravilo, uvijek se primjenjuje posljednje pravilo u redoslijedu.

Pravila vatrozida.

Generalno, zaštitni zidovi prirodno rade na dva načina:

  1. Omogućiti sav promet osim ili
  2. Ne dopustite nikakav promet osim ...

Da biste primijenili politike, koristite IPTABLE - P AKCIJSKI LANAC

Gdje niz predstavlja vrstu prometa (INPUT, OUTPUT, FORWARD, POSTROUTING ...), a radnja je DROP ILI ACCEPT.

Pogledajmo primjer.

Snimak ekrana sa 2014-09-30 18:53:23

 

Ovdje vidimo da sam isprva uspio pingati, a zatim sam rekao IPTABLESU da je sav IZLAZNI saobraćaj DROP ili nije dozvoljen. Tada sam rekao IPTABLES-u da to prihvati.

Ako ćemo vatrozid graditi od nule, uvijek moramo primjenjivati ​​pravila (Ne dopustiti nikakav promet osim ... Za to tada primjenjujemo pravila

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P NAPRED DROP
Ako se ove politike primijene, neće imati nikakvu vrstu veze
.

Da se vratimo, napišemo isto i zamijenimo DROP sa ACCEPT.

U ovom trenutku, budući da je sav promet odbijen, počinjemo svojim IPTABLAMAMA govoriti kakav promet može imati.

Sintaksa je:

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

Gde:

Niz = ULAZ, IZLAZ ili NAPRIJED

origin_ip = Porijeklo paketa, ovo može biti pojedinačna IP adresa ili mreža i u ovom slučaju moramo navesti masku).

odredište_ip = kuda idu paketi. ovo može biti pojedinačna IP adresa ili mreža i u ovom slučaju moramo navesti masku).

protokol = označava protokol koji koriste paketi (icmp, tcp, udp ...)

port = odredišna luka prometa.

akcija = DROP ili ACCEPT.

Primjer:

 

Snimak ekrana sa 2014-09-30 19:26:41

Primjenjuju se SVA ograničena pravila.

Snimak ekrana sa 2014-09-30 19:27:42

Zatim dodajemo pravila kako bismo mogli imati promet preko porta 80 HTTP i 443 HTTPS, uz TCP protokol. Zatim port 53 Primjenjuje se za DNS klijenta za rješavanje domena, inače nećete navigirati. Ovo radi s udp protokolom.

Linija:

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

To je zbog sljedećeg: Kada, na primjer, napravite HTTP zahtjev, povezujete se s portom 80 servera, ali server da bi vratio informacije mora se povezati s vama putem bilo kojeg porta. (Generalno veće od 1024).

Kako su sve naše luke zatvorene, to se neće postići ukoliko ne otvorimo sve luke veće od 1024 (Loša ideja). Ovo govori da je prihvaćen sav dolazni promet koji dolazi iz veze koju sam uspostavio. Mislim, vezu koju sam u principu započeo.

Kada stavljamo OUTPUT u pravila, ovo se odnosi samo na dotičnu opremu, ako svoju opremu koristimo kao usmjerivač kako bismo omogućili te veze, moramo promijeniti OUTPUT u FORWARD. Budući da promet prolazi kroz računalo, ali ga on ne pokreće
Sva se ta pravila brišu nakon ponovnog pokretanja, tako da morate stvoriti skripte tako da započnu prema zadanim postavkama. Ali to ćemo vidjeti u narednom

Nadam se da su vam se svidjele ove informacije. U sljedećem ću govoriti o NAT-u, proxyju i skriptama za Firewal.


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

12 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Rogelio pinto rekao je

    To je osnova koju mnogi poduzetnici uzimaju za proizvodnju vlastitih zaštitnih zidova, zbog čega na tržištu postoji toliko marki zaštitnih zidova s ​​ugrađenim linuxom, neki dobri, a drugi ne toliko.

  2.   Heber rekao je

    Odličan članak. Radujem se drugom dijelu.

  3.   Milton rekao je

    Vrlo dobro objašnjenje, pomoglo mi je da shvatim proxy svog rada. Hvala ti

  4.   faustod rekao je

    Dobar dan Jlcmux,

    Izvrsno, stvarno mi se svidjelo, kada će biti dostupna druga strana?

    Pozdrav i hvala na podjeli

    1.    @Jlcmux rekao je

      Hvala na komentaru.

      Drugi dio poslao sam jučer, tokom dana mislim da će ga objaviti.

      Pozdrav.

  5.   Izrael rekao je

    Vrlo dobar prijatelj s člankom @ Jlcmux, zaista sam naučio s njim jer je razjasnio neke sumnje koje sam imao neko vrijeme, usput vam ne bi smetalo da podijelite knjigu izvora članka, Sébastiena BOBILLIERA, pa slau2s i sada da vidite 2. dio, salu2s.

    1.    @Jlcmux rekao je

      Pozdrav, hvala što ste komentirali Izrael.

      Ispada da knjigu imam u fizičkom obliku. Ali pronašao sam ovaj link na Google Books. 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=

      Mislim da je kompletan.

  6.   Ariel rekao je

    Vrlo dobar članak, dodajem upit: Koja bi bila prednost korištenja linuxa kao usmjerivača, ako postoji, s obzirom na njemu posvećeni hardver? Ili je to samo za vježbanje? Znam da postoje namenski distributeri, ali ne znam hoće li oni spasiti stare računare ili pružiti veću fleksibilnost u konfiguraciji.

    1.    @Jlcmux rekao je

      Pa, mislim da prednosti i nedostaci ovise o scenariju u kojem ćete to primijeniti. Zašto sigurno nećete kupiti UTM ili nešto slično za svoju kuću? A možda i za malu tvrtku koja si to ne može priuštiti. Dobra je i kao vježba, jer vam pomaže da razumijete svu logiku ovoga i možete bolje konfigurirati namjenski zid. Uz to, gotovo svi ovi uređaji zaista imaju ugrađeni Linux.

      Pozdrav.

  7.   Ariel rekao je

    Pozdrav, pitanje, možete li stvoriti "umjetno" sučelje u Linuxu za slično usmjeravanje između mreža? (stil praćenja paketa) za rad sa virtualnim mašinama? npr. ako imam eth0 (jer naravno imam jednu karticu) mogu li stvoriti eth1 da napravim drugu mrežu? Vrlo dobar učitelj!

    1.    elav rekao je

      U Linuxu naravno možete kreirati virtualna sučelja. Ako imate eth0, možete imati eth0: 0, eth0: 1, eth0: 2 ... itd

  8.   chinoloco rekao je

    Tako dobro, hvala na podjeli