GNU/Linux >> Znalost Linux >  >> Linux

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

Co je brána firewall?

Firewalld je řešení pro správu firewallu pro mnoho distribucí Linuxu včetně Ubuntu, Debian, CentOS, RHEL a Fedora. Funguje jako frontend pro systém filtrování iptables poskytovaný linuxovým jádrem. Je nezávislý na protokolu, což znamená, že podporuje IPv4, IPv6, ethernetové mosty a sady IP.

Základní koncept brány firewall

FirewallD používá zóny a služby místo řetězce a pravidel iptables. Zóny jsou sada pravidel, která určují, jaký provoz by měl být povolen v závislosti na úrovni důvěry, kterou máte v síti, ke které jsou připojeny vaše počítače. Síťovým rozhraním byla přiřazena zóna, která určuje chování, které by měl firewall povolit.

Firewalld je spravován pomocí nástroje příkazového řádku firewall-cmd. Poskytuje rozhraní pro správu runtime a trvalou konfiguraci.

Zóny brány firewall

Firewalld má 9 předdefinovaných zón v závislosti na úrovni důvěry ve vzestupném pořadí.
Stručné vysvětlení každé zóny je vysvětleno níže:

  • Vypustit: Tato zóna má nejnižší úroveň důvěry a používá se k odstranění veškerého příchozího provozu bez odeslání potvrzení odesílateli.
  • Blokovat: Tato zóna je velmi podobná zóně Drop, příchozí provoz je odmítnut a odesílatel obdrží zprávu.
  • Veřejné: Umožňuje provoz z určitých veřejných sítí.
  • Externí: Tato zóna se používá, když váš systém funguje jako brána nebo směrovač.
  • Interní: Sada pravidel, která platí pro počítače ve vaší soukromé interní síti.
  • DMZ: Tato zóna je izolovaná záplata počítačů ve vaší interní síti, která nemusí mít přístup k jiným interním zdrojům.
  • Práce: Tato zóna se používá pro pracovní stroje. Úroveň důvěry je vysoká.
  • Domů: Většina počítačů v této zóně si navzájem důvěřuje. Úroveň důvěry je vyšší než práce.
  • Důvěryhodný : Tato zóna má nejvyšší úroveň důvěryhodnosti. Všechny počítače v síti jsou důvěryhodné.

Krok 1 – Instalace brány firewall

Ve výchozím nastavení je brána firewall předinstalovaná na většině operačních systémů. Některé minimální instalace OS však nezahrnují. Pokud není nainstalován, můžete jej nainstalovat pomocí následujícího příkazu:

sudo yum install firewalld        # CentOS/RHEL 8/7/6 
sudo dnf install firewalld        # Fedora and CentOS/RHEL 8 
sudo apt install firewalld        # Ubuntu and Debian  

Po instalaci firewallu budete muset spustit a povolit jeho spuštění po restartu systému.

sudo systemctl start firewalld
sudo systemctl enable firewalld

Spuštěním následujícího příkazu ověřte stav brány firewall

systemctl status firewalld
[OR] 
firewall-cmd --state

Krok 2 – Práce se zónami a službami

Ve výchozím nastavení je veřejná výchozí zóna brány firewall a všechna síťová rozhraní jsou nakonfigurována s veřejnou zónou. Výchozí zónu můžete vypsat pomocí následujícího příkazu:

firewall-cmd --get-default-zone

Výstup:

public

Poté spusťte následující příkaz, abyste získali seznam aktivních zón:

firewall-cmd --get-active-zones

Měli byste získat následující výstup:

public
  interfaces: eth0 eth1

Chcete-li získat seznam všech dostupných zón, spusťte následující příkaz:

firewall-cmd --get-zones

Měli byste získat následující výstup:

block dmz drop external home internal public trusted work

Všechny služby spojené s veřejnou zónou můžete vypsat pomocí následujícího příkazu:

firewall-cmd --list-all

Měli byste získat následující výstup:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Chcete-li změnit výchozí zónu z veřejné na pracovní, spusťte následující příkaz:

firewall-cmd --set-default-zone=work

Nyní můžete ověřit svou výchozí zónu pomocí následujícího příkazu:

firewall-cmd --get-default-zone

Výstup:

work

Seznam všech dostupných služeb ve vašem systému můžete získat pomocí následujícího příkazu:

firewall-cmd --get-services

Měli byste získat následující výstup:

RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

Krok 3 – Povolení a zakázání služeb v bráně Firewalld

Můžete povolit a zakázat příchozí provoz na základě předdefinovaných služeb ve firewallu.

Chcete-li například povolit veškerý příchozí provoz pro službu http ve veřejné zóně, spusťte následující příkaz:

firewall-cmd --zone=public --add-service=http

Výstup:

success

Chcete-li povolit příchozí provoz pro službu ftp ve veřejné zóně, spusťte následující příkaz:

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

Výstup:

success

Výše uvedený příkaz přidá službu http a ftp dočasně a není trvalá při restartu. Budete muset použít --permanent možnost, aby byly trvalé, jak je uvedeno níže:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=ftp

Dále spusťte následující příkaz k implementaci změn:

firewall-cmd --reload

Nyní můžete získat seznam přidaných služeb pomocí následujícího příkazu:

firewall-cmd --permanent --zone=public --list-services

Měli byste vidět následující výstup:

cockpit dhcpv6-client ftp http ssh

Můžete také zkontrolovat podrobné informace o veřejné zóně pomocí následujícího příkazu:

firewall-cmd --info-zone public

Výstup:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: cockpit dhcpv6-client ftp http ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Pokud chcete odstranit/zakázat výše uvedené služby z brány firewall, použijte --remove-service možnost:

firewall-cmd --permanent --zone=public --remove-service=http
firewall-cmd --permanent --zone=public --remove-service=ftp

Dále spusťte následující příkaz a použijte změny:

firewall-cmd --reload

Krok 4 – Povolení a zakázání portů v bráně Firewalld

Můžete také povolit a zakázat příchozí provoz na základě portu ve firewalld.

Například povolte veškerý příchozí provoz na portech 8080 a 443, spusťte následující příkaz:

firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp

Dále spusťte následující příkaz a použijte změny:

firewall-cmd --reload

Dále ověřte přidané porty pomocí následujícího příkazu:

firewall-cmd --permanent --zone=public --list-ports

Výstup:

443/tcp 8080/tcp

Podobně odeberte/zakažte výše uvedené porty z firewallu, použijte volbu –remove-port:

firewall-cmd --permanent --zone=public --remove-port=443/tcp
firewall-cmd --permanent --zone=public --remove-port=8080/tcp

Dále spusťte následující příkaz a použijte změny:

firewall-cmd --reload

Krok 5 – Přesměrování portů pomocí brány firewall

Přesměrování portů je proces, který přesměruje požadavek z kombinace IP/port a přesměruje jej na jinou IP a/nebo port. Tato technika umožňuje vzdáleným počítačům připojit se ke konkrétní službě v rámci privátní sítě.

Před konfigurací přesměrování portů musíte aktivovat maškarádu v požadované zóně. Můžete jej aktivovat pomocí --add-masquerade možnost:

firewall-cmd --zone=public --add-masquerade

Dále, chcete-li přesměrovat provoz z portu 80 na port 8080 na stejném serveru, spusťte následující příkaz:

firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080

Pokud chcete přesměrovat provoz z místního portu 80 na port 8080 na vzdáleném serveru s IP adresou 192.168.1.200, spusťte následující příkaz:

firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.200

Dále spusťte následující příkaz a použijte změny:

firewall-cmd --reload

Pokud chcete odstranit výše uvedená pravidla, nahraďte –add – –remove, jak je znázorněno níže:

firewall-cmd --permanent --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.200
firewall-cmd --permanent --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080

Závěr

Ve výše uvedené příručce jste se naučili základní koncept brány firewall a jak jej implementovat v operačním systému Linux. Doufám, že nyní můžete omezit zbytečný příchozí provoz pomocí brány firewall.


Linux
  1. Co je příkaz Chown v Linuxu a jak jej používat

  2. Jak nainstalovat a nakonfigurovat Fail2ban na Alma Linux 8

  3. Flatpak na Linuxu:Co to je a jak s ním instalovat aplikace

  1. Co je Podman a jak nainstalovat Podman v Linuxu

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

  3. Co je NFS a jak jej nainstalovat na Linux

  1. Linux File Command:Co dělá a jak jej používat

  2. Linux Tail Command:Co to je a jak jej používat

  3. Co je předávání IP v Linuxu? Jak povolit přesměrování IP?