Zabezpečenie vašej siete pomocou Iptables - Proxy - NAT - IDS: ČASŤ 2

V Predchádzajúci príspevok Videli sme konfiguráciu tabuliek IPTable, aby fungovali ako brána firewall. Teraz vidíme, ako vytvoriť tieto skripty tak, aby sa pravidlá vykonávali automaticky pri štarte systému, a tiež to, ako môžeme tieto pravidlá na chvíľu vylúčiť alebo zastaviť.

Predtým, ako urobíme skript a ukážeme si, ako to vyzerá, poďme si niečo povedať o NAT a koncepcii toho, čo chceme s týmto vybavením robiť.

NAT a kontext príkladu.

Keď hovoríme o NAT, môžeme si to pomýliť so smerovaním, pretože obe majú na starosti vzájomné prepojenie dvoch rôznych sietí. Rozdiel je skutočne v tom, že smerovanie sa používa na prechod z jednej lokálnej siete do druhej a táto ďalšia sieť sa môže pripojiť k smerovaču a pripojiť sa na internet.

Zatiaľ čo keď hovoríme o NAT, hovoríme o smerovaní paketov z miestnej alebo súkromnej siete na verejnú sieť alebo internet. Robí to maskovaním paketov umiestnením verejnej adresy IP, s ktorou ide na internet. To znamená, že nepotrebujeme smerovač, pretože verejnú IP priamo vlastní počítač GNU / Linux.

nat

Budeme to pracovať so sloganom, že náš Linux používame ako smerovač / bránu firewall na prechod na internet z lokálnej siete. Tu sa však môžu vyskytnúť dva scenáre.

  • Že náš Linux je medzi routerom poskytovateľa služieb a lokálnou sieťou.

V tomto prípade by medzi smerovačom a našim Linuxom bola sieť a medzi Linuxom a lokálnou sieťou by bola iná iná sieť. To znamená, že náš smerovač by nemusel robiť NAT ako taký, s jednoduchým smerovaním prenosu, ako je vysvetlené v Predchádzajúci príspevok Bolo by to dobré.

  • To, že náš Linux má rozhranie pripojené k lokálnej sieti a cez druhé rozhranie prijíma priamo verejnú IP, s ktorou naviguje.

To znamená, že náš Linux musí robiť NAT, aby sa pakety mohli dostať na internet.

Pre účely tohto malého laboratória potom budeme tvrdiť, že náš Linux dostáva verejnú IP priamo, a teda bude môcť testovať účinky NAT.

Na vykonanie NAT potom použijeme syntax

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

Kde eth1 je rozhranie, kde dostávame verejnú IP, to znamená, že ideme na internet.

MASQUERADE sa používa, keď je IP verejné, ale môže sa časom meniť (dynamicky). V opačnom prípade môžeme použiť SNAT –na zdroj IP

Vytvára sa skript iptables

Predpokladajme teda, že: 172.26.0.0 je naša lokálna sieť a 81.2.3.4 je verejná IP, s ktorou ideme na internet. (je to statický ip). Mám rozhrania eth0 (lokálna sieť)

eth1 (verejná sieť).

V zásade spočíva vo vytvorení skriptu, ktorý je možné volať napríklad z /etc/init.d/firestop. a z tohto skriptu môžeme spúšťať, zastavovať alebo kontrolovať stav našej konfigurácie, rovnako ako to robíme u ktoréhokoľvek systémového démona.

Predpokladajme, že moje pravidlá IPTABLES SÚ:

#! / bin / bash # Firewall môjho domova. # Názov súboru / etc / firewall_on # Autor: Jlcmux Twitter: @Jlcmux # # Základné zásady. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT na zdieľanie internetu od eth0 do eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT - k zdroju 81.2.3.4
# # Povoliť prichádzajúce spojenia iniciované mojimi iptables -A VPRED -m stav --m STAV ZOSTANENÝ, SÚVISIACE -j AKCEPT # # Autorizovaný odchádzajúci prenos iptables -A VPRED -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A VPRED -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A VPRED -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Nezabudneme udeliť povolenia na vykonávanie

vysvetlenie:

Skript v zásade robí nasledovné:

  1. Najskôr obmedzte všetku navigáciu, spojenia a premávku. (Základné pravidlá brány firewall)
  2. Potom vytvorte NAT s cieľovým bodom eth1. čo naznačuje, že máme statický verejný ip "81.2.3.4"
  3. Otvára porty potrebné na príjem mnou iniciovaných paketov pripojení.
  4. Prijíma odchádzajúce prenosy HTTP, HTTPS a DNS.
Pravidlá sú určené pre FORWARD prenos, pretože náš Linux používame ako smerovač, takže sa pravidlá používajú pre prenos, ktorý PASES prechádza cez Linux, to znamená, že funguje ako sprostredkovateľ. To znamená, že náš Linux nemôže skutočne navigovať ani prijímať žiadne dáta priamo. Vzťahuje sa iba na počítače, ktoré sú k nej pripojené, nie však na ňu samotnú

Ak by sme chceli použiť naše zariadenie na navigáciu, mali by sme riadky opakovať a podľa potreby zmeniť VPRED na VSTUP alebo VÝSTUP.

Zrušiť skript

Teraz vytvoríme skript, ktorý prepíše všetky uvedené skutočnosti a od toho všetkého zanechá počítač čistý. (Pre účely testovania alebo iba chceme vypnúť bránu firewall).

#! / bin / bash # Firewall môjho domova. # Názov súboru / etc / firewall_off # Autor: Jlcmux Twitter: @Jlcmux # # Odstránenie pravidiel iptables -F # # Aplikácia predvolených politík (všetka akceptovaná komunikácia) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatizuje sa.

Teraz musíme vytvoriť skript vo vnútri /etc/init.d/ a služba sa spustí automaticky a my ju môžeme spravovať pohodlnejším spôsobom.

#! / bin / bash # Firewall môjho domova. # Názov súboru /etc/init.d/ firewall # Autor Jlcmux Twitter: @Jlcmux prípad $ 1 na začiatku) / etc / firewall_on ;; stop) / etc / firewall_off ;; status) iptables -L ;; *) echo "Chybná syntax. Platné = /etc/init.d/ spustenie brány firewall | stop | status ;; esac

vysvetlenie:

Tento posledný skript sme vložili /etc/init.d/ s menom firewall. Takže ak chceme spravovať firewall, môžeme použiť príkaz /etc/init.d/ spustenie brány firewall. Rovnakým spôsobom to môžeme zastaviť alebo vidieť štát.

Teraz ideme súbor upravovať /etc/rc.local a dali sme niečo ako: /etc/init.d/ spustenie brány firewall začať so systémom.

Tiež. Toto je druhá časť. Dúfam, že vám všetkým niečo prinesie. V ďalšom vidíme Proxy a IDS.


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.   lovec dijo

    Ak používate Debian, v repo balíku je balíček (iptables-persistent), ktorý robí presne toto, vypíše aktuálne pravidlá do /etc/iptables/rules.v4 alebo v6 podľa toho, čo používate, a potom ich na vás použije keď zdvihnete systém.

  2.   OCZ dijo

    V praxi by čistenie konfigurácie konvenčného firewallu iptables (a použitie NAT by z môjho pohľadu nebolo také), vo väčšine prípadov stačilo vyprázdnenie pravidla a obnovenie predvolených politík na ACCEPT.
    Ale teoreticky, a pokiaľ viem, musíte okrem toho vyčistiť aj iné ako predvolené reťazce a vynulovať počítadlá. Akcie, ktoré treba vykonať, nezabúdajte, že okrem „filtra“ existujú aj ďalšie tabuľky ((je povinné si prečítať súbor „/ proc / net / ip_tables_names“).

    Mimochodom, ortodoxia hovorí, že brána firewall musí byť už predtým aktívna ako sieť. Neviem, ako sa to dá dosiahnuť v ostatných systémoch Linux, ale v tých Debianových by sa dal skript upraviť a nastaviť v adresári „/etc/network/if-pre-up.d/“.

    Dobrý firewall pre všetkých. 😉

  3.   NauTiluS dijo

    Dobrý deň, príspevok je veľmi dobrý. Mám prečítané celé 2 zväzky.

    Čakanie na ďalší 🙂

  4.   anonymný dijo

    Otázka z mojej nevedomosti, pokračujeme s iptables, ale pre niekoľko verzií jadra máme nftables, už testujem, otázky sú, sú nftables niečo beta vo vzťahu k iptables? Budú sa tabuľky iptables používať oveľa dlhšie?

    Ďakujem.

    1.    yukiteru dijo

      nftables obsahuje všetky funkcie iptables, ip6tables, arptables a ebtables, všetko s využitím novej infraštruktúry v kernelspace a užívateľskom priestore, čo zaisťuje lepší výkon a vylepšenú funkčnosť. nftables nahradia iptables a všetky ostatné spomenuté nástroje, ale zatiaľ nie, prinajmenšom dovtedy, kým nebude viac rozšírené používanie nftables ako takých.

  5.   alexander dijo

    veľmi dobrý príspevok, chcel som si prečítať viac, pretože je to veľmi dobre vysvetlené .. pozdravy ďakujem veľký príspevok

  6.   Avrah dijo

    Ahoj! Veľmi dobrý obidva príspevky.
    Ako príspevok by ste mohli pridať na koniec v tejto časti:

    „Teraz budeme upravovať súbor /etc/rc.local a vložiť niečo ako: /etc/init.d/firestop start tak, aby to začalo v systéme.“

    Pridajte to na rc.local.

    if [-x /etc/init.d/ firewall]; potom
    /etc/init.d/ spustenie brány firewall
    fi

    Čo znamená, že ak má „firewall“ povolenie na vykonávanie, vykonajte ho, ak nie.
    Ak chcete, aby sa „brána firewall“ nespúšťala, musíte iba odstrániť povolenia.

    Napríklad: chmod + x /etc/init.d/ firewall
    aby to bežalo pri každom štarte alebo ...
    chmod -x /etc/init.d/ firewall
    úplne vypnúť.

    Zdravím!