GNU/Linux >> Znalost Linux >  >> Panels >> Webmin

Linux Firewall

Pokud je váš systém připojen k internetu, může být užitečné chránit jej firewallem, aby se zabránilo neoprávněnému přístupu. Tato stránka popisuje proces nastavení a konfigurace Linuxového firewallu pomocí Webmin a iptables .

Úvod do firewallu s IPtables

Firewall je systém, který chrání sebe a ostatní hostitele v síti před útočníky v nedůvěryhodných sítích, jako je internet. Může blokovat pakety a připojení na základě různých kritérií, jako je zdrojová adresa, cílová adresa, port a protokol. Firewall je obvykle také router, který přeposílá pakety mezi zabezpečenou místní sítí a nedůvěryhodným Internetem – nicméně je také možné, aby se systém chránil sám sebe.

Systém brány firewall lze také nakonfigurovat tak, aby skryl více hostitelů za jedinou IP adresou pomocí procesu známého jako NAT (Network Address Translation). Skrytí hostitelé jsou obvykle ve vnitřní síti LAN pomocí privátní sítě IP (jako je 192.168.0.0) a brána firewall má jednu internetovou adresu IP. NAT umožňuje těmto interním hostitelům komunikovat s ostatními na internetu, i když nemají skutečné veřejné IP adresy.

Linuxové jádro v průběhu let zahrnovalo několik různých implementací firewallu, jako je IPfwadm a IPchains. Řada jader 2.4 zahrnuje firewall IPtables, který je výkonnější a flexibilnější než jeho předchůdci. Všechny distribuce Linuxu, které používají jádro 2.4, mají povolenou podporu IPtables a obsahují příkazy potřebné k jeho konfiguraci. Tato kapitola a modul Linux Firewall pokrývají pouze nastavení firewallu pomocí IPtables, nikoli žádnou ze starších implementací jako IPchains nebo IPfwadm.

Veškerý síťový provoz IP je rozdělen do paketů, což jsou kusy dat s informacemi o zdroji, cíli a protokolu. Dokonce i nepřetržitý tok dat, jako je stahování velkého souboru, je při odesílání rozdělen do paketů a znovu sestaven v místě určení. Protože firewall IPtables funguje na úrovni IP, všechna jeho pravidla a řetězce vyhodnocují a fungují na jednotlivých paketech, nikoli na TCP spojeních nebo HTTP požadavcích.

IPtables firewall se skládá ze tří různých druhů objektů – tabulek, řetězců a pravidel. Každá ze tří tabulek obsahuje dva nebo tři standardní řetězce a případně mnoho uživatelsky definovaných vlastních řetězců. Každý řetězec obsahuje nula nebo více pravidel, která se aplikují na pakety přijaté firewallem nebo odeslané z firewallu k určení jejich osudu. Tyto tři tabulky a jejich standardní řetězce jsou:

Filtrování paketů (filtr)
Řetězce paketů INPUT, OUTPUT a FORWARD v této tabulce platí pro pakety přijaté, odeslané nebo předané firewallem. Pokud systém brány firewall funguje jako směrovač, na směrované pakety se vztahuje pouze řetězec FORWARD. Síťový provoz určený pro samotný systém je zpracováván řetězcem INPUT a provoz odesílaný místním procesem řetězcem OUTPUT. Pro systém, který je obyčejným routerem a nedělá žádné maskování, nebo pro systém, který ke své ochraně potřebuje pouze firewall, je to jediná tabulka, do které je třeba přidat pravidla.
Překlad síťových adres (nat)
Tato tabulka se používá pouze pro pakety, které zahajují nové připojení. Pravidla v řetězci PREROUTING jsou aplikována na pakety, jakmile jsou přijaty systémem pro směrování, a POSTROUTING na pakety, které se chystají po směrování opustit. Pravidla OUTPUT řetězce se aplikují na lokálně generované pakety pro úpravu před směrováním. Do této tabulky se obvykle přidávají pravidla pro nastavení maskování, transparentního proxy nebo jiného druhu překladu adres.
Změna paketu (mangle)
Tato tabulka se používá pouze pro specializované úpravy paketů. Obsahuje dva řetězce – PREROUTING pro úpravu paketů před směrováním a OUTPUT pro úpravu lokálně generovaných paketů. Tato tabulka se v typické konfiguraci brány firewall používá jen zřídka.

Když je síťový paket zpracováván řetězcem, každé pravidlo v řetězci se provádí v daném pořadí. Každé pravidlo má sadu podmínek, které určují, zda se pravidlo shoduje, nebo ne, a akci, která se provede v případě shody. Touto akcí může být okamžité přijetí paketu, jeho okamžité zahození, provedení nějaké úpravy nebo pokračování v provádění. Pokud je dosaženo konce řetězce, bude místo toho provedena jeho výchozí akce, což je obvykle povolení průchodu paketu.

Níže uvedený snímek obrazovky ukazuje tabulky a řetězce, kterými paket prochází, a pořadí, ve kterém jsou kontrolovány. Pakety přicházející ze sítě vstupují do diagramu nahoře a jsou zpracovávány oběma řetězci PREROUTING. V tomto okamžiku je učiněno rozhodnutí - pakety určené pro místní systém jdou doleva, zatímco ty, které jsou předávány do jiného cíle, jdou na pravou větev. Ty, které jdou doleva, jsou zpracovány řetězcem příchozích paketů, než jsou doručeny místním procesům, jako jsou servery. Předávaná data jsou před odesláním na místo určení zpracována směrovacími řetězci Forwarded packets a After.

Firewall může také ovlivnit pakety odesílané procesy v místním systému. Ty jsou kontrolovány proti třem výstupním řetězcům a řetězci After routing před odesláním přes příslušné síťové rozhraní do jejich cílů. To znamená, že firewall IPtables lze použít k omezení adres, ke kterým se mohou místní procesy připojit, a protokolů, které mohou používat.


An overview of IPtables

Modul Linux Firewall

Tento modul lze použít k nastavení firewallu v systému Linux s povolenými IPtables nebo k úpravě jakékoli části stávajícího firewallu. Ukládá konfiguraci brány firewall do souboru typu save vytvořeného a načteného pomocí příkazů iptables-save a iptables-restore, nikoli do skriptu shellu obsahujícího volání příkazu iptables. Redhat, Debian a Gentoo Linux všechny standardně používají podobný soubor typu save, o kterém Webmin ví a bude s ním pracovat.

Pokud jste ručně vytvořili firewall pomocí skriptu shellu a chcete od nynějška používat tento modul k jeho úpravám, bude nutné jej převést na soubor uložení IPtables, aby jej Webmin mohl upravovat.

Co musíte udělat, je zastavit spouštění vlastního skriptu při spouštění a říci modulu, aby místo toho vytvořil vlastní skript pro nastavení brány firewall.

To platí také pro firewally vytvořené nástroji jako YaST nebo fBuilder, které vypisují shellové skripty příkazů iptables. Pokud tento nástroj také neumí upravovat soubor uložení IPtables (jako je knetfilter), neměl by být používán spolu s modulem Webmin Linux Firewall, nebo si pravděpodobně navzájem přepíšou svá nastavení.

Když vstoupíte do modulu z kategorie Networking, na hlavní stránce se obvykle zobrazí seznam všech řetězců a pravidel v první tabulce, která nějaké obsahuje (obvykle Filtrování paketů ), jak je uvedeno níže. Pokud však Webmin zjistí, že příkazy iptables nebo iptables-save nejsou nainstalovány, zobrazí se místo nich chybová zpráva – zkontrolujte, zda na vašem distribučním CD nebo na webu není balíček, který je obsahuje.

Pokud je to poprvé, co používáte modul a ve vašem systému ještě není nastaven žádný firewall, na hlavní stránce se místo toho zobrazí formulář pro zjednodušení počátečního vytvoření firewallu. Zobrazí se tři možnosti – vyberte jednu a klikněte na Nastavit bránu firewall tlačítko pro jeho nastavení. V případě potřeby Webmin také zobrazí Povolit bránu firewall při spouštění? zaškrtávací políčko, které, pokud je zaškrtnuto, způsobí vytvoření spouštěcího skriptu, aby byla brána firewall povolena i při spouštění. Možnosti nastavení brány firewall jsou :

Povolit veškerý provoz
Je-li vybráno, firewall bude vytvořen jako „prázdný“ a veškerý provoz bude povolen.
Proveďte překlad síťových adres na externím rozhraní
Firewall bude nastaven pro NAT, takže hostitelé v interní síti LAN mohou přistupovat k Internetu prostřednictvím hostitele s jedinou veřejnou IP adresou. Ze seznamu vedle této možnosti musíte vybrat síťové rozhraní, které je připojeno k Internetu, například ppp0.
Blokovat všechna příchozí připojení na externím rozhraní
Je-li zvoleno, firewall bude nastaven tak, aby blokoval veškerý provoz přicházející do vašeho systému na zvoleném síťovém rozhraní, kromě navázaných spojení, DNS odpovědí a neškodných ICMP paketů. Vybrané rozhraní by mělo být to, které je připojeno k internetu, například ppp0.

Pokud je to poprvé, co byl modul použit a Webmin zjistí, že ve vašem systému již existuje firewall, zobrazí se jeho pravidla a budete vyzváni, abyste jej převedli na soubor typu save, aby bylo možné modul použít k jeho úpravám. . Pokud se tak rozhodnete provést kliknutím na Uložit pravidla brány firewall všechny existující tabulky, řetězce a pravidla budou bezpečně zaznamenány. V případě potřeby se také zobrazí zaškrtávací políčko *Povolit bránu firewall při spouštění?*, což, pokud je vybráno, způsobí, že Webmin vytvoří spouštěcí skript pro aktivaci uložených pravidel brány firewall při spouštění.

Pokud se rozhodnete převést existující ručně vytvořenou konfiguraci brány firewall, nezapomeňte zakázat všechny existující skripty, které ji nastavují při spouštění. V opačném případě bude spuštěn starý skript i skript vytvořený Webminem, což může způsobit, že pravidla nastavená v tomto modulu budou zrušena starší manuální konfigurací.

Povolení a zakázání síťového provozu

Chcete-li omezit typy připojení a paketů, které bude brána firewall přijímat nebo předávat, musíte vytvořit další pravidla brány firewall. Nejlepším místem pro tato pravidla je Filtrování paketů v tabulce Příchozí pakety nebo Přeposlané pakety řetěz. Pokud váš firewall funguje jako směrovač a chcete chránit systémy v zabezpečené síti, ke které je připojen, ale ne firewall samotný, zobrazí se Přeposílané pakety by měl být použit řetěz. Pokud však chcete chránit firewall i další systémy, na které směruje, pravidla by měla být přidána do Příchozí pakety řetěz.

Je také možné omezit odesílání dat vaším systémem, která mohou pocházet z místních procesů nebo být předávána z jiných hostitelů. Chcete-li to provést, můžete přidat pravidla do Odchozích paketů řetěz. To může být užitečné pro omezení adres a portů, ke kterým se mohou místní uživatelé připojit, pokud si to přejete.

Chcete-li vytvořit nové pravidlo pro blokování provozu, postupujte takto :

  1. Na hlavní stránce modulu vyberte Filtrování paketů ze seznamu vedle položky Zobrazit tabulku IP a kliknutím na něj přepněte na tabulku filtrování.
  2. Chcete-li přidat pravidlo, které platí pro veškerý příchozí provoz, klikněte na tlačítko Přidat pravidlo v části Příchozí pakety sekce. Pokud chcete omezit pouze přeposílaný provoz, klikněte místo toho na tlačítko v části Předané pakety. V každém případě budete přesměrováni na formulář pro vytvoření pravidla, který je zobrazen na snímku obrazovky níže.
  3. Změňte Akci, kterou chcete provést k Drop , takže pakety vyhovující tomuto pravidlu jsou firewallem tiše zahozeny.
  4. V části Podrobnosti o stavu vyberte podmínky, které určují, které pakety budou spárovány a tedy zahozeny. Pouze pakety vyhovující všem podmínkám, které nejsou nastaveny na Ignorovat bude vypuštěno. Některé příklady podmínek pro blokování určitých druhů provozu jsou :
    Blokování všech připojení k určitému portu TCP
    Nastavte Síťový protokol pole na Rovno a vyberte TCP . Pro blokování portu musí být vždy zvolen protokol. Nastavte Cílový port TCP nebo UDP na Rovno a do pole Port(y) zadejte číslo portu pole vedle něj. Můžete zablokovat několik portů zadáním seznamu čísel oddělených čárkami do pole Port(y) nebo zablokovat celý rozsah výběrem Rozsah portů a zadáním počátečního a koncového portu do polí vedle něj.
    Blokování veškerého provozu z konkrétní adresy
    Nastavte *Zdrojovou adresu nebo síť* na Rovno a do pole vedle zadejte IP adresu, kterou chcete zablokovat. Můžete také zablokovat celou síť zadáním páru síť/předpona jako 130.194.164.0/24 do terénu. Nastavte Stav připojení na Nerovná se a vyberte Stávající připojení z nabídky vedle. Tento krok umožní vašemu systému připojit se k blokovaným adresám, ale ne naopak.
    Blokování provozu na konkrétní adresu
    Nastavte Cílovou adresu nebo síť na Rovno a do pole vedle zadejte IP adresu nebo síť, kterou chcete zablokovat. Protože to účinně zastaví připojení blokovaného systému také k vašemu, může být dobré nastavit Stav připojení na Nerovná se a vyberte Stávající připojení z nabídky vedle. Ve všech případech je obvykle dobré nastavit Příchozí rozhraní k síťovému rozhraní, které je připojeno k Internetu (např. ppp0), takže se omezení nevztahuje na připojení z vaší místní sítě LAN.
  5. Až budete s výběrem podmínek hotovi, klikněte na tlačítko Vytvořit knoflík. Dokud ve vašem zadání nejsou žádné chyby, vrátíte se na hlavní stránku modulu, na které bude vypsáno nové pravidlo.
  6. Chcete-li nové pravidlo aktivovat, klikněte na tlačítko Použít konfiguraci tlačítko v dolní části stránky.


Formulář pro vytvoření pravidla

Pravidla v každém řetězci se vyhodnocují v pořadí shora dolů a o provedené akci rozhoduje podle toho, která z nich vyhovuje dříve. Pokud se žádná neshoduje, pak se provede výchozí akce řetězce, což je obvykle přijetí do paketu. Tento vyhodnocovací příkaz můžete využít k vytvoření pravidla, které povolí jednu IP adresu, následované pravidlem pro odepření celé sítě. Konečným efektem bude, že bude zakázán každý hostitel v síti kromě jednoho.

Protože pořadí pravidel je důležité, můžete někdy chtít přidat pravidlo doprostřed existujícího řetězce. Chcete-li to provést, použijte jedno z tlačítek se šipkami pod Přidat řetězce na hlavní stránce modulu k vytvoření nového pravidla před nebo za existujícím pravidlem.

Nejběžnější akce a jejich významy jsou uvedeny níže. Ne všechny jsou dostupné ve všech řetězcích a tabulkách.

Nedělat nic
Pokud se pravidlo s touto akcí shoduje, nic se neprovede a zpracování bude pokračovat dalším pravidlem.
Přijmout
Odpovídající pakety budou okamžitě přijaty a v řetězci již nebude prováděno žádné další zpracování. Pravidla v jiných tabulkách však mohou ovlivnit paket.
Vypustit
Odpovídající pakety budou tiše zahozeny, jako by nebyly vůbec přijaty. V tomto ani jiném řetězci nebude probíhat žádné další zpracování.
Uživatelský prostor
Pakety budou předány normálnímu procesu v uživatelském prostoru. Tato akce se používá zřídka.
Výstupní řetězec
Okamžitě skočte na konec řetězce a místo toho proveďte jeho výchozí akci. Pokud je toto použito v uživatelsky definovaném řetězci, zpracování se vrátí k pravidlu, které jej vyvolalo.
Maškaráda
Odpovídající pakety budou mít svou zdrojovou adresu změněnou tak, aby vypadaly, že pocházejí ze systému brány firewall, a nebudou zpracována žádná další pravidla v řetězci. Když je vybrána tato akce, můžete použít Zdrojové porty pro maskování pole pro kontrolu, které porty bude brána firewall používat pro maskovaná připojení. Viz Nastavení překladu síťových adres sekce pro více podrobností. Maškaráda možnost je dostupná pouze v Překladu síťových adres tabulky v řetězci *Pakety po směrování*.
Zdroj NAT
Podobné jako Maškaráda možnost, ale lépe se hodí pro systémy, které mají pevnou internetovou IP adresu. Pokud je vybráno, můžete použít IP a porty pro SNAT v poli Překlad síťových adres v tabulce Pakety po směrování řetěz.
NAT cíle
Odpovídající pakety budou mít svou cílovou adresu a port upraveny na základě IP adres a portů pro pole DNAT. Toto je základ pro transparentní proxy, takže další informace naleznete v části Nastavení transparentního proxy sekce níže. Tato akce je dostupná pouze v Překladu síťových adres v tabulce Pakety před směrováním a Výstup řetězy.
Přesměrování
Tato akce přesměruje všechny odpovídající pakety na port nebo porty v poli brány firewall určené v poli *Cílové porty pro přesměrování*. Může být také použit pro transparentní proxy, ačkoli cílový NAT je flexibilnější. Akce přesměrování je dostupná pouze v Překladu síťových adres v tabulce Pakety před směrováním a Výstup řetězy.

Můžete také zvolit Spustit řetězec možnost pro Akci, kterou je třeba provést , který paket předá dále do uživatelem definovaného řetězce nebo vlastního cíle zadaného do pole vedle něj. Další informace o uživatelsky definovaných řetězcích naleznete níže v části *Vytvoření vlastního řetězce*. Některé z dostupných cílů jsou LOG ​​(pro protokolování paketů do syslog), MIRROR (pro odrážení paketů zpět k jejich odesílateli) a MARK (pro označení paketu pro pozdější podmínky).

Pro každou podmínku jsou možnosti Ignorováno , Rovno a lze vybrat *Nerovná se*. První znamená, že podmínka se při kontrole, zda paket odpovídá pravidlu, vůbec nepoužívá. Druhá znamená, že paket musí splňovat podmínku, aby odpovídal celému pravidlu, a třetí znamená, že paket NESMÍ odpovídat podmínce, aby se pravidlo provedlo. Pokud by byla například podmínka "Příchozí rozhraní" nastavena na "Nerovná se" a zvoleno eth0, pravidlo by odpovídalo pouze paketům přicházejícím na libovolném rozhraní kromě primární ethernetové karty.

Protože téměř všechny síťové protokoly zahrnují provoz proudící dvěma směry, pokusy o blokování pouze příchozího provozu z nějaké adresy pomocí Zdrojové adresy nebo sítě podmínka také zablokuje připojení k adrese, protože pakety odpovědí, které jsou součástí připojení, budou zahozeny. Totéž platí pro blokování příchozích dat na konkrétním portu pomocí Cílového portu TCP nebo UDP podmínka - pokud se v nepravděpodobném případě náhodně vybraný zdrojový port připojení z vašeho systému shoduje s blokovaným portem, všechny odpovědi na něj budou zrušeny. Z těchto důvodů je obvykle dobré při vytváření pravidel odepření nastavit stav připojení podmínka na Nerovná se a vyberte Stávající připojení z nabídky vedle ní. To způsobí, že IPtables bude sledovat odchozí připojení vytvořená vaším serverem a nebude je blokovat.

Jak vidíte, k dispozici je mnoho různých podmínek, které lze kombinovat a vytvořit tak poměrně složitá pravidla. Chcete-li se dozvědět více o tom, co každá z dostupných podmínek dělá, prohlédněte si níže sekci *Podmínky pravidel brány firewall*. Protože existuje tolik podmínek, Webmin vám umožňuje vytvářet nová pravidla, která jsou téměř totožná s těmi stávajícími. Chcete-li to provést, klikněte na existující pravidlo a upravte jej a použijte pravidlo klonování tlačítko ve spodní části stránky pro přechod na formulář pro vytvoření pravidla se všemi podmínkami a akcemi nastavenými na základě původního pravidla.

Změna výchozí akce řetězce

Pakety, které neodpovídají žádnému pravidlu v řetězci, budou zpracovány pomocí výchozí akce, kterou je obvykle přijetí paketu. Na hlavní stránce modulu je výchozí akce pro každý řetězec zobrazena vedle Nastavit výchozí akci na knoflík. Chcete-li jej změnit, postupujte takto :

  1. Vyberte novou akci z nabídky vedle tlačítka *Nastavit výchozí akci na*. Pouze Přijmout , Vypustit , Uživatelský prostor a Výstupní řetězec akce jsou k dispozici - jejich významy najdete v části *Povolení a zakázání síťového provozu* výše. Obvykle pouze Povolit a upustit dává smysl jako výchozí akce.
  2. Klikněte na Nastavit výchozí akci na tlačítko pro uložení nového výchozího nastavení.
  3. Pokud se změníte na Drop , přidejte jakákoli další pravidla brány firewall potřebná k tomu, aby váš systém mohl stále přistupovat k jiným serverům a poskytovat důležité služby.
  4. Až budete hotovi, klikněte na Použít konfiguraci pro aktivaci nového výchozího nastavení.

Stačí změnit výchozí akci na Drop pro příchozí pakety je snadný způsob, jak zcela odříznout váš systém od sítě a případně jej učinit nepoužitelným. Než tak učiníte, ujistěte se, že povolujete alespoň následující druhy provozu :

  • Všechna navázaná spojení. Vytvořte Povolit pravidlo se stavem připojení nastaveno na Rovno a Stávající připojení vybráno.
  • Připojení související s navázanými, jako jsou datová připojení FTP. Vytvořte Povolit pravidlo se stavem *Připojení* nastaveným na Rovno a Související připojení vybráno.
  • Veškerý provoz na rozhraní zpětné smyčky. Vytvořte Povolit pravidlo s Příchozí rozhraní nastaveno na Rovno a já vybrán.
  • Provoz z vašeho systému do sebe na jeho primárních síťových rozhraních. Pro každé rozhraní vytvořte pravidlo Povolit s *Zdrojovou adresou nebo sítí* a Cílovou adresou nebo sítí nastavte na IP adresu rozhraní.
  • Bezpečné typy ICMP. Vytvořte čtyři Povolit pravidla s *typem paketu ICMP* nastaveným na Rovná se a vybrána echo-odpověď, cíl nedosažitelný, zdroj zhášení a překročení času.

Změna výchozí akce pro předávané pakety na Zahodit nezpůsobí tolik problémů – bude to jen ekvivalent úplného vypnutí přesměrování. Změna výchozí akce pro odchozí pakety na Zahodit je špatný nápad, protože to odřízne veškerý přístup k síti a ve většině případů to pravděpodobně nedává příliš smysl.

Úprava pravidel brány firewall

Webmin lze použít k úpravě jakýchkoli existujících pravidel brány firewall, která byla vytvořena ručně, v jiném programu nebo pomocí tohoto modulu. I když modul nepodporuje všechny dostupné možnosti podmínek a akcí IPtables, stále jej můžete použít k bezpečné úpravě pravidel obsahujících neznámé možnosti. Pouze ty, které Webmin zná, lze změnit a ostatní zůstanou nedotčeny.

Chcete-li upravit pravidlo, postupujte takto:

  1. Na hlavní stránce modulu vyberte tabulku, ve které se pravidlo nachází, ze seznamu vedle položky Zobrazení tabulky IP tlačítko před kliknutím na něj.
  2. Klikněte na akci pravidla, které chcete změnit, v tabulce pro jeho řetězec. Tím se dostanete do editačního formuláře, který je identický s formulářem pro vytvoření zobrazeným na obrázku 19-3.
  3. Změňte akci nebo kteroukoli z podmínek a klikněte na tlačítko Uložit tlačítko pro návrat do seznamu řetězců a pravidel. Nebo chcete-li pravidlo úplně odstranit, klikněte na tlačítko Odstranit knoflík.
  4. Chcete-li změny aktivovat, klikněte na Použít konfiguraci .

Pravidla lze v rámci řetězce posouvat nahoru a dolů pomocí šipek pod Přesunout sloupec na hlavní stránce. Protože firewall vyhodnocuje pravidla v pořadí, může změna jejich pořadí ovlivnit, který provoz je povolen nebo zakázán. Kdykoli vytvoříte nové pravidlo, bude přidáno na konec jeho řetězce, takže může být nutné posunout jej na správnou pozici, aby se dosáhlo požadovaného efektu.

Vytvoření vlastního řetězce

Kromě standardních je možné vytvořit vlastní řetězce pravidel. Rozdíl je v tom, že budou provedeny pouze v případě, že pravidlo v jednom ze standardních řetězců má svou akci nastavenou tak, aby explicitně přeskočilo na vlastní řetězec. Když skončí provádění vlastního řetězce (nebo pravidla s řetězcem ukončení akce se shoduje), vyhodnocení se vrátí do volajícího řetězce. To znamená, že vlastní řetězce lze použít k definování pravidel, která jsou sdílena několika standardními řetězci, namísto opakování stejných pravidel na více místech. Svým způsobem je vlastní řetězec jako podprogram v programovacím jazyce.

Chcete-li vytvořit svůj vlastní řetězec, postupujte takto:

  1. Na hlavní stránce modulu vyberte tabulku, ve které chcete řetězec umístit, z nabídky vedle položky Zobrazení tabulky IP a klikněte na tlačítko. Vlastní řetězce lze volat pouze z jiných řetězců ve stejné tabulce.
  2. Zadejte název svého nového řetězce do textového pole vedle položky Přidat nový řetězec s názvem a poté kliknutím na tlačítko jej vytvořte. Názvy řetězců musí být jedinečné a obecně se skládají pouze z malých písmen a číslic.
  3. Jakmile bude nový řetězec vytvořen, zobrazí se ve spodní části stránky. Můžete použít jeho pravidlo přidání tlačítko pro připojení pravidel, stejně jako u jednoho z normálních řetězců.

Vlastní řetězce nemají výchozí politiku, takže nemají na hlavní stránce tlačítko *Nastavit výchozí akci na*. Pokud provádění řetězce dosáhne konce, řízení se vždy vrátí k volajícímu. Vlastní řetězce však lze odstranit pomocí Odstranit řetězec tlačítko pod jejich tabulkami pravidel.

Vlastní řetězec může obsahovat pravidla, která přeskakují na jiné vlastní řetězce. Řetěz však nemůže přeskakovat sám na sebe, ani nemůžete vytvářet smyčky skákáním na jiný řetěz a skoky zpět na první. I kdyby to bylo možné, byl by to velmi špatný nápad!

Nastavení překladu síťových adres

Pokud máte doma nebo v kanceláři několik systémů propojených sítí LAN a pouze jednu internetovou IP adresu, lze použít překlad síťových adres, aby všechny tyto systémy měly téměř úplný přístup k internetu. NAT skrývá adresy všech systémů ve vnitřní síti LAN za jedinou internetovou adresou a podle potřeby převádí adresy a porty tam a zpět. To umožňuje všem interním systémům vytvářet připojení k libovolnému hostiteli na internetu, jako jsou webové servery, servery DNS, servery POP3 a tak dále. Jediným omezením je, že interní systémy nemohou přijímat připojení od jiných internetových hostitelů, což může způsobit selhání některých protokolů (jako je internetová telefonie a síťové hry).

Kvůli tomuto omezení jsou interní systémy chráněny před většinou útoků z jiných hostitelů na internetu, stejně jako kdybyste blokovali všechny předávané pakety přicházející na externí rozhraní. NAT také usnadňuje přidělování IP adres, protože se nemusíte obávat, že vám dojdou skutečné internetové adresy pro přidělování interním hostitelům, které ve skutečnosti nepotřebují. Z těchto důvodů může mít smysl nastavit NAT ve vaší organizaci, i když to z hlediska sítě není zcela nutné.

NAT funguje tak, že upravuje zdrojovou adresu a port paketů odesílaných interními hostiteli a směrovaných přes firewall. Zdrojová adresa je vždy změněna na externí IP adresu systému firewallu a zdrojový port na náhodně vybraný nepoužitý port. Když se paket s odpovědí vrátí, jeho cílový port se použije k určení původní interní IP adresy klienta a portu, na který má být paket předán.

K nastavení NAT skutečně potřebujete systém se dvěma síťovými rozhraními – jedním pro interní LAN a jedním připojeným k internetu přes dial-up, ISDN nebo širokopásmové připojení. Jakmile to budete mít, postupujte takto :

  1. V interní síti LAN by mělo být ethernetovému rozhraní každého systému přiřazena adresa v privátní síti IP, například 192.168.0.0, včetně systému brány.
  2. Nastavte výchozí router na všech interních systémech na LAN IP adresu systému brány.
  3. Ujistěte se, že brána má povoleno předávání IP v modulu Konfigurace sítě v části Směrování a brány. Další informace o tom, jak to provést, najdete v části NetworkConfiguration.
  4. Na hlavní stránce modulu Linux Firewall v systému brány vyberte Překlad síťových adres ze seznamu vedle položky Zobrazení tabulky IP knoflík. Poté klikněte na tlačítko pro zobrazení řetězců v tabulce NAT.
  5. Klikněte na Přidat pravidlo v Pakety po směrování sekce, která vás přenese do formuláře pro vytvoření pravidla.
  6. Nastavte Akci, kterou chcete provést na Maškarádu .
  7. Chcete-li řídit, které porty bude brána firewall používat pro maskovaná připojení, nastavte Zdrojové porty pro maskování možnost Rozsah portů a do polí vedle zadejte počáteční a koncová čísla portů. Obvykle stačí vybrat Jakýkoli nechat bránu firewall používat jakýkoli dostupný port bude fungovat dobře.
  8. Změňte Rozhraní odchozí pošty stav rovná se a vyberte externí síťové rozhraní ze seznamu vedle něj, například ppp0.
  9. Kliknutím na tlačítko Uložit v dolní části stránky se vrátíte na seznam řetězců a pravidel.
  10. Klikněte na Použít konfiguraci aby bylo nové pravidlo (a NAT) aktivní.

Je možné kombinovat NAT s dalšími pravidly firewallu v Filtrování paketů tabulky pro blokování připojení k samotnému hostiteli brány firewall. Můžete také přidat pravidla odepření k řetězci *Pakety po směrování*, abyste zabránili určitým interním hostitelům v přístupu k Internetu nebo omezili porty, ke kterým se mohou připojit.

Výše uvedené pokyny budou fungovat v jakékoli síti, která má systém brány s jedinou internetovou IP adresou. Pokud je však adresa vaší brány statická, je lepší vybrat Source NAT v kroku 6 namísto Maškaráda . Při použití maskování budou všechna spojení předávaná firewallem ztracena, pokud dojde k výpadku externího síťového rozhraní, i když se znovu obnoví se stejnou IP adresou. Pokud má externí rozhraní dynamicky přiřazenou adresu, nezáleží na tom, protože spojení by se stejně ztratilo. Ale při použití statické IP adresy je možné udržet spojení i přes krátký výpadek sítě.

Chcete-li jej použít, v kroku 6 nastavte Akci, kterou chcete provést na Zdroj NAT . Poté nastavte IPy a porty pro SNAT do rozsahu IP a do pole vedle zadejte statickou externí IP adresu vašeho systému. Všechny ostatní kroky v procesu nastavení NAT jsou stejné.

Nastavení transparentního proxy

Mnoho sítí používá proxy servery, jako je Squid, k ukládání běžně používaných webových stránek do mezipaměti, a tím ke snížení šířky pásma používaného klienty pro procházení webu. Normálně však musí být každý klient nakonfigurován tak, aby místo přímého připojení k webovým stránkám používal proxy server. Ve velké síti s mnoha klientskými systémy nebo u poskytovatele internetových služeb, kde je vlastní mnoho různých lidí, může být tato individuální konfigurace obtížná. Je to horší tím, že každý prohlížeč má vlastní nastavení proxy serveru, takže pokud si uživatel nainstaluje nový prohlížeč, bude pravděpodobně ve výchozím nastavení proxy nepoužívat vůbec.

Naštěstí existuje řešení – transparentní proxy. Pokud všechny klientské systémy přistupují k internetu přes bránu se spuštěnou bránou firewall IPtables, lze ji nakonfigurovat tak, aby přesměrovala připojení na port 80 (používaný většinou webových stránek) k serveru proxy na jiném systému. To znamená, že klienti nemusí být konfigurováni pro přístup k proxy, protože jakékoli požadavky HTTP, které učiní, budou transparentně odeslány na proxy server bez jejich vědomí.

Chcete-li nastavit transparentní proxy, postupujte takto:

  1. Na hlavní stránce modulu Linux Firewall v systému brány vyberte Překlad síťových adres from the list next to the Showing IPtable button before clicking it.
  2. In the Packets before routing section, click on Add rule to go to the rule creation form. The rule being added will redirect all traffic on port 80 forwarded by the firewall system to a proxy server.
  3. Set the Action to take to Destination NAT .
  4. In the IPs and ports for DNAT field, select IP range and enter the address of the proxy server system into the field next to it. If the proxy is running on the same system, enter its Ethernet IP address (not 127.0.0.1). In the field next to Port range , enter the port the proxy server is running on, such as 8080.
  5. Set the Incoming interface to Equals and select the internal LAN interface, such as eth0.
  6. Set the Network protocol to Equals and select TCP .
  7. If the proxy is on another system that is also on the internal LAN, make sure that its connections on port 80 will not be proxied by the firewall as well! To do this, set the *Source address or network* condition to Does not equal and enter the IP address of the proxy server into the field next to it. If the proxy is on a different LAN or is the firewall system, this is not necessary.
  8. Set the Destination TCP or UDP port to Equals and enter 80 into the Port(s) pole.
  9. Click the Create button to save the rule and return to the module's main page.
  10. Click on Add rule under Packets after routing to bring up the rule creation form again. This rule will forward packets back in the other direction from the proxy to the client. If your firewall system is also running the proxy server, this rule is not necessary and you can skip to step 16.
  11. For the Action to take , select Source NAT .
  12. In the IPs and ports for SNAT field, select IP range and enter the LAN IP address of the firewall server into the field next to it.
  13. Set the Destination address or network to Equals and enter the IP address of the proxy server into the field next to it.
  14. Set the Network protocol to Equals and select TCP .
  15. Klikněte na tlačítko Vytvořit button to add the new rule.
  16. Back on the main page, click the Apply Configuration knoflík. All packets on port 80 forwarded by your firewall will now be sent to the proxy server instead.
  17. Assuming you are running the Squid proxy server (version 2.4 or above) on the proxy system, you can use Webmin to configure it. Otherwise, there is no point reading beyond this step.
  18. On the proxy system, enter the Squid Proxy Server module and click on Miscellaneous Options.
  19. Set the HTTP Accel Host field to Virtual , and the *HTTP Accel Port* to 80 .
  20. Set both the HTTP Accel With Proxy and *HTTP Accel Uses Host Header* fields to Yes.
  21. Nakonec klikněte na Uložit to return to the main page of the Squid module, and click the Apply Changes link near the top of the page to activate the new configuration.

From now on, any HTTP requests on port 80 forwarded by your firewall will be sent to the proxy server for processing. Transparent proxying can be safely used at the same time as conventional NAT by creating a masquerade rule in the packets after routing chain, as explained in the instructions in the *Setting up network address translation* section above.

Setting up port forwarding

On a network that uses NAT to hide internal systems from the Internet, outside hosts cannot connect directly those on the internal network. This is great for security, but can be annoying if there is some internal service that you do want to make available to the outside world. For example, your mail server system may not be the firewall host, which would normal make it inaccessible from the Internet. Fortunately, there is a solution to this problem - port forwarding.

This lets you re-direct all connections to some port on the firewall system to a different host and port on your internal network. For a mail server, all data received on port 25 might be send to the same port on the host that is actually being used to host user email. Of course, this would make it impossible for your firewall system to receive email itself.

To set up port forwarding, follow these steps :

  1. On the main page of the Linux Firewall module on the gateway system, select Network address translation from the list next to the Showing IPtable button before clicking it.
  2. In the Packets before routing section, click on Add rule to go to the rule creation form. The rule being added will redirect all external traffic received by the firewall to some internal address.
  3. Set the Action to take to Destination NAT .
  4. In the IPs and ports for DNAT field, select IP range and enter the address of the internal host into the adjacent text box, such as 192.168.1.10 . In the Port range box, enter the port number on the internal host to which data should be sent, such as 25 for SMTP, 110 for POP3 or 80 for HTTP.
  5. Set the Network protocol to Equals and select TCP .
  6. In the Destination TCP or UDP port field, select Equals from the menu and enter the external port number for which forwarding should be done into the adjacent text field. Typically this will be the same as the port entered in step 4.
  7. Klikněte na tlačítko Uložit button to create the rule and return to the main page, and then click the Apply Configuration knoflík.

The only problem with this method is that connections from inside your network to the firewall system will not be forwarded to the other host.

Firewall rule conditions

When creating a firewall rule, you can select many different conditions to control which packets the rule matches. A rule's action will only be executed if all the conditions are matched. Each condition can be in one of three states, chosen by the menu next to it on the rule creation form :

  • Ignore The condition will be totally ignored when deciding whether the rule matches or not.
  • Equals The rule will only match if the packet matches the address, port, interface or whatever was selected for this condition.
  • Does not equal The rule will only match if the packet does NOT match whatever was selected for this condition.

The available conditions and what each matches are listed in the table below. Note that some are not available in all tables and chains.

Remember that each condition is applied on a per-packet basis, and that a single TCP connection may involve multiple packets flowing in both directions.

Obsah

Viz také

  • Shoreline Firewall
  • Shorewall6 Firewall
  • FirewallD

Webmin
  1. Začínáme s linuxovými firewally

  2. Linuxové jmenné prostory

  3. Jak protokolovat Linux IPTables Firewall zahozené pakety do souboru protokolu

  1. Iptables Tutorial:Ultimate Guide to Linux Firewall

  2. Jak deaktivovat firewall na CentOS 8 Linux

  3. proč linux bridge nefunguje

  1. Filtrování paketů ve Wiresharku na Kali Linuxu

  2. W Command v Linuxu

  3. Příkaz Tcpdump v Linuxu