iptables pro nováčky, zvědaví, zajímají (2. část)

Kdy DesdeLinux Bylo mi jen pár měsíců a napsal jsem extrémně jednoduchý srozumitelný tutoriál o iptables: iptables pro nováčky, zvědavý, zájem (1. část) . Pomocí metafor, jako je porovnání našeho počítače s naším domem, našeho firewallu s dveřmi domu, a dalších příkladů, jsem zábavným způsobem, bez tolika technických či komplikovaných konceptů, vysvětlil, co je firewall, co jsou iptables a jak ho začít používat a konfigurovat. Toto je pokračování, 2. část předchozího tutoriálu iptables 🙂

Stává se, že jsem před několika dny pomocí Linksys AP (přístupového bodu) vložil Wifi do domu své přítelkyně, i když lokalita není z hlediska technologie nejznámější, to znamená, že neexistuje mnoho nebezpečí praskání, vždy je Dobrý nápad mít vynikající zabezpečení jak ve Wifi, tak v počítačích.

Nebudu zde komentovat bezpečnost Wifi, protože to není cílem příspěvku, zaměřím se na konfiguraci iptables, kterou aktuálně používám na svém notebooku.

Následující příkazy se provádějí v terminálu, je třeba je vykonávat s oprávněními správce, každému příkazu přidám sudo, můžete udělat totéž nebo se vyhnout použití sudo provedením příkazů přímo jako root

V předchozím příspěvku jsem vysvětlil, že je nutné ve firewallu nejprve popřít veškerý příchozí provoz, a to:

sudo iptables -P INPUT DROP

Pak musíme umožnit našemu počítači mít oprávnění k zadávání údajů:

sudo iptables -A INPUT -i lo -j ACCEPT

Stejně jako přijímání paketů požadavků, které pocházejí z našeho počítače:

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

Pro lepší pochopení těchto řádků doporučuji přečíst si první polovinu předchozího článku: iptables pro nováčky, zvědavý, zájem (1. část)

Náš počítač zatím může bez problémů navigovat na internetu, ale nikdo z jiného prostředí (LAN, internet, Wifi atd.) K němu nebude mít přístup. Začneme konfigurovat iptables podle našich potřeb.

Pomocí ulogd k výstupu protokolů iptables do jiného souboru:

Ve výchozím nastavení protokoly iptables jdou do protokolu jádra, systémového protokolu nebo něco takového ... v archu ve výchozím nastavení, právě teď si ani nepamatuji, kam jdou, proto používám ulogd takže protokoly iptables jsou v jiném souboru.

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

Poskytnutí přístupu na můj soukromý server:

K virtualizaci nepoužívám VirtualBox ani nic podobného, ​​mám svůj soukromý server virtualizovaný pomocí Qemu + KVM který musí být schopen se připojit k mému notebooku jako takovému, s pravidly iptables, která jsem právě zadal výše, to nebude schopen, proto musím dát povolení k IP mého virtuálního serveru, aby měl přístup k mému notebooku :

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

Budeme podrobně popisovat tento řádek, je důležité, abyste pochopili, co každý parametr znamená, protože se od nynějška budou hodně opakovat:

-VSTUP : Říkám, že budu deklarovat pravidlo pro příchozí provoz

-i virbr0 : Prohlašuji, že rozhraní, přes které budu přijímat přenos, není etho (LAN) nebo wlan0 (Wifi), konkrétně říkám, že je to moje rozhraní virbr0, to znamená virtuální síťové rozhraní (interní), přes které můj notebook komunikuje můj virtuální server (a naopak)

-p TCP : Specifikuji protokol, nejpoužívanější jsou UDP a TCP, tady to bylo dost na to, abych to nedal, ale ... je obvyklé určit typ protokolu, který se má přijmout

-s 192.168.122.88 : Zdroj, zdroj balíčků. Jinými slovy, pravidlo se týká paketů, které pocházejí konkrétně z IP 192.168.122.88

-j PŘIJMOUT : Již zde říkám, co chci dělat s balíčky, které odpovídají výše uvedenému, v tomto případě přijmout.

Jinými slovy, jako souhrn přijímám pakety pocházející z IP 192.168.122.88, ale v případě, že chcete zadat pakety pocházející z této IP ALE! Vstupují z rozhraní, které není virbr0, tj. Řekněme, že se pokoušejí zadat pakety z IP 192.168.122.88, ale jsou z počítače v naší síti Wifi, pokud je to tak, pakety budou odmítnuty. proč? Protože jasně určujeme, že ano, přijímáme pakety od 192.168.122.88 ano, ale pouze, ale také musí vstupovat z rozhraní virbr0 (interní, virtuální síťové rozhraní), pokud pakety pocházejí z jiného rozhraní (LAN, RAS, Wifi, atd.), pak nebudou přijati. Zadáním rozhraní, jak vidíte, ho můžeme ještě více omezit, můžeme mít lepší kontrolu nad tím, co jde do (nebo nejde do) našeho počítače.

Přijímání příkazu ping z jakékoli adresy IP domácí sítě Wifi:

Z nějakého jiného počítače, který se připojuje k Wifi, pokud zkusíte ping na můj laptop, chci to povolit. důvod? Myšlenka je také to, že v příštích několika týdnech propojím počítač v sousedním domě se sítí, takže sdílení informací by bylo méně složité a plynulejší, když začnu dělat testy na propojení plochy s Wifi, budu muset vyzkoušet ping laptop ke kontrole připojení, pokud mi můj laptop nepinguje zpět, myslím, že selhává AP, nebo že došlo k chybě při přístupu k Wifi, proto chci povolit ping.

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

-VSTUP : Stejně jako dříve, odkazuji na příchozí provoz

-já chci 1 : Podobně jako dříve. V předchozím případě jsem určil virtuální rozhraní, v tomto případě určím jiné rozhraní, to mého wifi: wlo1

-p icmp : Protokol Icmp, icmp = ping. To znamená, že nepovoluji SSH ani nic podobného, ​​povoluji pouze ping (icmp)

-s 192.168.1.0/24 : Zdroj paketů, tj. Pokud pakety pocházejí z IP 192.168.1.? bude přijat

-d 192.168.1.51 : Cílová IP, tedy moje IP.

-j PŘIJMOUT : Naznačuji, co dělat s balíčky, které odpovídají výše uvedenému, přijmout.

To znamená, a abych to vysvětlil průběžně, přijímám, že mi pingují (protokol icmp), jehož cílem je konkrétně moje IP, pokud pocházejí z IP, jako je 192.168.1 .__, ale také nemohou pocházet ze žádného síťového rozhraní , musí vstoupit konkrétně z mého síťového rozhraní Wifi (wlo1)

Přijměte SSH pouze pro jednu IP adresu:

Někdy se potřebuji připojit SSH z mého smartphonu k ovládání notebooku, proto musím povolit SSH přístup k mému notebooku z IP adres mé Wifi, a to:

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

Z tohoto řádku je jediná věc, která se liší nebo si zaslouží zdůraznění, je: –Dport 22 (Port SSH, který používám)

Jinými slovy, přijímám pokusy o připojení k mému notebooku přes port 22, pokud pocházejí z IP mé wifi, musí také mít moji IP jako konkrétní cíl a také procházet přes rozhraní wlo1, to znamená rozhraní mé wifi (ne lan atd.)

Umožnění prohlížení vašeho webu:

Není to můj případ, ale pokud někdo z vás má hostovaný web a nechce nikomu odepřít přístup, to znamená, že k němu může mít přístup odkudkoli, je to mnohem jednodušší, než si myslíte:

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

Jinými slovy, tady povolují veškerý příchozí provoz (tcp) přes port 80. Jak vidíte, nespecifikuji, ze kterých IP nebo sítí povoluji přístup, nezadáním povoleného rozsahu IP, iptables předpokládá, že chci umožnit přístup ke všem stávajícím rozsahům IP adres, tedy k celému světu 🙂

Další kombinace:

Mám mnoho dalších pravidel, jako je například přijímat ping pro IP z mé domácí LAN (pro toto je to v podstatě stejný řádek jako výše, měnící rozsahy IP), což je více stejné, jak jsem právě vysvětlil výše .. .v mém notebooku jako takovém nepoužívám opravdu složité věci, omezení připojení, anti DDoS, to nechávám na serverech, na svém notebooku to nepotřebuji 🙂

Každopádně zatím článek.

Jak vidíte, práce s iptables není tak složitá nebo mnohem méně, jakmile vytvoříte skript, do kterého budete psát svá pravidla, je to velmi jednoduché, poté jej upravte, přidejte nebo odeberte pravidla do brány firewall.

Nepovažuji se za odborníka na toto téma, daleko od toho, navzdory jakýmkoli dotazům, které byste mohli mít, zde komentují, pokusím se vám pomoci, jak jen mohu.

pozdravy


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   riskovat řekl

    Velmi dobré, velmi dobře vysvětlené, skvělé.
    Miluji tento typ příspěvků.

    1.    KZKG ^ Gaara řekl

      Moc děkuji za komentář 🙂

      Tento příspěvek byl dluh, který jsem měl dlouhou dobu, je nakonec příjemné a příjemné, že ho mohu splatit ^ _ ^

      pozdravy

      1.    FIXOCONN řekl

        otázka jsi na Kubě?
        … Stává se, že jsem před pár dny pomocí AP od společnosti Linksys (přístupový bod) vložil Wifi do domu své přítelkyně

        1.    KZKG ^ Gaara řekl

          Ano, samozřejmě, narodil jsem se a žil jsem na Kubě. proč tato otázka?

        2.    Sam burgos řekl

          @FIXOCONN: Dobrý den, příteli a odpusťte offtopic otázky, ale jak definujete, aby se Cinnamon objevil jako desktopové prostředí v uživatelském agentu? Používám mincovnu 13 se skořicí, ale v žádném případě nedostanu logo Cinnamon, aby se objevilo v mém uživatelském agentu pokaždé, když okomentuji tento web

          Byli byste tak laskaví, kdybyste mi předali podrobnosti o vašem uživatelském agentovi, pokud to není příliš mnoho problémů? Chtěl bych vědět, že data, abych je umístil sám =)

          Nechám vám stránku, abyste ji mohli zkontrolovat a poskytnout mi informace. Díky a administrátoři, odpusťte „trollování“ (pokud se to tak dá nazvat) z mé strany s touto informací -> http://user-agent-string.info/

          1.    KZKG ^ Gaara řekl

            Přidejte „Skořici“ (bez uvozovek) do kterékoli části UserAgent, poté by se logo mělo objevit v budoucích komentářích 🙂

  2.   Bruno cascio řekl

    Velmi dobrý příspěvek! velmi jasné 😀

    1.    KZKG ^ Gaara řekl

      Děkujeme za přečtení a díky za váš komentář 🙂

  3.   údolí řekl

    Děkuji! Opravdu mi to pomáhá!

  4.   Oscar Grenada řekl

    Dobrý den, především gratuluji k blogu, myslím, že je skvělý.
    Něco, co by mohlo být dobré zmínit, je, že možnost přihlášení pomocí ULOG nefunguje v operačních systémech, které mají ulogd2, v tomto případě by mělo být pravidlo:
    sudo iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j NFLOG

    1.    KZKG ^ Gaara řekl

      Nejprve vám moc děkuji za to, co říkáte o blogu 🙂

      Mám ulogd v2.0.2-2 nainstalován v Archu a linka, kterou jsem vložil, funguje bez problémů (musel jsem dát loglevel = 1 do /etc/ulogd.conf, ale bez problémů to trvá protokoly do jiného souboru.

      Používáte ulogd v2 nebo vyšší, funguje vám řádek, který jsem nechal, špatně?

      S pozdravem a děkuji za komentář.

  5.   Město řekl

    Vždy jsem čekal na druhou část, pamatuji si, když jsem četl první (byla to moje iniciace ve firewallech). Díky @ KZKG ^ Gaara, s pozdravem 🙂

    1.    KZKG ^ Gaara řekl

      Díky za přečtení reading
      A hehe ano, řekl jsem ... tento příspěvek byl dluh, který jsem měl už dávno ^ _ ^

  6.   Zástupný obrázek pro Jose Luis Gonzalez řekl

    Pozdravy. Velmi dobrý příspěvek. Snažím se konfigurovat pravidla iptables k přesměrování provozu z chobotnice na dansguardian a stále nedosahuje cíle. Ocenil bych v tomto ohledu nějakou pomoc.

    1.    KZKG ^ Gaara řekl

      iptables za to? Nedělá se to přímo s ACL v Squid?

  7.   bezejmenný řekl

    „Mám mnoho dalších pravidel, jako ...“
    Tomu říkám paranoia, chlapče
    Trochu víc a do každého otevřeného portu modemu / routeru vložíte balíček Rotwailer 🙂

    1.    KZKG ^ Gaara řekl

      HAHAHAHAHAHAHAHAHAHA Umírám smíchem s rottwailery hahahaha

  8.   Ivan řekl

    Zdravím přítele, stane se, že potřebuji pomoc s konfigurací IPTables takovým způsobem, že odepře přístup pouze pro port 80, když zadám adresu v prohlížeči svých vlastních jmenných serverů, tj. Když například zadám ns1.mydomain.com a ns2.mydomain. com (což jsou mé jmenné servery) IPtables odepírají přístup na port 80, takže se prohlížeč pokusí načíst stránku, ale po chvíli vyprší a nikdy se nenačte, stane se, že jsem se již pokusil pomocí příkazů jako je 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

    Ale jediná věc, kterou dělá, je odepřít vstup na port 80 ve všech mých doménách (protože sdílejí stejnou IP jako Virtual Host), chci, aby to bylo pouze v url mých jmenných serverů a IP, na které míří moje jmenné servery, to znamená, že tabulky IP odepírají přístup k portu 80 v:

    ns1.midomini.com (směřující A) -> 102.887.23.33
    ns2.midomini.com (směřující A) -> 102.887.23.34

    a IP adresy, na které jmenné servery odkazují

    102.887.23.33
    102.887.23.34

    Příkladem společnosti, která má tento systém, je: Dreamhost
    Jejich jmenné servery: ns1.dreamhost.com a ns2.dreamhost.com a adresy IP, na které odkazují, nereagují při zadání do adresního řádku prohlížeče

    Předem vám moc děkuji za pozornost, byl bych velmi rád, kdybyste mi s tím pomohl. Opravdu to potřebuji a naléhavě !!

    Dobrý den !!

    1.    KZKG ^ Gaara řekl

      Ahoj Ivan,

      Kontaktujte mě e-mailem (kzkggaara[at]desdelinux[dot]net), abych o tom mluvil klidněji a lépe to vysvětlil, zítra ti bez problémů odpovím (dnes jdu kolem)

      To, co chcete udělat, je jednoduché, nevím, proč linky, které mi řeknete, pro vás nefungují, měly by, ale musíte zkontrolovat protokoly a další věci, které by zde byly příliš dlouhé.

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

  9.   neysonv řekl

    teoreticky s iptables bych mohl zabránit žádostem o odpojení od programů, jako je aircrack. Mám pravdu??? No, udělám testy, ale pokud mi řeknete, že byste mi udělali velkou radost XDDD

    1.    KZKG ^ Gaara řekl

      Teoreticky si to myslím, teď nevím, jak by to bylo možné, nikdy jsem to neudělal ... ale opakuji, teoreticky si myslím, že to mohlo být.

  10.   Alex řekl

    Po uplatnění pravidel iptables je pro mě nemožné získat přístup ke sdíleným složkám systému Windows v místní síti. Jaké pravidlo mám použít, abych to napravil?
    Děkuju.

    1.    KZKG ^ Gaara řekl

      Jaká pravidla iptables jste použili?
      Toto je druhá část „iptables pro nováčky“, četli jste první? Žádám o to, abyste věděli, zda jste použili pravidla, která byla v předchozím příspěvku

      1.    Alex řekl

        Ano, přečetl jsem si obě části. U skriptu vycházím z jiného příspěvku, který jste zveřejnili o spouštěcích pravidlech s systemd.

        #! / bin / bash
        # - UTF 8 -

        # Iptables binární
        iptables = »/ usr / bin / iptables»

        vyhodil ""

        ## Čisté tabulky ##
        $ iptables -F
        $ iptables -X
        $ iptables -Z
        #echo »- Vyrobeno FLUS pro iptables» && echo »»

        ## Vytváření protokolů pomocí ULOGD ##
        $ iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j ULOG

        ## Definujte výchozí zásady DROP ##
        $ iptables -P VSTUPNÍ VSTUP
        $ iptables -P DOPRODEJ DROP
        #echo »- Ve výchozím nastavení jsou definovány zásady DROP» && echo »»

        ## Povolit vše localhostu ##
        $ iptables -A VSTUP -i lo -j PŘIJMOUT
        $ iptables -A VÝSTUP -o lo -j PŘIJMOUT
        #echo »- Vše povoleno pro localhost» && echo »»

        ## Povolit zadávání paketů připojení, které iniciuji ##
        $ iptables -A VSTUP -m stav –stát ZAVEDENO, SOUVISEJÍCÍ -j PŘIJMOUT
        #echo »- Povolené pakety připojení iniciované mým» && echo »»

        vyhodil " ##############################"
        echo »## IPTABLES CONFIGURED OK! ## »
        vyhodil " ##############################"

        Četl jsem na internetu, že pro sambu byste měli mít ve skriptu následující pravidla:

        $ iptables -A VSTUP -p tcp –dport 139 -j PŘIJMOUT
        $ iptables -A VSTUP -p tcp –dport 445 -j PŘIJMOUT
        $ iptables -A VSTUP -p udp –sport 137 -j PŘIJMOUT
        $ iptables -A VSTUP -p udp –dport 137 -j PŘIJMOUT
        $ iptables -A VSTUP -p udp –dport 138 -j PŘIJMOUT

        Ani u nich však nevidím pracovní skupiny systému Windows. : S

      2.    Alex řekl

        Problém je vyřešen. Upravte pracovní skupinu a hostitelé povolte parametry v konfiguračním souboru samby.

  11.   Otkmanz řekl

    Vynikající článek, prostě skvělé !!!!
    Právě jsem si to přečetl a miluji jak to, jak to vysvětlujete, tak i opravdu užitečné použití iptables, opravdu bych se rád naučil, jak je používat hlouběji.
    Zdravím a vynikající článek, doufám, že zveřejníte více informací o Iptables! ^ ^

  12.   LEO řekl

    Milý;

    Mám proxy s iptables a jedna z mých sítí nemůže pingovat http://www.google.cl z tohoto důvodu mám porty zablokované a zkouším tisíce způsobů, jak otevřít porty, a nic se neděje. Pokud nemohu ping, nemohu se připojit k aplikaci Outlook

  13.   Borja řekl

    Gratulujeme k příspěvku! Velmi dobře. Ale mám otázku. Někdy se může změnit adresa IP, která vám je přidělena v síti (pokud je pravda, že bychom mohli přiřadit adresu IP našim adresám MAC), ale existuje možnost, aby Iptables umožnil přístup k našemu serveru přes SSH pomocí adresy MAC?

    Doufám, že jsem si to dobře vysvětlil.

    S pozdravem a moc děkuji!

  14.   Fernando MartinGan řekl

    Ahoj, víš, že jsem měl nakonfigurovaný linuxový server a po zadání těchto příkazů jsem všechno zablokoval a ztratil přístup, mohl jsem obnovit téměř všechno, ale chybí mi 2 věci. * Už nemohu přistupovat z webového prohlížeče přes cname «server», pokud ip, 10.10.10.5 a na druhé straně nevidím sdílené prostředky z Windows Exploreru v síti, než jsem vložil \\ server a viděl všechny sdílené zdroje. Doufám, že mi pomůžete, vím, že je to hloupé, ale nedokážu to vyřešit, díky

  15.   Váš řekl

    Cituji doslovně:
    "
    Protokol Icmp, icmp = ping. To znamená, že nepovoluji SSH ani nic podobného, ​​povoluji pouze ping (icmp)
    "

    ICMP a PING nejsou stejné. Ping je součástí protokolu ICMP, ale není to všechno. Protokol ICMP (Internet Control Message Protocol) má mnoho dalších použití, z nichž některé mají určitá nebezpečí. A přijímáte veškerý provoz ICMP. Museli byste se omezit pouze na ping.

    Saludos!

  16.   ozkr řekl

    Musím absolvovat stáž, ale moc nerozumím iptables, mohl byste mi prosím pomoci…
    dík!!!!!!!