Každý slyšel o firewallech, i když jen jako o zápletce v televizním dramatu o počítačovém zločinu. Mnoho lidí také ví, že jejich počítač (pravděpodobně) používá firewall, ale méně lidí ví, jak v případě potřeby převzít kontrolu nad firewallem.
Firewally blokují nežádoucí síťový provoz, ale různé sítě mají různé úrovně ohrožení. Pokud jste například doma, pravděpodobně důvěřujete ostatním počítačům a zařízením ve vaší síti mnohem více, než když jste venku v místní kavárně pomocí veřejné WiFi. Můžete doufat, že váš počítač bude rozlišovat mezi důvěryhodnou a nedůvěryhodnou sítí, nebo se můžete sami naučit spravovat nebo alespoň ověřovat svá nastavení zabezpečení.
Jak fungují brány firewall
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Komunikace mezi zařízeními v síti probíhá přes brány zvané porty . Port v tomto kontextu neznamená fyzické připojení, jako je port USB nebo port HDMI. V síťovém žargonu je port zcela virtuálním konceptem představujícím cesty pro určitý typ dat, které buď dorazí do počítače, nebo z něj odcházejí. Tento systém se mohl jmenovat jakkoli, například „spojení“ nebo „dveře“, ale byly pojmenovány porty přinejmenším již v roce 1981, a to je název, který se používá dodnes. Jde o to, že na žádném portu není nic zvláštního; jsou to jen způsob, jak určit adresu, kde může docházet k přenosu dat.
V roce 1972 byl zveřejněn seznam čísel portů (tehdy nazývaných „zásuvky“), který se od té doby vyvinul do sady dobře známých standardních čísel portů, která pomáhají řídit specifické druhy provozu. Například při návštěvě webové stránky denně přistupujete k portům 80 a 443, protože většina všech na internetu implicitně nebo explicitně souhlasila s tím, že data jsou přenášena z webových serverů přes tyto porty. Tuto teorii můžete otestovat otevřením webového prohlížeče a přechodem na webovou stránku s nestandardním portem připojeným k adrese URL. Pokud například přejdete na example.com:42 , váš požadavek byl zamítnut, protože example.com nenabízí webovou stránku na portu 42.
Pokud znovu navštívíte stejný web na portu 80, získáte web podle očekávání. Port 80 můžete zadat pomocí :80 na konci adresy URL, ale protože port 80 je standardní port pro provoz HTTP, váš webový prohlížeč standardně předpokládá port 80.
Když počítač, stejně jako webový server, očekává provoz na konkrétním portu, je přijatelné (a nutné) mít port otevřený pro provoz. Nebezpečí spočívá v ponechání otevřených portů, na kterých nemáte důvod očekávat provoz, a přesně k tomu slouží firewall.
Nainstalovat firewall
Existuje mnoho rozhraní pro konfiguraci brány firewall. Tento článek se týká firewallu , který se integruje se Správcem sítě na ploše a firewall-cmd v terminálu. Mnoho distribucí Linuxu se dodává s nainstalovanými nástroji. Pokud tomu tak není, můžete tento článek brát jako obecnou radu pro správu brány firewall a aplikovat ji na to, co používáte, nebo si můžete nainstalovat firewalld .
Na Ubuntu musíte například povolit vesmír úložiště, deaktivujte výchozí ufw firewall a poté nainstalujte firewalld :
$ sudo systemctl disable ufw
$ sudo add-apt-repository universe
$ sudo apt install firewalld
Fedora, CentOS, RHEL, OpenSUSE a mnoho dalších zahrnují firewalld ve výchozím nastavení.
Bez ohledu na vaši distribuci, aby byl firewall účinný, musí být aktivní a nastaven tak, aby se načítal při bootování. Čím méně budete muset přemýšlet o údržbě firewallu, tím lépe.
$ sudo systemctl enable --now firewalld
Vyberte zónu pomocí Správce sítě
Pravděpodobně se každý den připojujete k mnoha různým sítím. Jste na jedné síti v práci, na druhé v kavárně a na další doma. Váš počítač dokáže zjistit, kterou síť používáte častěji než ostatní, ale neví, které důvěřujete.
zóna brány firewall obsahuje předvolby, které rozhodují o tom, jaké porty otevřít a zavřít. Pomocí zón si můžete vybrat politiku, která dává největší smysl pro síť, ve které se právě nacházíte.
Chcete-li zobrazit seznam dostupných zón, otevřete Editor připojení Správce sítě, který najdete v nabídce Aplikace, nebo pomocí nm-connection-editor & příkaz.
V seznamu síťových připojení poklepejte na svou aktuální síť.
V zobrazeném okně konfigurace sítě klikněte na kartu Obecné.
Na panelu Obecné klikněte na rozevírací nabídku vedle položky Zóna brány firewall. Zobrazí se seznam všech dostupných zón.
Stejný seznam můžete získat pomocí tohoto příkazu terminálu:
$ sudo firewall-cmd --get-zones
Názvy zón naznačují, co měli jejich návrháři na mysli při jejich vytváření, ale specifika jakékoli zóny můžete získat pomocí tohoto příkazu terminálu:
$ sudo firewall-cmd --zone work --list-all
work
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client
ports:
protocols:
[...]
V tomto příkladu práce zóna je nakonfigurována tak, aby povolovala příchozí provoz klientů SSH a DHCPv6, ale omezuje jakýkoli jiný příchozí provoz, který uživatel výslovně nepožaduje. (Jinými slovy, práce zóna neblokuje provoz odezvy HTTP, když navštívíte web, ale ano ano odmítnout požadavek HTTP na vašem portu 80.)
Prohlédněte si každou zónu, abyste se seznámili s provozem, který každá umožňuje. Nejběžnější jsou:
- Práce: Použijte toto, když jste v síti, které většinou důvěřujete. SSH, DHCPv6 a mDNS jsou povoleny a podle potřeby můžete přidat další. Tato zóna má být výchozím bodem pro vlastní pracovní prostředí založené na vašich každodenních kancelářských požadavcích.
- Veřejné: Pro sítě, kterým nedůvěřujete. Tato zóna je stejná jako pracovní zóna, ale pravděpodobně byste nepřidali stejné výjimky jako vaše pracovní zóna.
- Vypustit: Všechna příchozí spojení jsou zrušena bez odpovědi. Toto je tak blízko utajenému režimu, jakého se můžete dostat bez úplného vypnutí sítě, protože jsou možná pouze odchozí síťová připojení (i když obyčejný skener portů může detekovat váš počítač od odchozího provozu, takže si tuto zónu nepleťte s maskováním). přístroj). Toto je pravděpodobně nejbezpečnější zóna, když používáte veřejné Wi-Fi, a rozhodně nejlepší, když máte důvod se domnívat, že síť je nepřátelská.
- Blokovat: Všechna příchozí spojení jsou odmítnuta se zprávou prohlašující, že požadovaný port je zakázán. Jsou možná pouze síťová připojení, která iniciujete. Toto je "přátelská" verze zóny přetažení, protože i když není otevřen žádný port pro příchozí provoz, port verbálně odmítá nezahájené připojení.
- Domů: Toto použijte, když důvěřujete ostatním počítačům v síti. Jsou přijímána pouze vybraná příchozí připojení a podle potřeby můžete přidat další.
- Interní: Podobně jako pracovní zóna je určena pro interní sítě, kde většinou důvěřujete ostatním počítačům. Podle potřeby můžete otevřít více portů a služeb, ale stále budete udržovat jinou sadu pravidel, než máte ve své pracovní zóně.
- Důvěryhodný: Všechna síťová připojení jsou akceptována. Dobré pro odstraňování problémů nebo v sítích, kterým absolutně důvěřujete.
Přiřazení zóny k síti
Zónu můžete přiřadit jakémukoli síťovému připojení, které vytvoříte. Kromě toho můžete každému síťovému rozhraní (ethernetový kabel, WiFi atd.), které se připojí ke každé síti, přiřadit jinou zónu.
Vyberte požadovanou zónu a kliknutím na tlačítko Uložit změnu potvrďte.
Nejjednodušší způsob, jak si zvyknout přiřazovat zónu k síťovému rozhraní, je starat se o sítě, které používáte nejčastěji. Přiřaďte domácí zónu domácí síti, pracovní zónu pracovní síti a veřejnou síť vaší oblíbené knihovně nebo síti kaváren.
Jakmile přiřadíte zónu všem svým obvyklým sítím, pokuste se přiřadit zónu další nové síti, ke které se připojíte, ať už je to nová kavárna nebo domácí síť vašeho partnera. Přiřazení zón je nejlepší způsob, jak posílit své vědomí, že sítě nejsou všechny stejné a že nejste o nic bezpečnější než kdokoli jiný jen proto, že používáte Linux.
Výchozí zóna
Namísto výzvy k zadání zóny pokaždé, když se připojíte k nové síti, firewalld přiřadí neznámé síti výchozí zónu. Otevřete terminál a zadejte tento příkaz, abyste získali výchozí zónu:
$ sudo firewall-cmd --get-default
public
V tomto příkladu je výchozí veřejná zóna. Očekává se, že budete udržovat veřejnou zónu vysoce omezující, takže je to docela bezpečná zóna pro přiřazení neznámých sítí. Místo toho však můžete nastavit vlastní výchozí.
Pokud jste například paranoidnější než většina ostatních nebo pokud víte, že často používáte sítě, kterým máte důvod nedůvěřovat, můžete jako výchozí přiřadit vysoce omezující zónu:
$ sudo firewall-cmd --set-default-zone drop
success
$ sudo firewall-cmd --get-default
drop
Nyní bude každá nová síť, ke které se připojíte, podléhat pravidlům zóny poklesu, pokud ji ručně nezměníte na něco méně omezujícího.
Přizpůsobení zón otevřením portů a služeb
Vývojáři Firewalldu nemají v úmyslu, aby jejich definice zón uspokojily potřeby všech různých sítí a úrovní důvěry v existenci. Jsou to jen výchozí body, které můžete použít a přizpůsobit.
Nemusíte toho moc vědět o firewallech, abyste mohli otevírat a zavírat porty na základě druhu síťové aktivity, o které víte, že ji generujete.
Předdefinované služby
Nejjednodušší způsob, jak přidat oprávnění k vašemu firewallu, je přidat předdefinovanou službu. Přísně vzato, pokud váš firewall ví, žádná taková věc jako „služba“ neexistuje, protože firewally rozumí číslům portů a typům protokolů. Firewalld však poskytuje kolekce portů a protokolů na základě standardů a konvencí.
Pokud jste například webový vývojář a chcete otevřít svůj počítač ve své místní síti, aby vaši kolegové viděli web, který vytváříte, přidejte http a https služby. Pokud jste hráč a provozujete open source server hlasového chatu murmur pro svou gildu, přidejte murmur servis. K dispozici je mnoho dalších služeb, které můžete zobrazit pomocí tohoto příkazu:
$ sudo firewall-cmd --get-services
amanda-client amanda-k5-client bacula bacula-client \
bgp bitcoin bitcoin-rpc ceph cfengine condor-collector \
ctdb dhcp dhcpv6 dhcpv6-client dns elasticsearch \
freeipa-ldap freeipa-ldaps ftp [...]
Pokud vidíte službu, kterou potřebujete, přidejte ji do aktuální konfigurace brány firewall, například:
$ sudo firewall-cmd --add-service murmur
Tento příkaz otevře všechny porty a protokoly potřebné pro konkrétní službu ve vaší výchozí zóně , ale pouze do doby, než restartujete počítač nebo firewall. Chcete-li, aby byly změny trvalé, použijte --permanent příznak:
$ sudo firewall-cmd --add-service murmur --permanent
Můžete také zadat příkaz pro jinou zónu, než je vaše výchozí:
$ sudo firewall-cmd --add-service murmur --permanent --zone home
Porty
Někdy chcete povolit provoz pro něco, co není definováno službami firewallu. Možná nastavujete nestandardní port pro běžnou službu nebo potřebujete otevřít libovolný port.
Možná například používáte open source virtuální stolní software MapTool. Vzhledem k tomu, že používáte server MapTool a neexistuje žádná průmyslová norma, která by určovala, na kterém portu MapTool běží, můžete se rozhodnout, jaký port bude používat, a poté „provrtat díru“ ve vaší bráně firewall, abyste povolili provoz na tomto portu.
Proces je v podstatě stejný jako u služeb:
$ sudo firewall-cmd --add-port 51234/tcp
Tento příkaz otevře port 51234 pro příchozí připojení TCP ve vaší výchozí zóně , ale pouze do doby, než restartujete počítač nebo firewall. Chcete-li, aby byly změny trvalé, použijte --permanent příznak:
$ sudo firewall-cmd --add-port 51234/tcp --permanent
Můžete také zadat příkaz pro jinou zónu, než je vaše výchozí:
$ sudo firewall-cmd --add-port 51234/tcp --permanent --zone home
Povolení provozu přes váš počítač se liší od povolování provozu přes firewall vašeho routeru. Váš router má pravděpodobně jiné rozhraní pro svůj vlastní vestavěný firewall (ačkoli princip je stejný), což je mimo rozsah tohoto článku.
Odebrání portů a služeb
Pokud se rozhodnete, že služba nebo port již nejsou potřeba, můžete restartovat bránu firewall a vymazat změny, pokud nepoužijete --permanent vlajka.
Pokud jste změny provedli natrvalo, použijte --remove-port nebo --remove-service příznak:
$ sudo firewall-cmd --remove-port 51234/tcp --permanent
Porty a služby můžete odebrat ze zóny jiné, než je vaše výchozí zóna, zadáním zóny v příkazu:
$ sudo firewall-cmd --remove-service murmur --permanent --zone home
Vlastní zóny
Můžete používat a zneužívat výchozí zóny poskytované firewallem, ale máte také svobodu vytvořit si vlastní. Pokud vám například dává smysl mít zónu specifickou pro hraní her, můžete si ji vytvořit a přepnout do ní pouze během hraní.
Chcete-li vytvořit novou prázdnou zónu, vytvořte novou zónu s názvem hra a znovu načtěte pravidla brány firewall, aby se vaše nová zóna stala aktivní:
$ sudo firewall-cmd --new-zone game --permanent
success
$ sudo firewall-cmd --reload
Jakmile bude vytvořen a aktivní, můžete si jej přizpůsobit se všemi službami a porty, které potřebujete mít otevřené pro herní večer.
Pílivost
Začněte přemýšlet o strategii brány firewall ještě dnes. Začněte pomalu a vytvořte si rozumná výchozí nastavení, která vám dávají smysl. Než si zvyknete přemýšlet o svém firewallu a pochopit, které síťové služby používáte, může to chvíli trvat, ale s trochou průzkumu můžete svou linuxovou pracovní stanici posílit bez ohledu na prostředí.