tabuľky iptables pre nováčikov, zvedavé, zaujímavé (2. časť)

Kedy DesdeLinux Mal som len pár mesiacov a napísal som mimoriadne jednoduchý návod na pochopenie iptables: tabuľky iptables pre nováčikov, zvedavé, zaujímavé (1. časť) . Pomocou metafor, ako je porovnanie nášho počítača s naším domom, nášho firewallu s dverami domu, ako aj ďalších príkladov, som zábavnou formou bez toľkých technických podrobností a komplikovaných konceptov vysvetlil, čo je firewall, čo sú iptables a ako ho začať používať a konfigurovať. Toto je pokračovanie, 2. časť predchádzajúceho tutoriálu iptables 🙂

Stáva sa, že pred pár dňami pomocou AP (Linksys AP) (prístupový bod) som umiestnil Wifi k domu mojej priateľky, aj keď lokalita nie je z hľadiska technológie najinformovanejšia, to znamená, že neexistuje veľa nebezpečenstiev prasknutia. , je vždy dobrý nápad mať vynikajúcu bezpečnosť v sieti Wifi aj v počítačoch.

Tu nebudem komentovať bezpečnosť Wifi, pretože to nie je cieľom príspevku, zameriam sa na konfiguráciu iptables, ktorú momentálne používam na svojom notebooku.

Nasledujúce príkazy sa vykonávajú v termináli, je potrebné ich vykonávať s oprávneniami správcu, každému príkazu predradím sudo, môžete urobiť to isté alebo sa vyhnúť použitiu sudo vykonaním príkazov priamo ako root

V predchádzajúcom príspevku som vysvetlil, že je potrebné vo firewalle najskôr zakázať všetku prichádzajúcu komunikáciu, a to z tohto dôvodu:

sudo iptables -P INPUT DROP

Potom musíme povoliť nášmu počítaču povolenie na zadávanie údajov:

sudo iptables -A INPUT -i lo -j ACCEPT

Rovnako ako prijímanie balíkov požiadaviek, ktoré pochádzajú z nášho počítača:

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

Pre lepšie pochopenie týchto riadkov odporúčam prečítať si prvú polovicu predchádzajúceho článku: tabuľky iptables pre nováčikov, zvedavé, zaujímavé (1. časť)

Náš počítač zatiaľ dokáže bez problémov navigovať na internete, ale nikto z iného prostredia (LAN, internet, Wifi atď.) Nebude mať k nášmu počítaču žiadny prístup. Začneme konfigurovať iptables podľa našich potrieb.

Použitie ulogd na výstup protokolov iptables do iného súboru:

Štandardne idú protokoly iptables do denníka jadra, systémového denníka alebo podobne ... v Arche si štandardne, práve teraz ani nepamätám, kam idú, preto používam ulogd aby protokoly iptables boli v inom súbore.

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

Poskytnutie prístupu na môj súkromný server:

Na virtualizáciu nepoužívam VirtualBox ani nič podobné, mám svoj súkromný server virtualizovaný pomocou Qemu + KVM ktoré musia byť schopné pripojiť sa k môjmu notebooku ako takému, s pravidlami iptables, ktoré som práve špecifikoval vyššie, to nebudú môcť, preto musím dať povolenie na IP môjho virtuálneho servera, aby mal prístup k môjmu notebooku :

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

Tento riadok podrobne popíšeme. Je dôležité, aby ste pochopili, čo jednotlivé parametre znamenajú, pretože odteraz sa budú veľa opakovať:

-VSTUP : Hovorím, že vyhlásim pravidlo pre prichádzajúci prenos

-i virbr0 : Vyhlasujem, že rozhranie, cez ktoré budem prijímať prenos, nie je etho (LAN) alebo wlan0 (Wifi), konkrétne hovorím, že je to moje rozhranie virbr0, to znamená virtuálne sieťové rozhranie (interné), cez ktoré komunikuje môj laptop. s mojim virtuálnym serverom (a naopak)

-p TCP : Zadávam protokol, najpoužívanejšie sú UDP a TCP, tu to naozaj stačilo nedať, ale ... je obvyklé určiť typ protokolu, ktorý sa má prijať

-s 192.168.122.88 : Zdroj, zdroj balíkov. Inými slovami, toto pravidlo sa týka paketov, ktoré pochádzajú konkrétne z adresy IP 192.168.122.88

-j PRIJAŤ : Už tu hovorím, čo chcem robiť s balíkmi, ktoré zodpovedajú vyššie uvedenému, v tomto prípade prijať.

Inými slovami, ako zhrnutie prijmem pakety pochádzajúce z adresy IP 192.168.122.88, ale v prípade, že chcete zadať pakety pochádzajúce z tejto adresy IP, ALE! Vstupujú z rozhrania, ktoré nie je virbr0, teda povedzme, že sa pokúšajú zadávať pakety z IP 192.168.122.88, ale sú z počítača v našej sieti Wifi, v takom prípade budú pakety odmietnuté. prečo? Pretože jasne určujeme, že áno, prijímame pakety od 192.168.122.88 áno, ale iba, ale musia tiež vstupovať z rozhrania virbr0 (interné, virtuálne sieťové rozhranie), ak pakety pochádzajú z iného rozhrania (LAN, RAS, Wifi atď.), Potom nebudú akceptované. Špecifikácia rozhrania, ako vidíte, ho môžeme ešte viac obmedziť, môžeme mať lepšiu kontrolu nad tým, čo vstupuje (alebo nevstupuje) do nášho počítača.

Prijímanie príkazov ping z ľubovoľnej adresy IP domácej siete Wifi:

Z nejakého iného počítača, ktorý sa pripája k sieti Wi-Fi, ak chcete vyskúšať ping na môj laptop, chcem to povoliť. dôvod? Myšlienka je tiež taká, že v najbližších týždňoch prepojím počítač v susednom dome so sieťou, takže zdieľanie informácií by bolo menej zložité a plynulejšie, keď začnem robiť testy na prepojenie pracovnej plochy s Wifi, je potrebné skontrolovať ping na môj laptop, aby som skontroloval pripojenie, ak mi môj laptop nevypne ping, myslím si, že zlyháva AP, alebo že sa vyskytla chyba pri prístupe k Wifi, preto chcem ping povoliť.

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

-VSTUP : Rovnako ako predtým hovorím o prichádzajúcej premávke

- ja chcem 1 : Podobne ako predtým. V predchádzajúcom prípade som určil virtuálne rozhranie, v tomto prípade zadám iné rozhranie, to môjho wifi: wlo1

-p icmp : Protokol Icmp, icmp = ping. To znamená, že nepovoľujem SSH ani nič podobné, povoľujem iba ping (icmp)

-s 192.168.1.0/24 : Zdroj paketov, to znamená, pokiaľ pakety pochádzajú z adresy IP 192.168.1.? bude prijatý

-d 192.168.1.51 : Cieľová adresa IP, to znamená moja adresa IP.

-j PRIJAŤ : Naznačujem, čo robiť s balíkmi, ktoré zodpovedajú vyššie uvedenému, prijať.

To znamená, a aby som to priebežne vysvetlil, akceptujem, že mi pingujú (protokol icmp), ktorého cieľom je konkrétne moja IP adresa, pokiaľ pochádzajú z IP adresy ako napríklad 192.168.1 .__, ale tiež nemôžu prísť z ľubovoľného sieťového rozhrania, musia vstúpiť konkrétne z môjho sieťového rozhrania Wifi (wlo1)

Prijať SSH iba pre jednu adresu IP:

Niekedy sa potrebujem spojiť SSH z môjho smartfónu na ovládanie notebooku, preto musím povoliť prístup SSH k môjmu notebooku z adries IP mojej Wi-Fi, a to z tohto dôvodu:

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

Z tohto riadku je jediná vec, ktorá je iná alebo si zaslúži zdôraznenie,: –Dport 22 (Port SSH, ktorý používam)

Inými slovami, akceptujem pokusy o pripojenie k môjmu notebooku cez port 22, pokiaľ pochádzajú z IP mojej wifi, musia tiež mať moju IP ako konkrétny cieľ a tiež pochádzajú cez rozhranie wlo1, to znamená, to z mojej wifi (nie lan, atd.)

Umožniť im zobraziť váš web:

Nie je to môj prípad, ale ak niekto z vás má hostenú webovú stránku a nechce nikomu odoprieť prístup, to znamená, že na ňu má prístup každý odkiaľkoľvek, je to oveľa jednoduchšie, ako si myslíte:

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

Inými slovami, tu povoľujú všetku prichádzajúcu komunikáciu (tcp) cez port 80. Ako vidíte, nešpecifikujem, z ktorých adries IP alebo siete povoľujem prístup, nezadaním rozsahu adries IP, ktoré umožňujú, iptables predpokladá, že chcem umožniť prístup ku všetkým existujúcim rozsahom adries IP, to znamená k celému svetu 🙂

Iné kombinácie:

Mám veľa ďalších pravidiel, napríklad prijímam ping na adresy IP z domácej siete LAN (jedná sa v podstate o rovnaký riadok ako vyššie, ktorý mení rozsahy adries IP), čo je skôr to isté, ako som vysvetlil vyššie ... notebook ako taký nepoužívam naozaj zložité veci, to obmedzujúce spojenia, anti DDoS, to nechávam na servery, na svojom notebooku to nepotrebujem 🙂

Každopádne zatiaľ článok.

Ako vidíte, práca s iptables nie je nijako zložitá, akonáhle vytvoríte skript, do ktorého napíšete svoje pravidlá, je to veľmi jednoduché, potom ho upravte, pridajte alebo odstráňte pravidlá z vášho firewallu.

Nepovažujem sa za odborníka v tejto oblasti, ani zďaleka nie, napriek akýmkoľvek vašim prípadným otázkam, ktoré tu komentujú, sa vám pokúsim pomôcť, ako budem môcť.

pozdravy


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   riskovať dijo

    Veľmi dobré, veľmi dobre vysvetlené, super.
    Milujem tento typ príspevkov.

    1.    KZKG ^ Gaara dijo

      Ďakujem pekne za komentár 🙂

      Tento príspevok bol dlh, ktorý som mal dlho, je nakoniec príjemné a príjemné vedieť ho vyplatiť ^ _ ^

      pozdravy

      1.    FIXOCONN dijo

        otazka si na kube?
        … Stáva sa, že som pred pár dňami pomocou AP (Access Point) Linksys umiestnil Wifi k domu mojej priateľky

        1.    KZKG ^ Gaara dijo

          Áno, samozrejme, narodil som sa a žijem na Kube. preco ta otazka

        2.    Sam burgos dijo

          @FIXOCONN: Dobrý deň, priateľu a odpustite imtopiku otázky, ale ako definujete, aby sa škorica javila ako desktopové prostredie v užívateľskom agente? Používam mincovňu 13 so škoricou, ale v žiadnom prípade nezískam, aby sa logo škorice objavilo v mojom užívateľskom agente zakaždým, keď komentujem túto stránku

          Boli by ste taký láskavý, keby ste mi poskytli podrobnosti o vašom užívateľskom agentovi, ak to nebude mať veľké problémy? Chcel by som poznať tieto údaje, aby som ich umiestnil sám =)

          Nechám vám stránku, aby ste si ju mohli prezrieť a poskytnúť mi informácie. Ďakujem a správcovia, odpusťte „trollovanie“ (ak sa to tak dá nazvať) z mojej strany s touto informáciou -> http://user-agent-string.info/

          1.    KZKG ^ Gaara dijo

            Pridajte „Škoricu“ (bez úvodzoviek) do ktorejkoľvek časti UserAgent, potom by sa logo malo objaviť v budúcich komentároch 🙂

  2.   Bruno cascio dijo

    Veľmi dobrý príspevok! veľmi jasné 😀

    1.    KZKG ^ Gaara dijo

      Ďakujem za prečítanie a ďakujem za váš komentár 🙂

  3.   údolie dijo

    Ďakujem! Skutočne mi to pomáha!

  4.   Oscar Grenada dijo

    Dobrý deň, v prvom rade veľa blahoželám k blogu, myslím, že je to super.
    Niečo, čo by mohlo byť dobré spomenúť, je, že možnosť prihlásiť sa pomocou ULOG nefunguje v operačných systémoch, ktoré majú ulogd2, v tomto prípade by malo platiť pravidlo:
    sudo iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j NFLOG

    1.    KZKG ^ Gaara dijo

      V prvom rade vám veľmi pekne ďakujem za to, čo hovoríte o blogu 🙂

      Mám v Arche nainštalovaný ulogd v2.0.2-2 a linka, ktorú som vložil, funguje bez problémov (do /etc/ulogd.conf som musel dať loglevel = 1, ale bez problémov to trvá protokoly do iného súboru.

      Používate ulogd v2 alebo novší, funguje vám riadok, ktorý som opustil, zle?

      S pozdravom a ďakujem za komentár.

  5.   Mesto dijo

    Vždy som čakal na druhú časť, pamätám si, keď som čítal prvý (bola to moja iniciácia vo firewalloch). Vďaka @ KZKG ^ Gaara, s pozdravom 🙂

    1.    KZKG ^ Gaara dijo

      Ďakujem, že si ma prečítal 😀
      A hehe áno, čo som povedal ... tento príspevok bol dlh, ktorý som mal už dávno ^ _ ^

  6.   Zástupný obrázok pre Jose Luis Gonzalez dijo

    S pozdravom. Veľmi dobrý príspevok. Snažím sa nakonfigurovať pravidlá iptables na presmerovanie prenosu z chobotnice na dansguardian a stále nedosahuje cieľ. Ocenil by som v tejto súvislosti určitú pomoc.

    1.    KZKG ^ Gaara dijo

      iptables na to? Nedeje sa to priamo pomocou ACL v Squid?

  7.   bezmenný dijo

    „Mám veľa ďalších pravidiel ako ..“
    Tomu hovorím paranoja, chlapče
    Trochu viac a do každého otvoreného portu modemu / smerovača vložíte balíček Rotwailer 🙂

    1.    KZKG ^ Gaara dijo

      HAHAHAHAHAHAHAHAHAHA Zomieram od smiechu s rottwailers hahahaha

  8.   ivan dijo

    Pozdravujem priateľa, stáva sa, že potrebujem pomoc s konfiguráciou tabuliek IPTable takým spôsobom, že odoprie prístup iba pre port 80, keď napíšem adresu do prehľadávača svojich vlastných menných serverov, teda napríklad keď napíšem ns1.mydomain.com a ns2.mydomain. com (ktoré sú mojimi mennými servermi) IPtables odmietajú prístup na port 80, aby sa prehliadač pokúsil načítať stránku, ale po chvíli vyprší a nikdy sa nenačíta, stane sa, že som to už skúsil príkazmi ako tento:

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

    Jediná vec, ktorú robí, je odmietnutie vstupu na port 80 vo všetkých mojich doménach (pretože zdieľajú rovnakú IP ako Virtual Host), chcem, aby to bolo iba v adrese URL mojich nameserverov a IP, na ktoré moje nameservery smerujú, to znamená, že tabuľky IP odmietajú prístup na port 80 v:

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

    a adresy IP, na ktoré názvové servery smerujú

    102.887.23.33
    102.887.23.34

    Príklad spoločnosti, ktorá má tento systém, je: Dreamhost
    Ich nameservery: ns1.dreamhost.com a ns2.dreamhost.com a adresy IP, na ktoré poukazujú, nebudú po zadaní do adresného riadku prehliadača reagovať.

    Vopred vám veľmi pekne ďakujem za pozornosť, bol by som veľmi rád, keby ste mi s tým pomohli, naozaj to potrebujem a súrne!

    Dobrý deň !!

    1.    KZKG ^ Gaara dijo

      Ahoj Ivan,

      Kontaktujte ma e-mailom (kzkggaara[at]desdelinux[dot]net), aby ste o tom hovorili pokojnejšie a lepšie to vysvetlili, zajtra vám určite odpoviem (dnes idem okolo)

      To, čo chcete urobiť, je jednoduché, neviem, prečo riadky, ktoré mi hovoríte, nepracujú pre vás, mali by, ale musíte skontrolovať protokoly a ďalšie veci, ktoré by tu boli príliš dlhé.

      Zdravím vás a čakám na váš e-mail

  9.   neysonv dijo

    teoreticky s iptables by som sa mohol vyhnúť tomu, aby mi boli zasielané žiadosti o odpojenie od programov ako aircrack. Mám pravdu??? Dobre, urobím testy, ale ak mi povieš, že by si mi urobil veľkú radosť XDDD

    1.    KZKG ^ Gaara dijo

      Teoreticky si myslím, že áno, teraz neviem, ako by sa to dalo urobiť, nikdy som to neurobil ... ale opakujem, teoreticky si myslím, že by sa to dalo.

  10.   alex dijo

    Po uplatnení pravidiel iptables je pre mňa nemožné získať prístup k zdieľaným priečinkom systému Windows v lokálnej sieti. Aké pravidlo mám použiť, aby som to napravil?
    Ďakujem.

    1.    KZKG ^ Gaara dijo

      Aké pravidlá tabuľky iptables ste použili?
      Toto je 2. časť „iptables for newbies“, čítali ste prvú? Žiadam vás o to, aby ste vedeli, či ste uplatnili pravidlá uvedené v predchádzajúcom príspevku

      1.    alex dijo

        Áno, prečítal som obe časti. Pri scenári vychádzam z iného príspevku, ktorý ste uverejnili o úvodných pravidlách so systémom systemd.

        #! / Bin / bash
        # - UTF 8 -

        # Iptables binárne
        iptables = »/ usr / bin / iptables»

        zahodil ""

        ## Čisté tabuľky ##
        $ iptables -F
        $ iptables -X
        $ iptables -Z
        #echo »- Vyrobené FLUS pre iptables» && echo »»

        ## Vytváranie protokolov s ULOGD ##
        $ iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j ULOG

        ## Definujte predvolenú politiku DROP ##
        $ iptables -P INPUT DROP
        $ iptables -P KROK VPRED
        #echo »- Predvolene definované pravidlá DROP» && echo »»

        ## Povoliť všetko localhostu ##
        $ iptables -A VSTUP -i lo -j AKCEPTOVAŤ
        $ iptables -A VÝSTUP -o lo -j AKCEPTOVAŤ
        #echo »- Všetko povolené pre localhost» && echo »»

        ## Povoliť zadávanie paketov pripojení, ktoré iniciujem ##
        $ iptables -A VSTUP -m stav –stav STAVEBNÉ, SÚVISIACE -j AKCEPTOVAŤ
        #echo »- Povolené pakety pripojenia iniciované mojou» && echo »»

        zahodil " ##############################"
        echo »## IPTABLES KONFIGUROVANÉ OK! ## »
        zahodil " ##############################"

        Na internete som sa dočítal, že pre sambu by ste mali mať v scenári nasledujúce pravidlá:

        $ iptables -A VSTUP -p tcp –dport 139 -j AKCEPTOVAŤ
        $ iptables -A VSTUP -p tcp –dport 445 -j AKCEPTOVAŤ
        $ iptables -A INPUT -p udp –sport 137 -j ACCEPT
        $ iptables -A VSTUP -p udp –dport 137 -j AKCEPTOVAŤ
        $ iptables -A VSTUP -p udp –dport 138 -j AKCEPTOVAŤ

        Avšak ani pri nich nevidím pracovné skupiny systému Windows. : S

      2.    alex dijo

        Problém je vyriešený. Upravte pracovnú skupinu a hostitelia umožňujú parametre v konfiguračnom súbore samba.

  11.   otkmanz dijo

    Vynikajúci článok, proste super !!!!
    Práve som si ho prečítal a som rád, ako ste to vysvetlili, tak aj skutočne užitočné použitie tabuliek iptables, naozaj by som sa rád naučil, ako ich používať hlbšie.
    Zdravím a vynikajúci článok, dúfam, že zverejníte viac informácií o Iptables! ^^

  12.   LEO dijo

    Drahá;

    Mám proxy server s iptables a jedna z mojich sietí nemôže pingovať http://www.google.cl z tohto dôvodu mám zablokované porty a skúšam tisíce spôsobov, ako ich otvoriť, a nič sa nedeje. Ak nemôžem ping, nemôžem pripojiť výhľad

  13.   Borja dijo

    Gratulujeme k príspevku! Veľmi dobre. Ale mám otázku. Niekedy sa môže zmeniť adresa IP, ktorá vám je pridelená v sieti (ak je pravda, že by sme mohli priradiť adresu IP našim adresám MAC), ale existuje možnosť, aby Iptables umožnil prístup na náš server cez SSH pomocou adresy MAC?

    Dúfam, že som sa dobre vysvetlil.

    S pozdravom a veľmi pekne ďakujem!

  14.   Fernando MartinGan dijo

    Ahoj, viete, že som mal nakonfigurovaný linuxový server a po zadaní týchto príkazov som všetko zablokoval a stratil prístup, mohol som obnoviť takmer všetko, ale chýbajú mi 2 veci. * Už nemôžem pristupovať z webového prehľadávača cez server cname «server», ak prostredníctvom protokolu IP, 10.10.10.5 a na druhej strane nevidím zdieľané prostriedky z prieskumníka Windows v sieti, skôr ako vložím \\ server a videl všetky zdieľané zdroje. Dúfam, že mi pomôžete, viem, že je to hlúpe, ale nie som schopný vyriešiť to, vďaka

  15.   tau dijo

    Citujem doslovne:
    "
    Protokol Icmp, icmp = ping. To znamená, že nepovoľujem SSH ani nič podobné, povoľujem iba ping (icmp)
    "

    ICMP a PING nie sú rovnaké. Ping je súčasťou protokolu ICMP, ale nie je to všetko. Protokol ICMP (Internet Control Message Protocol) má oveľa viac použití, niektoré z nich s určitým nebezpečenstvom. A prijímate všetku komunikáciu ICMP. Museli by ste sa obmedziť iba na ping.

    Saludos!

  16.   ozkr dijo

    Musím absolvovať stáž, ale veľmi nechápem iptables, mohli by ste mi prosím pomôcť ...
    Vďaka!!!!!!!