Konfigurace brány firewall na CentOS 7

Firewall nainstalovaný v operačním systému se používá k zabránění neoprávněnému provozu v průchodu počítačovými sítěmi. Ručně nebo automaticky vytvoříte speciální pravidla pro bránu firewall, která je zodpovědná za řízení přístupu. V OS vyvinutém na linuxovém jádře má CentOS 7 zabudovaný firewall a je spravován pomocí firewallu. FirewallD je ve výchozím nastavení povolen a my bychom rádi hovořili o jeho konfiguraci dnes.

Konfigurace brány firewall na CentOS 7

Jak bylo uvedeno výše, standardní brána firewall na CentOS 7 je přiřazena k nástroji FirewallD. Proto bude nastavení brány firewall zvažováno na příkladu tohoto nástroje. Pravidla filtrování můžete nastavit pomocí stejných iptables, ale to se provádí poněkud jiným způsobem. Doporučujeme, abyste se seznámili s konfigurací uvedeného nástroje kliknutím na následující odkaz a my začneme analyzovat FirewallD.

Viz také: Konfigurace iptables na CentOS 7

Koncepty brány firewall

Existuje několik zón - sady pravidel pro řízení provozu založeného na důvěře v sítě. Všechny z nich mají své vlastní zásady, z nichž celá tvoří konfiguraci firewallu. Každé zóně je přiřazeno jedno nebo více síťových rozhraní, což také umožňuje nastavit filtrování. Použitelná pravidla přímo závisí na použitém rozhraní. Například, když je připojen k veřejně dostupnému Wi-Fi, firewall zvýší úroveň kontroly a v domácí síti otevře další přístup pro účastníky řetězce. V této bráně firewall existují takové zóny:

  • trusted - maximální úroveň důvěry ve všechna zařízení v síti;
  • je skupina lokální sítě. Existuje důvěra v prostředí, ale příchozí spojení jsou k dispozici pouze pro určité stroje;
  • work - pracovní prostor. Ve většině zařízení existuje důvěra a aktivují se i další služby;
  • dmz - zóna pro izolované počítače. Taková zařízení jsou odpojena od zbytku sítě a umožňují pouze určitý příchozí provoz;
  • internal zón vnitřních sítí. Důvěra je aplikována na všechny stroje, otevírají se další služby;
  • external - zpět na předchozí zónu. V externích sítích je aktivní NAT maskování, zavírání interní sítě, ale neblokuje schopnost získat přístup;
  • public zóna veřejných sítí s nedůvěrou ke všem zařízením a individuální příjem příchozího provozu;
  • block - všechny příchozí požadavky jsou resetovány chybou icmp-host- enabled nebo icmp6-adm-enabled ;
  • drop - minimální míra důvěry. Příchozí spojení jsou vynechána bez upozornění.

Politici sami jsou dočasní a stálí. Když se parametry objeví nebo upravují, akce brány firewall se okamžitě změní bez nutnosti restartu. Pokud byla použita dočasná pravidla, budou po restartu Firewallu resetovány. Trvalé pravidlo se nazývá, že se bude uplatňovat trvale při použití argumentu —permanent .

Povolte bránu firewall brány firewall

Nejprve je třeba spustit FirewallD nebo se ujistit, že je v aktivním stavu. Pravidla pro bránu firewall použije pouze fungující démon (program spuštěný na pozadí). Aktivace probíhá pouze několika kliknutími:

  1. Spusťte klasický "Terminál" libovolnou vhodnou metodou, například prostřednictvím nabídky "Aplikace" .
  2. Spuštění terminálu pro další konfiguraci firewallu na CentOS 7

  3. Zadejte sudo systemctl start firewalld.service a stiskněte klávesu Enter .
  4. Spuštění služby Firewall v operačním systému CentOS 7

  5. Správa nástrojů je prováděna jménem superuživatele, takže se musíte autentizovat zadáním hesla.
  6. Zadání hesla pro spuštění služeb brány firewall v terminálu CentOS 7

  7. Aby bylo zajištěno, že funkce služby, zadejte firewall-cmd --state .
  8. Zobrazení aktuálního stavu brány firewall prostřednictvím terminálu v CentOS 7

  9. Potvrďte pravost v otevřeném grafickém okně.
  10. Zadání hesla pro ověřování při prohlížení stavu CentOS 7 firewall

  11. Zobrazí se nový řádek. Hodnota „running“ znamená, že firewall pracuje.
  12. Zobrazuje aktuální stav brány firewall v operačním systému CentOS 7

Pokud budete chtít bránu firewall dočasně nebo trvale vypnout, doporučujeme použít pokyny uvedené v našem dalším článku na následujícím odkazu.

Další podrobnosti: Zakažte bránu firewall na CentOS 7

Zobrazit výchozí pravidla a dostupné zóny

Firewall má i v běžném režimu k dispozici vlastní specifická pravidla a zóny. Než začnete upravovat zásady, doporučujeme vám seznámit se s aktuální konfigurací. To se provádí pomocí jednoduchých příkazů:

  1. Příkaz firewall-cmd --get-default-zone pomůže firewall-cmd --get-default-zone .
  2. Zobrazení výchozí zóny brány firewall na CentOS 7

  3. Po jeho aktivaci se zobrazí nový řádek, ve kterém bude zobrazen požadovaný parametr. Například na obrázku níže je „veřejná“ zóna považována za aktivní.
  4. Zobrazení výchozí zóny brány firewall na CentOS 7

  5. Několik zón však může být aktivní současně, navíc jsou vázány na samostatné rozhraní. Tyto informace získáte prostřednictvím firewall-cmd --get-active-zones .
  6. Zobrazit všechny aktivní zóny brány firewall na CentOS 7

  7. Příkaz firewall-cmd --list-all zobrazí pravidla definovaná pro výchozí zónu. Viz následující obrázek. Vidíte, že pravidlo „default“ je přiřazeno aktivní zóně „public“ - výchozí operaci, rozhraní „enp0s3“ a dvě služby.
  8. Zobrazit základní pravidla brány firewall prostřednictvím terminálu na CentOS 7

  9. Pokud potřebujete znát všechny zóny firewallu, zadejte firewall-cmd --get-zones .
  10. Seznam všech dostupných zón firewall prostřednictvím terminálu na CentOS 7

  11. Parametry specifické zóny jsou definovány přes firewall-cmd --zone=name --list-all , kde name je název zóny.
  12. Zobrazení pravidel určené zóny brány firewall prostřednictvím terminálu na CentOS 7

Po určení potřebných parametrů můžete přistoupit k jejich úpravě a přidání. Podívejme se blíže na některé z nejoblíbenějších konfigurací.

Konfigurace zón rozhraní

Jak víte z výše uvedených informací, každé rozhraní má svou vlastní výchozí zónu. Zůstane v něm, dokud se nastavení nezmění uživatelem nebo programově. Je možné manuálně přenést rozhraní do zóny pro jednu relaci a provede se příkazem sudo firewall-cmd --zone=home --change-interface=eth0 . Výsledek „úspěch“ znamená, že přenos byl úspěšný. Připomeňme, že tato nastavení jsou resetována ihned po restartu firewallu.

Přiřazení specifického rozhraní zóně brány firewall v CentOS 7

S takovou změnou parametrů je třeba mít na paměti, že činnost služeb může být resetována. Některé z nich nepodporují provoz v určitých zónách, například SSH, i když je k dispozici v „domově“ , ale služba odmítne pracovat v uživatelských nebo speciálních službách. Můžete firewall-cmd --get-active-zones , že rozhraní bylo úspěšně navázáno na novou pobočku zadáním firewall-cmd --get-active-zones .

Zobrazit jádro brány firewall a jeho rozhraní na CentOS 7

Pokud chcete obnovit předchozí nastavení, restartujte bránu firewall: sudo systemctl restart firewalld.service .

Restartování brány firewall po provedení změn CentOS 7

Někdy není vždy vhodné změnit zónu rozhraní o jednu relaci. V tomto případě budete muset upravit konfigurační soubor tak, aby všechna nastavení byla zadána trvale. K tomu doporučujeme použít nano textový editor, který je nainstalován z oficiálního sudo yum install nano repozitáře sudo yum install nano . Zbývá provést následující akce:

  1. Otevřete konfigurační soubor přes editor zadáním sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 , kde eth0 je název požadovaného rozhraní.
  2. Otevření konfiguračního souboru rozhraní brány firewall v CentOS 7

  3. Chcete-li provést další akci, ověřte svůj účet.
  4. Zadání hesla pro otevření konfiguračního souboru rozhraní v CentOS 7

  5. Najděte parametr "ZONE" a změňte jeho hodnotu na požadovanou, například public nebo home .
  6. Změna zóny rozhraní prostřednictvím konfiguračního souboru v CentOS 7

  7. Uložte změny stisknutím kláves Ctrl + O.
  8. Záznam změn v textovém editoru CentOS 7

  9. Neměňte název souboru, stiskněte klávesu Enter .
  10. Přiřazení souborů k záznamu změn v CentOS 7 Text Editoru

  11. Ukončete textový editor pomocí Ctrl + X.
  12. Po změně CentOS 7 ukončete textový editor

Nyní bude zóna rozhraní to, co jste zadali, až do další úpravy konfiguračního souboru. Aby se aktualizovaná nastavení projevila, spusťte sudo systemctl restart network.service a sudo systemctl restart firewalld.service .

Nastavení výchozí zóny

Již jsme ukázali příkaz, který nám umožnil zjistit výchozí zónu. Lze ji také změnit nastavením volby podle vašeho výběru. K tomu stačí registrovat sudo firewall-cmd --set-default-zone=name v konzole, kde name je název požadované zóny.

Přiřazení výchozí zóny brány firewall v CentOS 7

Úspěch příkazu bude označen nápisem „úspěch“ na samostatném řádku. Poté budou všechna aktuální rozhraní vázána na zadanou zónu, pokud není v konfiguračních souborech uvedeno jinak.

Úspěšné přiřazení výchozí zóny v CentOS 7

Vytváření pravidel pro programy a utility

Na samém počátku článku jsme hovořili o provozu každé zóny. Definování služeb, obslužných programů a programů v těchto pobočkách umožní každému z nich aplikovat jednotlivé parametry pro jednotlivé požadavky uživatelů. Nejprve vám doporučujeme seznámit se s úplným seznamem služeb, které jsou v současné době k dispozici: firewall-cmd --get-services .

Příkaz k zobrazení služeb CentOS 7 dostupných v systému.

Výsledek se zobrazí přímo v konzole. Každý server je oddělen mezerou a v seznamu můžete snadno najít nástroj, který vás zajímá. Pokud chybí požadovaná služba, měla by být dodatečně instalována. O pravidlech instalace si přečtěte oficiální dokumentaci k softwaru.

Seznam dostupných služeb v CentOS 7

Výše uvedený příkaz zobrazuje pouze názvy služeb. Podrobné informace o každém z nich jsou získány prostřednictvím individuálního souboru umístěného podél cesty /usr/lib/firewalld/services . Tyto dokumenty jsou ve formátu XML, například cesta k SSH vypadá takto: /usr/lib/firewalld/services/ssh.xml a dokument má následující obsah:

SSH
Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.

Je aktivována ruční podpora služby v určité zóně. V terminálu byste měli nastavit příkaz sudo firewall-cmd --zone=public --add-service=http , kde --zone = public je zóna pro aktivaci a --add-service = http je název služby. Tato změna se projeví pouze v rámci jedné relace.

Přidání služby do určité zóny firewall CentOS 7

Trvalé přidávání se provádí přes sudo firewall-cmd --zone=public --permanent --add-service=http a výsledek „úspěchu“ označuje úspěšné dokončení operace.

Trvalé přidávání služby do zóny brány firewall CentOS 7

Úplný seznam trvalých pravidel pro konkrétní zónu můžete zobrazit zobrazením seznamu v samostatném řádku konzoly: sudo firewall-cmd --zone=public --permanent --list-services .

Zobrazení seznamu služeb brány firewall CentOS 7

Řešení problému nedostatku přístupu ke službě

Standardně jsou nejoblíbenější a nejbezpečnější služby uvedeny v pravidlech brány firewall tak, jak je povoleno, ale blokuje některé standardní aplikace nebo aplikace třetích stran. V tomto případě bude uživatel muset ručně změnit nastavení, aby vyřešil problém s přístupem. To lze provést dvěma různými způsoby.

Přesměrování portů

Jak víte, všechny síťové služby používají specifický port. Je snadno detekován bránou firewall a může blokovat zámky. Chcete-li se vyhnout takovým akcím firewallu, musíte otevřít požadovaný port pomocí sudo firewall-cmd --zone=public --add-port=0000/tcp , kde --zone = public je zóna pro port, --add-port = 0000 / tcp - číslo portu a protokol. Volba firewall-cmd --list-ports zobrazí seznam otevřených portů.

Otevření portu ve specifické zóně brány firewall CentOS 7

Pokud potřebujete otevřít porty, které jsou v dosahu, použijte linku sudo firewall-cmd --zone=public --add-port=0000-9999/udp , kde --add-port = 0000-9999 / udp je rozsah portů a jejich protokolu.

Otevření řady portů v konkrétní zóně brány firewall CentOS 7

Výše uvedené příkazy umožní pouze otestovat použití těchto parametrů. Pokud to bylo úspěšné, měli byste přidat stejné porty do trvalého nastavení a to se provede zadáním sudo firewall-cmd --zone=public --permanent --add-port=0000/tcp nebo sudo firewall-cmd --zone=public --permanent --add-port=0000-9999/udp . Seznam otevřených trvalých portů je zobrazen jako: sudo firewall-cmd --zone=public --permanent --list-ports .

Definice služby

Jak vidíte, přidání portů nezpůsobuje žádné potíže, ale postup je složitý, když se používá velký počet aplikací. Je obtížné sledovat všechny používané porty, což znamená, že definice služby bude správnější:

  1. Konfigurační soubor zkopírujte napsáním sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml , kde service.xml je název souboru služby a example.xml je název jeho kopie.
  2. Kopírování souboru nastavení brány firewall do CentOS 7

  3. Otevřete kopii pro úpravy v libovolném textovém editoru, například sudo nano /etc/firewalld/services/example.xml .
  4. Spuštění kopírovaného servisního souboru CentOS 7

  5. Vytvořili jsme například kopii služby HTTP. V dokumentu vidíte v podstatě různé metadata, například krátký název a popis. Ovlivňuje pouze změnu čísla portu a protokolu. Nad řádkem " » Mělo by být přidáno otevřete port. tcp je používaný protokol a 0000 je číslo portu.
  6. Změny v souboru služby pro otevírání portů na CentOS 7

  7. Uložte všechny změny ( Ctrl + O ), zavřete soubor ( Ctrl + X ) a restartujte bránu firewall, aby se nastavení sudo firewall-cmd --reload přes sudo firewall-cmd --reload . Poté se služba zobrazí v seznamu dostupných služeb, které lze zobrazit přes firewall-cmd --get-services .
  8. Restartování služby brány firewall v CentOS 7

Stačí zvolit nejvhodnější metodu pro řešení problému s přístupem ke službě a postupujte podle uvedených pokynů. Jak vidíte, všechny akce jsou prováděny poměrně snadno a neměly by vzniknout žádné potíže.

Vytváření vlastních zón

Již víte, že v Firewallu bylo zpočátku vytvořeno velké množství různých zón s určitými pravidly. Existují však situace, kdy správce systému potřebuje vytvořit zónu uživatele, například „publicweb“ pro nainstalovaný webový server nebo „privateDNS“ pro server DNS. V těchto dvou příkladech analyzujeme přidávání poboček:

  1. Vytvořte dvě nové stálé zóny pomocí sudo firewall-cmd --permanent --new-zone=publicweb a sudo firewall-cmd --permanent --new-zone=privateDNS .
  2. Přidání nových uživatelských zón firewallu CentOS 7

  3. Budou k dispozici po načtení nástroje sudo firewall-cmd --reload . Chcete-li zobrazit trvalé zóny, zadejte sudo firewall-cmd --permanent --get-zones .
  4. Zobrazení dostupných zón brány firewall na CentOS 7

  5. Přiřaďte jim potřebné služby, například „SSH“ , „HTTP“ a „HTTPS“ . To se provádí pomocí příkazů sudo firewall-cmd --zone=publicweb --add-service=ssh , sudo firewall-cmd --zone=publicweb --add-service=http a sudo firewall-cmd --zone=publicweb --add-service=https , kde --zone = publicweb je název zóny, kterou chcete přidat. Aktivitu služeb si můžete prohlédnout firewall-cmd --zone=publicweb --list-all .
  6. Přidání služeb do uživatelské zóny CentOS 7

V tomto článku jste se naučili vytvářet vlastní zóny a přidávat k nim služby. Již jsme výše popsali nastavení implicitně a přiřazení rozhraní, stačí zadat správné názvy. Po provedení trvalých změn nezapomeňte restartovat bránu firewall.

Jak vidíte, firewall FirewallD je poměrně velký nástroj, který vám umožní vytvořit nejflexibilnější konfiguraci firewallu. Zůstane jen ujistit se, že nástroj je spuštěn se systémem a zadaná pravidla okamžitě zahájí svou práci. Udělejte to příkazem sudo systemctl enable firewalld .