iptables za početnike, znatiželjnike, zainteresirane (2. dio)

Kada DesdeLinux Imao sam samo nekoliko mjeseci i napisao sam vrlo jednostavan za razumijevanje vodič o iptables: iptables za početnike, znatiželjnike, zainteresirane (1. dio) . Koristeći metafore poput usporedbe računala s kućom, vatrozida s vratima kuće, kao i druge primjere, na zabavan sam način, bez toliko tehničkih detalja ili kompliciranih koncepata, objasnio što je vatrozid, što je iptables i kako ga početi koristiti i konfigurirati. Ovo je nastavak, 2. dio prethodnog tutorijala za iptables 🙂

Dogodilo se da sam prije nekoliko dana koristeći Linksys AP (pristupnu točku) stavio Wifi u kuću svoje djevojke, iako lokalitet u tehnološkom smislu nije najinformiraniji, odnosno nije da postoje mnoge opasnosti od pucanja , uvijek je dobra ideja imati izvrsnu sigurnost i na Wifi-ju i na računalima.

Ovdje neću komentirati sigurnost Wi-Fi-ja, jer to nije cilj posta, usredotočit ću se na konfiguraciju iptables koju trenutno koristim na svom prijenosnom računalu.

Sljedeće se naredbe izvršavaju u terminalu, moraju se izvršavati s administratorskim privilegijama, dodavat ću sudo svakoj naredbi, možete to učiniti isto ili izbjeći upotrebu sudoa izvršavanjem naredbi izravno kao root

U prethodnom postu objasnio sam da je potrebno u vatrozidu prvo zabraniti sav dolazni promet, jer ovo:

sudo iptables -P INPUT DROP

Tada moramo dopustiti vlastitom računalu da ima dozvolu za unos podataka:

sudo iptables -A INPUT -i lo -j ACCEPT

Uz prihvaćanje paketa zahtjeva koji potječu s našeg računala:

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

Za bolje razumijevanje ovih redaka, preporučujem čitanje prve polovice prethodnog članka: iptables za početnike, znatiželjnike, zainteresirane (1. dio)

Do sada se naše računalo može bez problema kretati Internetom, ali nitko iz bilo kojeg drugog okruženja (LAN, Internet, Wifi itd.) Neće moći pristupiti našem računalu na bilo koji način. Počet ćemo konfigurirati iptables prema našim potrebama.

Korištenje ulogd-a za izlaz iptables dnevnika u drugu datoteku:

Prema zadanim postavkama iptables zapisnici idu u dnevnik jezgre, sistemski zapisnik ili nešto slično ... u Archu prema zadanim postavkama, trenutno se čak ni ne sjećam kamo idu, zato koristim ulogd tako da su zapisnici iptables u drugoj datoteci.

sudo iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ULOG

Davanje pristupa mom privatnom poslužitelju:

Ne koristim VirtualBox ili bilo što slično za virtualizaciju, moj je privatni poslužitelj virtualiziran sa Qemu + KVM koji se mora moći povezati s mojim prijenosnim računalom kao takvim, s iptables pravilima koja sam upravo naveo gore neće moći, zato moram dati odobrenje za IP svog virtualnog poslužitelja kako bi mogao pristupiti mom prijenosnom računalu :

sudo iptables -A INPUT -i virbr0 -p tcp -s 192.168.122.88 -j ACCEPT

Detaljno ćemo opisati ovaj redak, važno je da razumijete što svaki parametar znači, jer će se oni od sada puno ponavljati:

-ULAZ : Kažem da ću proglasiti pravilo za dolazni promet

-i virbr0 : Izjavljujem da sučelje putem kojeg ću prihvatiti promet nije eto (LAN) ili wlan0 (Wifi), izričito kažem da je to moje sučelje virbr0, odnosno virtualno mrežno sučelje (interno) putem kojeg moj prijenosnik komunicira s mojim virtualnim poslužiteljem (i obrnuto)

-p tcp : Navodim protokol, najčešće se koriste UDP i TCP, ovdje je stvarno bilo dovoljno ne staviti ovo, ali ... uobičajeno je odrediti vrstu protokola koji se prihvaća

-s 192.168.122.88 : Izvor, izvor paketa. Drugim riječima, pravilo se odnosi na pakete koji konkretno dolaze s IP-a 192.168.122.88

-j PRIHVATI : Već ovdje kažem što želim učiniti s paketima koji odgovaraju gore navedenom, u ovom slučaju prihvatite.

Drugim riječima, kao sažetak prihvatit ću pakete koji dolaze s IP-a 192.168.122.88, ali u slučaju da želite unijeti pakete koji dolaze s te IP-a, ALI! Ulaze s sučelja koje nije virbr0, odnosno recimo da pokušavaju unijeti pakete s IP-a 192.168.122.88, ali su s računala u našoj Wifi mreži, ako je to slučaj, paketi će biti odbijeni. zašto? Budući da jasno preciziramo da, prihvaćamo pakete iz 192.168.122.88 da, ali i samo, ali oni također moraju ući iz virbr0 sučelja (interno, virtualno mrežno sučelje), ako paketi dolaze iz drugog sučelja (LAN, RAS, Wifi, itd.) Tada neće biti prihvaćeni. Određivanjem sučelja kao što vidite možemo ga još više ograničiti, možemo imati bolju kontrolu nad onim što ulazi (ili ne ulazi) u naše računalo.

Prihvaćanje ping-a s bilo koje IP adrese kućnog Wifi-ja:

Ako pokušate pingirati moje prijenosno računalo s nekog drugog računala koje se spaja na Wifi, želim to dopustiti. razlog? Ideja je također da u sljedećih nekoliko tjedana povežem računalo u susjednoj kući s mrežom, tako da bi razmjena informacija bila manje složena i fluidnija, kad počnem raditi testove za povezivanje radne površine s Wifi-om, moram pingati prijenosno računalo kako bih provjerio povezanost, ako me prijenosno računalo ne vrati, mogu pomisliti da AP ne uspije ili da je došlo do pogreške prilikom pristupa Wi-Fi-ju, zato želim dopustiti ping.

sudo iptables -A INPUT -i wlo1 -p icmp -s 192.168.1.0/24 -d 192.168.1.51 -j ACCEPT

-ULAZ : Isto kao i prije, referiram se na dolazni promet

-ja wlo1 : Slično kao prije. U prethodnom slučaju odredio sam virtualno sučelje, u ovom slučaju specificiram drugo sučelje, ono svog wifi-a: wlo1

-p icmp : Icmp protokol, icmp = ping. Odnosno, ne dopuštam SSH ili nešto slično, dopuštam samo ping (icmp)

-s 192.168.1.0/24 : Izvor paketa, odnosno sve dok paketi dolaze s IP 192.168.1.? bit će prihvaćen

d 192.168.1.51 : IP odredišta, odnosno moj IP.

-j PRIHVATI : Naznačim što učiniti s paketima koji odgovaraju gore navedenom, prihvatite.

Odnosno, i da bih to objasnio u trku, prihvaćam da me ping-uju (icmp protokol) čije je odredište konkretno moja IP adresa, sve dok potječu s IP-a kao što je 192.168.1 .__, ali isto tako, ne mogu doći s bilo kojeg mrežnog sučelja, oni moraju ući posebno s mog Wifi mrežnog sučelja (wlo1)

Prihvati SSH samo za jedan IP:

Ponekad se moram povezati do SSH s mog pametnog telefona za upravljanje prijenosnim računalom, zato moram dopustiti SSH pristup svom prijenosnom računalu s IP-a Wifi-a, za ovo:

sudo iptables -A INPUT -i wlo1 -p tcp -s 192.168.1.0/24 -d 192.168.1.51 --dport 22 -j ACCEPT

Iz ovog retka jedino što se razlikuje ili što zaslužuje biti istaknuto je: –Dport 22 (SSH priključak koji koristim)

Drugim riječima, prihvaćam pokušaje povezivanja s mojim prijenosnim računalom putem porta 22, sve dok dolaze s IP-a mog wifi-a, oni također moraju imati moju IP kao određeno odredište i također dolaze preko sučelja wlo1, to jest, onaj moje WiFi mreže (ne lan, itd.)

Omogućavanje im da vide vašu web stranicu:

To nije moj slučaj, ali ako bilo tko od vas ima hostiranu web stranicu i ne želi uskratiti pristup nikome, odnosno da svi od bilo kojeg mjesta mogu pristupiti toj web stranici, to je puno jednostavnije nego što mislite:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Drugim riječima, ovdje dopuštaju sav dolazni promet (tcp) preko porta 80. Kao što vidite, ne određujem s kojih IP-ova ili mreže dopuštam pristup, ne navodeći IP raspon koji će dopustiti, iptables pretpostavlja da želim omogućiti pristup svim postojećim rasponima IP-a, odnosno cijelom svijetu 🙂

Ostale kombinacije:

Imam mnoga druga pravila kao što je, na primjer, prihvaćanje pinga za IP-ove iz mog kućnog LAN-a (jer je ovo u osnovi isti redak kao gore, mijenjanje raspona IP-a), što je više isto kao što sam upravo objasnio gore ... laptop kao takav ne koristim stvarno složene stvari, onu ograničavanja veza, anti DDoS, ostavljam to za poslužitelje, na mom laptopu mi to nije potrebno 🙂

Svejedno, zasad članak.

Kao što vidite, rad s iptables-om ni na koji način nije toliko složen, kad jednom napravite skriptu u koju pišete svoja pravila, vrlo je jednostavno, a zatim je izmijenite, dodajte ili uklonite pravila na svoj vatrozid.

Ne smatram se stručnjakom za tu temu, unatoč bilo kakvim sumnjama, oni ovdje komentiraju, pokušat ću vam pomoći koliko god mogu.

pozdravi


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   risketo dijo

    Vrlo dobro, vrlo dobro objašnjeno, sjajno.
    Obožavam ovu vrstu posta.

    1.    KZKG ^ Gaara dijo

      Najljepše hvala na komentaru 🙂

      Ovaj post je bio dug koji sam dugo imao, na kraju je ugodan i ugodan što ga mogu otplatiti ^ _ ^

      pozdravi

      1.    FIXOCONN dijo

        pitanje jesi li na kubi?
        ... Dogodilo se da sam prije nekoliko dana koristeći vezu Linksys AP (pristupna točka) stavio Wifi u kuću svoje djevojke

        1.    KZKG ^ Gaara dijo

          Da naravno, rođen sam i živim na Kubi. zašto pitanje?

        2.    Sam burgos dijo

          @FIXOCONN: Pozdrav prijatelju, oprostite na izvanmrežnom pitanju, ali kako definirate da se Cinnamon pojavljuje kao radno okruženje u korisničkom agentu? Koristim mentu 13 s cimetom, ali ni na koji način ne dobivam da se logo cimeta pojavi u mom korisničkom agentu svaki put kad komentiram na ovoj stranici

          Hoćete li mi biti ljubazni i proslijediti podatke o vašem korisničkom agentu ako to ne predstavlja prevelike probleme? Volio bih znati te podatke da ih sam smjestim =)

          Ostavljam vam stranicu kako biste je mogli pregledati i dati mi podatke. Hvala i administratori, oprostite "trolanju" (ako to možete tako nazvati) s moje strane s ovim informacijama -> http://user-agent-string.info/

          1.    KZKG ^ Gaara dijo

            Dodajte "Cimet" (bez navodnika) u bilo koji dio UserAgent-a, a zatim bi se logotip trebao pojaviti u budućim komentarima 🙂

  2.   Bruno cascio dijo

    Vrlo dobar post! vrlo jasno 😀

    1.    KZKG ^ Gaara dijo

      Hvala na čitanju i hvala na komentaru 🙂

  3.   jamac dijo

    Hvala! Stvarno mi pomaže!

  4.   Oscar Grenada dijo

    Pozdrav, prije svega puno čestitki za blog, mislim da je super.
    Nešto što bi bilo dobro spomenuti jest da opcija prijave s ULOG-om ne radi u operativnim sustavima koji imaju ulogd2, u ovom slučaju pravilo bi trebalo biti:
    sudo iptables -A INPUT -p tcp -m tcp –tcp-zastavice FIN, SYN, RST, ACK SYN -j NFLOG

    1.    KZKG ^ Gaara dijo

      Prije svega, veliko hvala na onome što kažete o blogu 🙂

      U Archu sam instalirao ulogd v2.0.2-2 i linija koju sam stavio radi bez problema (morao sam staviti loglevel = 1 u /etc/ulogd.conf, ali zapisnike bez problema vodi u drugu datoteku.

      Koristite li ulogd v2 ili noviji, linija koju sam ostavio radi pogrešno za vas?

      Pozdrav i hvala na komentaru.

  5.   Grad dijo

    Uvijek sam čekao drugi dio, sjećam se kad sam pročitao prvi (to je bila moja inicijacija u vatrozidima). Hvala @ KZKG ^ Gaara, pozdrav 🙂

    1.    KZKG ^ Gaara dijo

      Hvala što ste me pročitali 😀
      I hehe da, rekao sam ... ovaj post je bio dug koji sam davno imao ^ _ ^

  6.   Slika rezerviranog mjesta Jose Luisa Gonzaleza dijo

    Pozdrav. Vrlo dobar post. Pokušavam konfigurirati pravila iptables za preusmjeravanje prometa s lignji na dansguardian, ali još uvijek ne postiže cilj. Bio bih zahvalan na pomoći u tom pogledu.

    1.    KZKG ^ Gaara dijo

      iptables za to? Nije li to učinjeno izravno s ACL-ovima u Squid?

  7.   bezimen dijo

    "Imam mnoga druga pravila poput .."
    To ja zovem paranojom, dečko
    Još malo i stavljate paket Rotwailera u svaki otvoreni port na vašem modemu / usmjerivaču 🙂

    1.    KZKG ^ Gaara dijo

      HAHAHAHAHAHAHAHAHA Umirem od smijeha s rotvajlerima hahahaha

  8.   Ivan dijo

    Pozdrav prijatelju, dogodi mi se da trebam pomoć za konfiguriranje IPTables na takav način da uskraćuje pristup samo za port 80 kada upišem adresu u preglednik svojih prilagođenih poslužitelja imena, odnosno kada na primjer upišem ns1.mydomain.com i ns2.mydomain. com (koji su moji serveri imena) IPtable odbijaju pristup priključku 80 tako da preglednik pokušava učitati stranicu, ali nakon nekog vremena ona istječe i nikad se ne učitava, dogodi se da sam već pokušao s naredbama poput ove:

    iptables -A ULAZ -d ns1.midomini.com -p tcp -dport 80 -j DROP
    iptables -A ULAZ -d ns2.midomini.com -p tcp -dport 80 -j DROP

    Ali jedino što uskraćuje ulaz na priključak 80 u svim mojim domenama (budući da dijele istu IP adresu kao i virtualni host), želim da to bude samo u url-u mojih poslužitelja imena i IP-u na koji moji poslužitelji imena upućuju, to jest, IP tablice uskraćuju pristup portu 80 u:

    ns1.midomini.com (usmjerenje A) -> 102.887.23.33
    ns2.midomini.com (usmjerenje A) -> 102.887.23.34

    i IP adrese na koje usmjeravaju poslužitelji imena

    102.887.23.33
    102.887.23.34

    Primjer tvrtke koja ima ovaj sustav je: Dreamhost
    Njihovi poslužitelji imena: ns1.dreamhost.com i ns2.dreamhost.com te IP adrese na koje ukazuju ne reagiraju kad se upišu u adresnu traku preglednika

    Unaprijed zahvaljujem na pažnji, jako bih volio da mi pomognete, stvarno mi je potrebno i hitno!

    Dobar dan !!

    1.    KZKG ^ Gaara dijo

      Pozdrav Ivane,

      Kontaktirajte me e-poštom (kzkggaara[at]desdelinux[dot]net) da o tome mirnije razgovaramo i bolje objasnimo, sutra ću ti sigurno odgovoriti (danas sam u prolazu)

      Ono što želite učiniti je jednostavno, ne znam zašto vam redovi za koje kažete da ne rade, trebali bi, ali morate provjeriti zapisnike i druge stvari koje bi ovdje bile preduge.

      Pozdrav i čekam vašu e-poštu

  9.   neysonv dijo

    teoretski s iptablesima mogao bih izbjeći da mi se šalju zahtjevi za isključenje iz programa poput aircracka. U pravu sam??? Pa, napravit ću testove, ali ako mi kažete da biste me jako obradovali XDDD

    1.    KZKG ^ Gaara dijo

      U teoriji mislim da je tako, sada, ne znam kako bi se to moglo učiniti, nikada to nisam učinio ... ali ponavljam, u teoriji mislim da bi mogao.

  10.   Alex dijo

    Nakon primjene pravila iptables, nemoguće mi je pristupiti dijeljenim mapama prozora na lokalnoj mreži. Koje bih pravilo trebao primijeniti da bih ga popravio?
    Hvala Vam.

    1.    KZKG ^ Gaara dijo

      Koja ste iptables pravila primijenili?
      Ovo je drugi dio "iptables for newbies", jeste li pročitali prvi? Molim vas da znate jeste li primijenili pravila koja su bila u prethodnom postu

      1.    Alex dijo

        Da, pročitao sam oba dijela. Za skriptu se zasnivam na drugom postu koji ste objavili o pokretanju pravila sa systemd.

        #! / bin / bash
        # - UTF 8 -

        # Iptables binarno
        iptables = »/ usr / bin / iptables»

        izbaciti ""

        ## čiste tablice ##
        $ iptables -F
        $ iptables -X
        $ iptables -Z
        #echo »- Izrađen FLUS za iptables» && echo »»

        ## Uspostavljanje dnevnika s ULOGD-om ##
        $ iptables -A ULAZ -p tcp -m tcp –tcp-zastavice FIN, SYN, RST, ACK SYN -j ULOG

        ## Definirajte zadana pravila za DROP ##
        $ iptables -P INPUT DROP
        $ iptables -P NAPRIJED DROP
        #echo »- DROP politika definirana prema zadanim postavkama» && echo »»

        ## Dopusti sve lokalnom hostu ##
        $ iptables -A ULAZ -i lo -j PRIHVATI
        $ iptables -A IZLAZ -o lo -j PRIHVATI
        #echo »- Sve dozvoljeno za localhost» && echo »»

        ## Dopusti unos paketa veza koje sam pokrenuo ##
        $ iptables -A ULAZ -m stanje -država USTANOVLJENA, POVEZANA -j PRIHVAĆA
        #echo »- Dopušteni paket veza koji pokreće moj» && echo »»

        izbaciti " ##############################"
        echo »## KONFIGURIRANE IPTABLE OK! ## »
        izbaciti " ##############################"

        Na internetu sam pročitao da biste za sambu trebali imati sljedeća pravila u skripti:

        $ iptables -A ULAZ -p tcp –dport 139 -j PRIHVATI
        $ iptables -A ULAZ -p tcp –dport 445 -j PRIHVATI
        $ iptables -A ULAZ -p udp –sport 137 -j PRIHVATI
        $ iptables -A ULAZ -p udp –dport 137 -j PRIHVATI
        $ iptables -A ULAZ -p udp –dport 138 -j PRIHVATI

        Međutim, čak ni kod njih ne vidim radne grupe za Windows. : S

      2.    Alex dijo

        Problem riješen. Izmijenite radnu grupu i hostovi dopuštaju parametre u konfiguracijskoj datoteci sambe.

  11.   otkmanz dijo

    Odličan članak, baš sjajan !!!!
    Upravo sam ga pročitao i sviđa mi se način na koji to objašnjavate i stvarno korisna upotreba iptablea, stvarno bih volio naučiti kako ga dublje koristiti.
    Pozdrav i izvrstan članak, nadam se da ćete objaviti više o Iptables! ^^

  12.   LEO dijo

    Poštovani;

    Imam proxy s iptablesima i jedna od mojih mreža ne može pingati http://www.google.cl iz tog razloga imam blokirane luke i pokušavam tisuće načina da otvorim luke i ništa se ne događa. Ako ne mogu pingati, ne mogu povezati izgled

  13.   Borja dijo

    Svaka čast na postu! Vrlo dobro. Ali imam pitanje. Ponekad se IP adresa koja vam je dodijeljena na mreži može promijeniti (ako je točno da smo mogli dodijeliti IP svojim MAC adresama), ali postoji li mogućnost da Iptables dopušta pristup našem poslužitelju putem SSH-a putem MAC adrese?

    Nadam se da sam se dobro objasnio.

    Pozdrav, hvala vam puno!

  14.   Fernando MartinGan dijo

    Pozdrav, znate da sam konfigurirao linux poslužitelj i nakon stavljanja ovih naredbi sve sam blokirao i izgubio pristup, mogao sam oporaviti gotovo sve, ali nedostaju mi ​​dvije stvari. * Više ne mogu pristupiti iz web preglednika putem cname «server» ako putem ip, 2, a s druge strane ne vidim dijeljene resurse iz Windows Explorera na mreži, prije nego što stavim \\ server i vidio sve zajedničke resurse. Nadam se da mi možete pomoći, znam da je glupo, ali ne mogu to riješiti, hvala

  15.   tau dijo

    Doslovno citiram:
    '
    Icmp protokol, icmp = ping. Odnosno, ne dopuštam SSH ili nešto slično, dopuštam samo ping (icmp)
    '

    ICMP i PING nisu isto. Pinging je dio ICMP protokola, ali nije sve. Protokol ICMP (Internet Control Message Protocol) ima mnogo više namjena, od kojih neke imaju određene opasnosti. I prihvaćate sav ICMP promet. Morali biste se ograničiti samo na ping.

    Saludos!

  16.   ozkr dijo

    Moram odraditi praksu, ali ne razumijem se puno u iptable, možete li mi pomoći ...
    Hvala!!!!!!!