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.
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
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; 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
.
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:
sudo systemctl start firewalld.service
a stiskněte klávesu Enter . firewall-cmd --state
. 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
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ů:
firewall-cmd --get-default-zone
pomůže firewall-cmd --get-default-zone
. firewall-cmd --get-active-zones
. 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. firewall-cmd --get-zones
. firewall-cmd --zone=name --list-all
, kde name je název zóny. 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í.
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.
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
.
Pokud chcete obnovit předchozí nastavení, restartujte bránu firewall: sudo systemctl restart firewalld.service
.
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:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
, kde eth0 je název požadovaného rozhraní. public
nebo home
. 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
.
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.
Ú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.
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
.
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.
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.
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.
Ú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
.
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ů.
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.
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
.
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ší:
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. sudo nano /etc/firewalld/services/example.xml
. 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
. 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.
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:
sudo firewall-cmd --permanent --new-zone=publicweb
a sudo firewall-cmd --permanent --new-zone=privateDNS
. sudo firewall-cmd --reload
. Chcete-li zobrazit trvalé zóny, zadejte sudo firewall-cmd --permanent --get-zones
. 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
. 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
.