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

Kad je SinceLinux imao samo nekoliko mjeseci, napisao sam izuzetno jednostavan vodič za iptables: iptables za početnike, znatiželjnike, zainteresovane (1. dio) . Koristeći metafore poput usporedbe računara s kućom, vatrozida s vratima kuće, kao i druge primjere, na zabavan sam način, bez toliko tehničkih i složenih koncepata, objasnio što je vatrozid, što je iptables i kako početi koristiti i konfigurirati. Ovo je nastavak, 2. dio prethodnog vodiča za iptables 🙂

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

Ovdje neću komentirati sigurnost Wi-Fi-ja, jer to nije cilj posta, fokusiraću se na konfiguraciju iptables koju trenutno koristim na svom laptopu.

Sljedeće se naredbe izvršavaju u terminalu, moraju se izvršavati s administratorskim privilegijama, dodavat ću sudo svakoj naredbi, možete 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, zbog ovoga:

sudo iptables -P INPUT DROP

Tada moramo dopustiti našem računaru 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čunara:

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

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

Do sada naše računalo može bez problema upravljati Internetom, ali niko iz bilo kojeg drugog okruženja (LAN, Internet, Wifi itd.) Neće moći pristupiti našem računaru 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:

Po defaultu iptables evidencije idu u dnevnik kernela, sistemski dnevnik ili nešto slično ... u Archu po defaultu, trenutno se ni ne sjećam kamo idu, zato koristim ulogd tako da su iptables dnevnici u drugoj datoteci.

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

Davanje pristupa mom privatnom serveru:

Ne koristim VirtualBox ili bilo šta slično za virtuelizaciju, imam svoj virtuelni server sa kojim virtueliziram Qemu + KVM koji mora biti u mogućnosti da se poveže sa mojim laptopom kao takvim, sa iptables pravilima koja sam upravo naveo gore neće moći, zato moram dati dozvolu IP-u svog virtualnog servera kako bi mogao pristupiti mom laptopu :

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 laptop komunicira sa mojim virtualnim serverom (i obrnuto)

-p tcp : Navodim protokol, najčešće se koriste UDP i TCP, ovdje je zaista bilo dovoljno da se ovo ne stavi, ali ... uobičajeno je odrediti vrstu protokola koji treba prihvatiti

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

-j PRIHVATI : Već ovdje kažem šta želim raditi 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 iz sučelja koje nije virbr0, odnosno recimo da pokušavaju unijeti pakete s IP-a 192.168.122.88, ali su s računara 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 interfejsa 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š računar.

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

Ako pokušate pingati moj laptop sa nekog drugog računara koji se povezuje na Wifi, želim to dozvoliti. razlog? Ideja je također da ću u sljedećih nekoliko tjedana povezati 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 mrežom, moram pingati svoj laptop da provjerim povezanost, ako mi laptop ne vrati ping, mogu pomisliti da AP ne uspije ili da je došlo do greške pri pristupu Wifiju, 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, mislim na dolazni promet

-i 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 dozvoljavam SSH ili nešto slično, dopuštam samo ping (icmp)

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

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

-j PRIHVATI : Naznačim šta da radim sa paketima koji se podudaraju sa gore navedenim, 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 dolaze s IP-a kao što je 192.168.1 .__, ali isto tako ne mogu doći sa bilo kog mrežnog sučelja, oni moraju ući posebno sa mog Wifi mrežnog sučelja (wlo1)

Prihvati SSH samo za jednu IP adresu:

Ponekad se moram povezati SSH sa mog pametnog telefona za kontrolu laptopa, zato moram dozvoliti SSH pristup svom laptopu sa IP-a svog 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 da se istakne je: –Dport 22 (SSH port koristim)

Drugim riječima, prihvaćam pokušaje povezivanja s mojim prijenosnim računalom putem porta 22, sve dok dolaze s IP-a moje WiFi mreže, oni također moraju imati moju IP-u kao određeno odredište i također dolaze preko wlo1 sučelja, tj. 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 nikome uskratiti pristup, odnosno da svi od bilo kojeg mjesta mogu pristupiti toj web stranici, mnogo je 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 opseg koji će dozvoliti, 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, prihvatanje ping-a za IP-ove iz mog kućnog LAN-a (za ovo je u osnovi ista linija kao gore, mijenjanje opsega IP-a), što je više isto što sam gore objasnio. u svom laptopu kao takvom ne koristim zaista složene stvari, ograničenje veza, anti DDoS, ostavljam to za servere, na laptopu mi to ne treba 🙂

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 zaštitni zid.

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

Saludos


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

31 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.   risketo rekao je

    Vrlo dobro, vrlo dobro objašnjeno, sjajno.
    Volim ovu vrstu posta.

    1.    KZKG ^ Gaara rekao je

      Najljepše hvala na komentaru 🙂

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

      Saludos

      1.    FIXOCONN rekao je

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

        1.    KZKG ^ Gaara rekao je

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

        2.    Sam burgos rekao je

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

          Da li biste bili ljubazni da mi proslijedite svoje podatke o korisničkom agentu ako to ne predstavlja previše problema? Želio bih znati te podatke da ih sam smjestim =)

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

          1.    KZKG ^ Gaara rekao je

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

  2.   Bruno cascio rekao je

    Vrlo dobar post! vrlo jasno 😀

    1.    KZKG ^ Gaara rekao je

      Hvala na čitanju i hvala na komentaru 🙂

  3.   vale rekao je

    Hvala! Stvarno mi pomaže!

  4.   Oscar Granada rekao je

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

    1.    KZKG ^ Gaara rekao je

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

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

    1.    KZKG ^ Gaara rekao je

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

  6.   Slika rezervnog mjesta Jose Luisa Gonzaleza rekao je

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

    1.    KZKG ^ Gaara rekao je

      iptables za to? Zar se to ne radi direktno sa ACL-ovima u Squid?

  7.   bezimena rekao je

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

    1.    KZKG ^ Gaara rekao je

      HAHAHAHAHAHAHAHAHA Umirem od smijeha sa rotvajlerima hahahaha

  8.   Ivan rekao je

    Pozdrav prijatelju, dogodi mi se da mi treba pomoć za konfiguriranje IPTables na takav način da uskraćuje pristup samo za port 80 kada upišem adresu u pregledač svojih prilagođenih poslužitelja imena, to jest kada na primjer upišem ns1.mydomain.com i ns2.mydomain. com (koji su moji serveri imena) IPtables odbijaju pristup portu 80, tako da pretraživač pokušava učitati stranicu, ali nakon nekog vremena istič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 jedina stvar koju čini je da zabrani ulaz na port 80 u svim mojim domenima (jer oni dijele istu IP adresu kao i Virtual 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 (Tačka A) -> 102.887.23.33
    ns2.midomini.com (Tačka A) -> 102.887.23.34

    i IP adrese na koje upućuju serveri imena

    102.887.23.33
    102.887.23.34

    Primjer kompanije koja ima ovaj sistem je: Dreamhost
    Njihovi serveri imena: ns1.dreamhost.com i ns2.dreamhost.com te IP adrese na koje ukazuju da ne reagiraju kada 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 rekao je

      Dobar dan Ivan,

      Kontaktirajte me e-poštom (kzkggaara [at] desdelinux [dot] net) da govorim mirnije i bolje vam objasnim, sutra ću vam 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, ali trebali biste provjeriti zapisnike i druge stvari koje bi ovdje bile preduge.

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

  9.   neysonv rekao je

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

    1.    KZKG ^ Gaara rekao je

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

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

    1.    KZKG ^ Gaara rekao je

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

        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»

        izbacio ""

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

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

        ## Definiraj zadane DROP politike ##
        $ 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 »»

        ## Omogući unos paketa veza koje sam pokrenuo ##
        $ iptables -A ULAZ -m stanje -država USTANOVLJENA, POVEZANA -j PRIHVAĆA
        #echo »- Dozvoli pakete veza koje sam inicirao» && echo »»

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

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

        $ iptables -A ULAZ -p tcp –port 139 -j PRIHVATI
        $ iptables -A ULAZ -p tcp –port 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 rekao je

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

  11.   otkmanz rekao je

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

  12.   LEO rekao je

    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 portove i pokušavam tisuće načina da otvorim luke i ništa se ne događa. Ako ne mogu pingati, ne mogu povezati Outlook

  13.   borja rekao je

    Čestitam na postu! Veoma dobro. Ali imam pitanje. Ponekad se IP adresa koja vam je dodijeljena u mreži može promijeniti (ako je istina da smo mogli dodijeliti IP našim MAC adresama), ali postoji li mogućnost da Iptables dozvoli pristup našem serveru putem SSH-a putem MAC adrese?

    Nadam se da sam se dobro objasnio.

    Pozdrav, hvala vam puno!

  14.   Fernando Martin Gan rekao je

    Bok, znate da sam konfigurirao linux server 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 pregledača preko 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 sam 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 rekao je

    Citiram doslovno:
    '
    Icmp protokol, icmp = ping. Odnosno, ne dozvoljavam 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.

    Hvala vam!

  16.   ozkr rekao je

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