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

U prethodni post Vidjeli smo da konfiguracija IPTables funkcionira kao vatrozid. Sada možemo vidjeti kako stvoriti te skripte tako da se pravila izvršavaju automatski kada se sistem pokrene, kao i kako ta pravila možemo na trenutak eliminirati ili zaustaviti.

Prije izrade skripte i pokazivanja kako izgleda, razgovarajmo malo o NAT-u i konceptu što želimo raditi s ovom opremom.

NAT i kontekst primjera.

Kada govorimo o NAT-u, ovo možemo zbuniti s usmjeravanjem, jer su obje zadužene za međusobno povezivanje dviju različitih mreža. Razlika je zaista u tome što se usmjeravanje primjenjuje za prelazak s jedne lokalne mreže na drugu, a ta se druga mreža može povezati s usmjerivačem i izaći na Internet.

Dok, kada govorimo o NAT-u, govorimo o usmjeravanju paketa s lokalne ili privatne mreže na javnu mrežu ili Internet. To čini maskiranjem paketa stavljanjem javne IP adrese s kojom odlazi na Internet. Odnosno, ne treba nam usmjerivač, jer javni IP direktno drži računalo s GNU / Linuxom.

nat

To ćemo raditi sa sloganom da svoj Linux koristimo kao usmjerivač / zaštitni zid za izlazak na Internet iz lokalne mreže. Ali ovdje se mogu pojaviti dva scenarija.

  • Da je naš Linux između usmjerivača davatelja usluga i lokalne mreže.

U ovom slučaju, između usmjerivača i našeg Linuxa postojala bi mreža, a između Linuxa i lokalne mreže postojala bi druga različita mreža. To znači da naš usmjerivač ne bi morao raditi NAT kao takav, s jednostavnim usmjeravanjem prometa kako je objašnjeno u prethodni post Bilo bi dobro.

  • Da naš Linux ima sučelje povezano s lokalnom mrežom, a preko drugog sučelja prima direktno javnu IP pomoću koje se kreće.

To znači da naš Linux mora raditi NAT kako bi paketi mogli doći do Interneta.

Tada ćemo za potrebe ove male laboratorije reći da naš Linux prima javnu IP direktno i tako moći testirati učinke NAT-a.

Da bismo izvršili NAT, tada koristimo sintaksu

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

Gdje je eth1 sučelje gdje primamo javnu IP adresu, odnosno gdje idemo na Internet.

MASQUERADE se koristi kada je ip javan, ali vremenom može varirati (dinamički). U suprotnom možemo koristiti SNAT –to-source ip

Stvaranje iptables skripte

Pretpostavimo onda da je: 172.26.0.0 naša lokalna mreža, a 81.2.3.4 je javna IP adresa s kojom idemo na Internet. (to je statički ip). Imam sučelja eth0 (lokalna mreža)

eth1 (javna mreža).

U osnovi se sastoji od stvaranja skripte koja se može pozvati iz /etc/init.d/firestop (na primjer). i iz ove skripte možemo pokrenuti, zaustaviti ili provjeriti status naše konfiguracije, baš kao što to radimo sa bilo kojim sistemskim demonom.

Pretpostavimo da su moja IPTABLES pravila:

#! / bin / bash # Vatrozid mog doma. # Naziv datoteke / etc / firewall_on # Napisao Jlcmux Twitter: @Jlcmux # # Osnovna politika. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT za dijeljenje Interneta od eth0 do eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Omogući dolazne veze pokrenute mojim iptables -A FORWARD -m stanje - state USPOSTAVLJENO, POVEZANO -j PRIHVAĆAJ # # Ovlašteni odlazni prometni iptables -A NAPRED -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A NAPRIJED -i eth0 -o eth1 -p tcp --dport 443 -j PRIHVATI iptables -A NAPRED -i eth0 -o eth1 -p udp --dport 53 -j PRIHVATI
Ne zaboravimo dati dozvole za izvršenje

Objašnjenje:

Skripta u osnovi radi sljedeće:

  1. Prvo ograničite svu navigaciju, veze i promet. (Osnovne politike zaštitnog zida)
  2. Zatim stvorite NAT sa odredištem eth1. što ukazuje da imamo statični javni ip "81.2.3.4"
  3. Otvara portove potrebne za primanje paketa veza koje sam inicirao.
  4. Prihvaća odlazni HTTP, HTTPS i DNS promet.
Pravila su namijenjena NAPRIJED prometu jer svoj Linux koristimo kao usmjerivač, pa se politike koriste za promet koji prolazi kroz Linux, odnosno djeluje kao posrednik. To znači da naš Linux ne može stvarno navigirati niti primati bilo kakve podatke direktno. Odnosi se samo na računare povezane na njega, ali ne i na njega samog

Ako želimo koristiti našu opremu za navigaciju, trebali bismo ponoviti redove i promijeniti prema naprijed INPUT ili OUTPUT prema potrebi.

Otkaži skriptu.

Sada ćemo stvoriti skriptu koja nadjačava sve gore navedeno i ostavlja računar čistim od svega ovoga. (U svrhu testiranja ili samo želimo isključiti zaštitni zid).

#! / bin / bash # Vatrozid moje kuće. # Naziv datoteke / etc / firewall_off # Autor Jlcmux Twitter: @Jlcmux # #Izbrisivanje pravila iptables -F # # Primjena zadanih pravila (sav promet prihvaćen) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatizacija.

Sada moramo stvoriti skriptu iznutra /etc/init.d/ a usluga se automatski pokreće i njome možemo upravljati na ugodniji način.

#! / bin / bash # Vatrozid mog doma. # Ime datoteke /etc/init.d/ firewall # Napisao Jlcmux Twitter: @Jlcmux slučaj $ 1 u startu) / etc / firewall_on ;; stop) / etc / firewall_off ;; status) iptables -L ;; *) echo "Pogrešna sintaksa. Važeće = /etc/init.d/ start firewall-a | stop | status ;; esac

Objašnjenje:

Posljednju skriptu koju smo stavili /etc/init.d/ sa imenom firewall. Dakle, ako želimo upravljati vatrozidom, možemo koristiti naredbu /etc/init.d/ start firewall-a. Na isti način možemo to zaustaviti ili vidjeti državu.

Sada ćemo urediti datoteku /etc/rc.local i stavili smo nešto poput: /etc/init.d/ start firewall-a za početak sa sistemom.

Kao dobro. Ovo je drugi dio. Nadam se da će svima vama nešto donijeti. U sljedećem vidimo Proxy i IDS.


7 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.   dhunter rekao je

    Ako koristite Debian, u repo-u postoji paket (iptables-persistent) koji čini upravo to, odbacuje trenutna pravila u /etc/iptables/rules.v4 ili v6, ovisno o tome što koristite, a zatim ih primjenjuje na vas kada podignete sistem.

  2.   oc rekao je

    U praksi, za čišćenje konfiguracije konvencionalnog iptables zaštitnog zida (a upotreba NAT-a s moje točke gledišta ne bi bila takva), u većini slučajeva bilo bi dovoljno ispiranje pravila i resetiranje zadanih politika na ACCEPT.
    Ali u teoriji, i koliko ja znam, pored toga također trebate očistiti ne-zadane nizove i resetirati brojače. Akcije koje treba izvršiti imajući na umu da pored "filtra" postoje i druge tablice, (za to je obavezno pročitati datoteku "/ proc / net / ip_tables_names").

    Inače, pravoslavlje kaže da vatrozid već mora biti pokrenut prije nego što mreža krene. Ne znam kako se to postiže u drugim Linux sistemima, ali u Debianovim skripta bi se mogla prilagoditi i postaviti u direktorij "/etc/network/if-pre-up.d/".

    Dobar vatrozid svima. 😉

  3.   NauTiluS rekao je

    Pozdrav, post je vrlo dobar. Pročitao sam cijela dva toma.

    Čeka se sljedeći 🙂

  4.   anonimo rekao je

    Pitanje iz mog neznanja, nastavljamo s iptables, ali za nekoliko verzija kernela imamo nftables, već testiram, pitanja su, da li je nftables nešto beta s obzirom na iptables? Hoće li se iptables i dalje koristiti još dugo?

    Hvala.

    1.    yukiteru rekao je

      nftables uključuje sve funkcionalnosti iptables, ip6tables, arptables i ebtables, a sve koristi novu infrastrukturu i u prostoru jezgra i u korisničkom prostoru, što osigurava bolje performanse i poboljšanu funkcionalnost. nftables će zamijeniti iptables i sve ostale spomenute alate, ali zasad ne, barem ne dok se ne proširi upotreba nftables kao takvih.

  5.   Alejandro rekao je

    vrlo dobar post, htio sam pročitati više jer je vrlo dobro objašnjeno .. pozdrav hvala veliki doprinos

  6.   Avrah rekao je

    Zdravo! Vrlo dobro oba posta.
    Kao doprinos možete dodati na kraju u ovom dijelu:

    "Sada ćemo urediti datoteku /etc/rc.local i staviti nešto poput: /etc/init.d/ start firewall tako da započne sa sistemom."

    Dodajte ovo na rc.local.

    ako je [-x /etc/init.d/ firewall]; onda
    /etc/init.d/ start firewall-a
    fi

    Što znači da ako "firewall" ima dozvole za izvršenje, izvršite ga, ako ne.
    Ako želite da se "vatrozid" ne pokrene, samo morate ukloniti dozvole.

    Na primjer: chmod + x /etc/init.d/ firewall
    da se pokrene pri svakom pokretanju ili ...
    chmod -x /etc/init.d/ firewall
    da ga potpuno onemogućite.

    Pozdrav!