GNU/Linux >> Znalost Linux >  >> Linux

Průvodce pro začátečníky firewallem v Linuxu

Náš svět nebyl nikdy tak propojený, jako je právě teď. Každý člověk, firma, vláda atd. používá web ke komunikaci, výměně měn a dat a obecně prochází pohyby každodenního života a operací. Tato spojení však nejsou ze své podstaty bezpečná, a proto musíme zavést obranná opatření, abychom ochránili naši polohu, informace a peníze. V dobách minulých, když někdo chtěl zabezpečit jejich majetek, postavili brány a ploty, aby vetřelce udrželi v dostatečné vzdálenosti. Dnes dosahujeme stejných cílů pomocí firewallů. Většina linuxových systémů používala iptables užitečnost, na obzoru však byla nová technologie.

S představením Red Hat Enterprise Linux 7.0 (RHEL) v roce 2011 byly iptables nahrazeny jako firewalld byl narozen. Ve svém jádru firewalld je zónový firewall. Zónové firewally jsou systémy zabezpečení sítě, které monitorují provoz a provádějí akce na základě sady definovaných pravidel aplikovaných proti příchozím/odchozím paketům.

Vše o zónách

Firewalld poskytuje různé úrovně zabezpečení pro různé zóny připojení. Zóna je přidružena alespoň k jednomu síťovému rozhraní (eth0 , například). Předkonfigurované zóny vidíme pomocí následujícího příkazu:

[tcarrigan@server ~]$ firewall-cmd --get-zones
block dmz drop external home internal libvirt public trusted work

Jak vidíte, ve výchozím nastavení jsou uvedeny zóny:

  • blokovat
  • dmz
  • klesnout
  • externí
  • domů
  • interní
  • libvirt
  • veřejné
  • důvěryhodný
  • práce

POZNÁMKA:Pro tuto ukázku používám virtuální stroj RHEL 8.2.

Obecně platí, že výchozím pravidlem firewallu je zakázat vše a povolit pouze určité výjimky pro potřebné služby.

Mnohokrát je užitečné podívat se, jaké služby jsou spojeny s danou zónou. Chcete-li zobrazit tyto informace, použijte následující příkaz:

firewall-cmd --list-all

Všimněte si, že pokud neurčíte zónu, bude dotazována výchozí zóna. Zde je výchozí zóna public zóny.

[tcarrigan@server ~]$ firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3 enp0s8
  sources: 
  services: cockpit dhcpv6-client mountd nfs rpc-bind ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Pokud chcete určit zónu, jednoduše přidejte --zone=zonename

Chcete-li například zobrazit external zóny, použijte následující:

[tcarrigan@server ~]$ firewall-cmd --zone=external --list-all
external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Pokud jste z nějakého důvodu chtěli změnit výchozí zónu, můžete to snadno udělat pomocí následujícího příkazu:

firewall-cmd --set-default=zonename

Povolit a zakázat službou

Dobrá věc na firewallech je, že udržují naše sítě v bezpečí. Špatná věc je, že neexistuje žádný „univerzální“ firewall, který by vyhovoval každé situaci. Z tohoto důvodu jsou firewally přizpůsobeny tak, aby přesně odpovídaly potřebám situace, ve které jsou nasazeny. Například pokud potřebuji povolit přenosy FTP (File Transfer Protocol) v external zóny, abych mohl přesunout soubor přes port 21, mohl bych použít něco takového:

firewall-cmd --zone=external --add-service=ftp

Zde je skutečný příklad z mého VM:

[tcarrigan@server ~]$ sudo firewall-cmd --zone=external --add-service=ftp
[sudo] password for tcarrigan: 
success

Vidíme, že démon vrátil úspěch , takže bychom měli mít povolenou službu FTP v external pásmo. Abychom to mohli ověřit, musíme zkontrolovat external seznam služeb zóny:

[tcarrigan@server ~]$ firewall-cmd --zone=external --list-services
ftp ssh

Ale co se stane, když znovu načteme konfiguraci firewallu?

[tcarrigan@server ~]$ sudo firewall-cmd --reload
success

[tcarrigan@server ~]$ firewall-cmd --zone=external --list-all
external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Nové povolit pravidlo nepřežije reinicializaci firewalld konfigurace. Aby bylo zajištěno, že naše nové pravidlo přetrvává, musíme přidat --permanent volba. Nový příkaz je:

# firewall-cmd --permanent --zone=external --add-service=ftp

Jakmile použijete permanent musíte znovu načíst konfiguraci, aby se změny uchytily.

Abychom odstranili službu, provedeme jednu malou změnu v syntaxi. Zde se chystám odebrat službu FTP z external zóna trvale:

[tcarrigan@server ~]$ sudo firewall-cmd --permanent --zone=external --remove-service=ftp
Warning: NOT_ENABLED: ftp
success

Vidíme, že mě systém varuje, že FTP bylo zakázáno a že operace byla úspěšná.

Povolit a zakázat podle portu

Co se nyní stane, když potřebujete povolit provoz přes nestandardní port? Představte si, že máte zálohovací službu, která musí běžet přes vyhrazený port UDP. Jak byste přidali tuto výjimku do vaší zóny? Syntaxe je velmi uživatelsky přívětivá a jen mírně se liší od toho, co jsme použili pro služby. Chcete-li přidat port do konfigurace zóny, použijte následující:

[tcarrigan@server ~]$ sudo firewall-cmd --permanent --zone=external --add-port=60001/udp
success

Povolené porty zkontrolujeme pomocí následujícího příkazu:

[tcarrigan@server ~]$ sudo firewall-cmd --zone=external --list-ports
60001/udp

A chcete-li odstranit pravidlo portu, uhodli jste správně... jednoduše přepněte --add-port=x na --remove-port=x

[tcarrigan@server ~]$ sudo firewall-cmd --permanent --zone=external --remove-port=60001/udp
success

Co bude dál?

Pokud se po přečtení tohoto článku ptáte, co s informacemi dělat, vřele doporučuji zapnout váš oblíbený VM (RHEL, Fedora, CentOS atd.) a začít experimentovat s příkazy výše. Nejlepší způsob, jak se učit, je získat praktické zkušenosti. Pokud vás tento obsah zaujal, sledujte část Povolit Sysadmin ve druhé části, kde se ponoříte do vytváření vlastních zón a pokročilejšího vytváření pravidel.

[ Usnadněte si správu sítě. Podívejte se na Automatizaci sítě pro každého, bezplatnou knihu od společnosti Red Hat. ]


Linux
  1. Praktický průvodce učením awk

  2. Základy Linuxu:Průvodce pro začátečníky k úpravám textu pomocí vim

  3. Co je FirewallD a jak jej implementovat v systému Linux

  1. Průvodce instalací aplikací na Linuxu

  2. Průvodce pro začátečníky koukáním

  3. Kompletní průvodce LVM v Linuxu pro začátečníky

  1. Průvodce pro začátečníky oprávněními pro Linux

  2. Jak používat příkazy Najít a najít v Linuxu:Průvodce pro začátečníky

  3. Linux Commands - Kompletní průvodce