Zabezpečení vaší sítě pomocí Iptables - Proxy - NAT - IDS: ČÁST 2

V příspěvek anterior Viděli jsme konfiguraci IPTable, aby fungovala jako Firewall. Nyní vidíme, jak tyto skripty vytvořit, aby se pravidla spouštěla ​​automaticky při spuštění systému, a také to, jak můžeme tato pravidla na chvíli odstranit nebo zastavit.

Než provedeme skript a ukážeme vám, jak vypadá, promluvme si trochu o NAT a koncepci toho, co chceme s tímto vybavením dělat.

NAT a kontext příkladu.

Když mluvíme o NAT, můžeme to zaměnit za směrování, protože oba mají na starosti vzájemné propojení dvou různých sítí. Skutečný rozdíl je v tom, že směrování se používá k přechodu z jedné místní sítě do druhé a tato další síť se může připojit k routeru a jít na internet.

Zatímco když mluvíme o NAT, mluvíme o směrování paketů z místní nebo soukromé sítě do veřejné sítě nebo na internet. Dělá to maskováním paketů umístěním veřejné IP adresy, se kterou jde na internet. To znamená, že nepotřebujeme router, protože veřejná IP je přímo vlastněna počítačem GNU / Linux.

Nat

Budeme to pracovat se sloganem, že používáme náš Linux jako router / firewall pro přechod na internet z místní sítě. Ale zde se mohou objevit dva scénáře.

  • Že náš Linux je mezi routerem poskytovatele služeb a místní sítí.

V tomto případě by mezi routerem a naším Linuxem byla síť a mezi Linuxem a místní sítí by byla jiná odlišná síť. To znamená, že náš router by nemusel dělat NAT jako takový, s jednoduchým směrováním provozu, jak je vysvětleno v příspěvek anterior Bude to dobré.

  • Že náš Linux má rozhraní připojené k místní síti a prostřednictvím druhého rozhraní přijímá přímo veřejnou IP, se kterou se naviguje.

To znamená, že náš Linux musí dělat NAT, aby se pakety mohly dostat na internet.

Pro účely této malé laboratoře pak řekneme, že náš Linux přijímá veřejnou IP přímo a bude tak moci testovat účinky NAT.

K provedení NAT pak použijeme syntaxi

 iptables -t nat -A POSTROUTING -O eth1 -j MASKÁRA

Kde eth1 je rozhraní, kde dostáváme veřejnou IP, tj. Kde jdeme na internet.

MASQUERADE se používá, když je IP veřejný, ale může se časem měnit (dynamicky). Jinak můžeme použít SNAT - zdroj IP

Vytváření skriptu iptables

Předpokládejme tedy, že: 172.26.0.0 je naše místní síť a 81.2.3.4 je veřejná IP, se kterou používáme internet. (je to statická IP). Mám rozhraní eth0 (místní síť)

eth1 (Veřejná síť).

V zásadě spočívá ve vytvoření skriptu, který lze volat například z /etc/init.d/firestop. a z tohoto skriptu můžeme spustit, zastavit nebo zkontrolovat stav naší konfigurace, jako to děláme s jakýmkoli systémovým démonem.

Předpokládejme, že moje pravidla IPTABLES JSOU:

#! / bin / bash # Firewall mého domu. # Název souboru / etc / firewall_on # Autor Jlcmux Twitter: @Jlcmux # # Základní zásady. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT pro sdílení internetu z eth0 do eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Povolit příchozí připojení zahájená mými iptables - A FORWARD --m state --state ESTABLISHED, RELATED -j ACCEPT # # Autorizovaný odchozí provoz iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A dopředu -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A dopředu -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Nezapomeňme udělit oprávnění ke spuštění

Vysvětlení:

Skript v zásadě dělá následující:

  1. Nejprve omezte veškerou navigaci, připojení a provoz. (Základní zásady brány firewall)
  2. Poté vytvořte NAT s cílovým eth1. což naznačuje, že máme statickou veřejnou IP «81.2.3.4»
  3. Otevírá porty nezbytné pro příjem paketů připojení iniciovaných mnou.
  4. Přijímá odchozí přenosy HTTP, HTTPS a DNS.
Pravidla jsou určena pro přenos FORWARD, protože náš Linux používáme jako směrovač, takže zásady se používají pro přenos, který jde přes Linux, to znamená, že funguje jako prostředník. To znamená, že náš Linux nemůže přímo navigovat ani přijímat žádná data přímo. Vztahuje se pouze na počítače, které jsou k němu připojeny, ale nikoli na sebe

Pokud jsme chtěli použít naše zařízení k navigaci, měli bychom řádky opakovat a podle potřeby změnit VPRED na VSTUP nebo VÝSTUP.

Zrušit skript.

Nyní vytvoříme skript, který přepíše všechny výše uvedené a ponechá počítač od toho všeho čistý. (Pro účely testování nebo chceme vypnout bránu firewall).

#! / bin / bash # Firewall mého domu. # Název souboru / etc / firewall_off # Autor Jlcmux Twitter: @Jlcmux # # Odstranění pravidel iptables -F # # Použití výchozích zásad (veškerý provoz akceptován) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatizace.

Nyní musíme vytvořit skript uvnitř /etc/init.d/ a služba se spustí automaticky a my ji můžeme spravovat pohodlnějším způsobem.

#! / bin / bash # Firewall mého domu. # Název souboru /etc/init.d/ firewall # Autor Jlcmux Twitter: @Jlcmux případ $ 1 na začátku) / etc / firewall_on ;; stop) / etc / firewall_off ;; status) iptables -L ;; *) echo "Chybná syntaxe. Platné = /etc/init.d/ spuštění firewallu | stop | status ;; esac

Vysvětlení:

Tento poslední skript, který jsme vložili /etc/init.d/ se jménem firewall. Pokud tedy chceme spravovat bránu firewall, můžeme použít příkaz /etc/init.d/ spuštění brány firewall. Stejným způsobem to můžeme zastavit nebo vidět stav.

Nyní soubor upravíme /etc/rc.local a dali jsme něco jako: /etc/init.d/ spuštění brány firewall začít se systémem.

Také. Toto je druhá část. Doufám, že to vám všem něco přinese. V další vidíme Proxy a IDS.


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.   lovec řekl

    Pokud používáte Debian, je v repo balíček (iptables-persistent), který to dělá přesně, vypíše aktuální pravidla v /etc/iptables/rules.v4 nebo v6 podle toho, co používáte, a poté je na vás použije, když zvednete systém.

  2.   Ocz řekl

    V praxi by čištění konfigurace konvenčního firewallu iptables (a používání NAT by z mého pohledu nebylo tak), ve většině případů stačilo vyprázdnění pravidla a resetování výchozích zásad na ACCEPT.
    Ale teoreticky, a pokud vím, musíte kromě toho také vyčistit nestandardní řetězce a resetovat čítače. Akce, které je třeba provést s přihlédnutím k tomu, že kromě „filtru“ existují i ​​jiné tabulky (pro toto je povinné číst soubor „/ proc / net / ip_tables_names“).

    Mimochodem, ortodoxie říká, že firewall musí být již spuštěn, než bude síť. Nevím, jak toho lze dosáhnout na jiných systémech Linux, ale na Debianu lze skript upravit a nastavit v adresáři „/etc/network/if-pre-up.d/“.

    Dobrý firewall pro všechny. 😉

  3.   NauTiluS řekl

    Dobrý den, příspěvek je velmi dobrý. Přečetl jsem celé 2 svazky.

    Čekání na další 🙂

  4.   anonymní řekl

    Otázka z mé nevědomosti pokračuje s iptables, ale pro několik verzí jádra máme nftables, již testuji, otázky jsou, je nftables něco beta s ohledem na iptables? Budou iptables použity mnohem déle?

    Děkuju.

    1.    yukiteru řekl

      nftables zahrnuje všechny funkce iptables, ip6tables, arptables a ebtables, vše s využitím nové infrastruktury v kernelspace a uživatelském prostoru, což zajišťuje lepší výkon a lepší funkčnost. nftables nahradí iptables a všechny ostatní zmíněné nástroje, ale zatím ne, přinejmenším ne, dokud nebude rozšířenější používání nftables jako takových.

  5.   Alexander řekl

    velmi dobrý příspěvek, chtěl jsem si přečíst více, protože je to velmi dobře vysvětleno .. pozdravy díky velký příspěvek

  6.   Avrah řekl

    Ahoj! Velmi dobré oba příspěvky.
    Jako příspěvek můžete v této části přidat na konec:

    „Nyní upravíme soubor /etc/rc.local a vložíme něco jako: /etc/init.d/ spuštění brány firewall tak, aby to začínalo systémem.“

    Přidejte toto do rc.local.

    if [-x /etc/init.d/ firewall]; pak
    /etc/init.d/ spuštění brány firewall
    fi

    Což znamená, že pokud má „firewall“ oprávnění ke spuštění, proveďte jej, pokud ne.
    Pokud chcete, aby se „brána firewall“ nespustila, musíte pouze odebrat oprávnění.

    Například: chmod + x /etc/init.d/ firewall
    aby to fungovalo při každém spuštění nebo ...
    chmod -x /etc/init.d/ firewall
    úplně deaktivovat.

    Zdravím!