GNU/Linux >> Linux Esercitazione >  >> Linux

Che cos'è FirewallD e come implementarlo su Linux

Cos'è Firewalld?

Firewalld è una soluzione di gestione del firewall per molte distribuzioni Linux tra cui Ubuntu, Debian, CentOS, RHEL e Fedora. Agisce come frontend per il sistema di filtraggio iptables fornito dal kernel Linux. È indipendente dal protocollo, il che significa che supporta IPv4, IPv6, bridge ethernet e set IP.

Concetto di base di Firewalld

FirewallD utilizza zone e servizi invece della catena e delle regole di iptables. Le zone sono un insieme di regole che specificano quale traffico dovrebbe essere consentito a seconda del livello di fiducia che hai in una rete a cui sono collegati i tuoi computer. Le interfacce di rete hanno assegnato una zona per dettare un comportamento che il firewall dovrebbe consentire.

Il firewalld viene gestito utilizzando lo strumento da riga di comando firewall-cmd. Fornisce un'interfaccia per gestire il runtime e la configurazione permanente.

Zone firewall

Ci sono 9 zone predefinite nel Firewalld a seconda del livello di fiducia in ordine crescente.
Di seguito una breve spiegazione di ciascuna zona:

  • Rilascia : Questa zona ha il livello di attendibilità minimo e viene utilizzata per eliminare tutto il traffico in entrata senza inviare alcun riconoscimento al mittente.
  • Blocca : Questa zona è molto simile alla zona di rilascio, il traffico in entrata viene rifiutato e il mittente riceve un messaggio.
  • Pubblico : Consente il traffico da determinate reti pubbliche.
  • Esterno: Questa zona viene utilizzata quando il sistema funge da gateway o router.
  • Interno: L'insieme di regole che si applicano ai computer nella tua rete interna privata.
  • DMZ : Questa zona è una patch isolata di computer nella rete interna che potrebbe non accedere ad altre risorse interne.
  • Lavoro : Questa zona è utilizzata per le macchine da lavoro. Il livello di fiducia è alto.
  • Casa : La maggior parte dei computer in questa zona si fida l'uno dell'altro. Il livello di fiducia è superiore al lavoro.
  • Fidato: Questa zona ha il livello di affidabilità più alto. Tutti i computer della rete sono affidabili.

Fase 1:installazione di Firewalld

Per impostazione predefinita, Firewalld è preinstallato sulla maggior parte dei sistemi operativi. Ma parte dell'installazione minima del sistema operativo non include fiSe non è installato, puoi installarlo con il seguente comando:

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  

Dopo aver installato firewalld, dovrai avviarlo e abilitarlo per l'avvio dopo il riavvio del sistema.

sudo systemctl start firewalld
sudo systemctl enable firewalld

Esegui il comando seguente per verificare lo stato di firewalld

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

Fase 2:utilizzo di zone e servizi

Per impostazione predefinita, public è l'area predefinita in firewalld e tutte le interfacce di rete sono configurate con l'area pubblica. Puoi elencare la zona predefinita con il seguente comando:

firewall-cmd --get-default-zone

Uscita:

public

Quindi, esegui il comando seguente per ottenere un elenco di zone attive:

firewall-cmd --get-active-zones

Dovresti ottenere il seguente output:

public
  interfaces: eth0 eth1

Per ottenere un elenco di tutte le zone disponibili, eseguire il comando seguente:

firewall-cmd --get-zones

Dovresti ottenere il seguente output:

block dmz drop external home internal public trusted work

Puoi elencare tutti i servizi associati a una zona pubblica con il seguente comando:

firewall-cmd --list-all

Dovresti ottenere il seguente output:

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: 

Per modificare la zona predefinita da pubblica a funzionante, eseguire il comando seguente:

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

Ora puoi verificare la tua zona predefinita con il seguente comando:

firewall-cmd --get-default-zone

Uscita:

work

Puoi ottenere un elenco di tutti i servizi disponibili nel tuo sistema con il seguente comando:

firewall-cmd --get-services

Dovresti ottenere il seguente output:

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

Passaggio 3 – Consenti e nega servizi in Firewalld

Puoi consentire e negare il traffico in entrata in base a servizi predefiniti in firewalld.

Ad esempio, per consentire tutto il traffico in entrata per il servizio http nell'area pubblica, eseguire il comando seguente:

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

Uscita:

success

Per consentire il traffico in entrata per il servizio ftp nella zona pubblica, eseguire il comando seguente:

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

Uscita:

success

Il comando precedente aggiungerà il servizio http e ftp temporaneo e non è persistente al riavvio. Dovrai usare il --permanent opzione per renderli permanenti come mostrato di seguito:

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

Quindi, esegui il comando seguente per implementare le modifiche:

firewall-cmd --reload

Ora puoi ottenere un elenco di servizi aggiunti con il seguente comando:

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

Dovresti vedere il seguente output:

cockpit dhcpv6-client ftp http ssh

Puoi anche controllare le informazioni dettagliate sulla zona pubblica con il seguente comando:

firewall-cmd --info-zone public

Uscita:

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: 

Se vuoi rimuovere/negare i servizi di cui sopra dal firewalld, usa il --remove-service opzione:

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

Quindi, esegui il comando seguente per applicare le modifiche:

firewall-cmd --reload

Fase 4 – Consenti e nega porte in Firewalld

Puoi anche consentire e negare il traffico in entrata in base alla porta in firewalld.

Ad esempio, consenti tutto il traffico in entrata sulle porte 8080 e 443, esegui il comando seguente:

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

Quindi, esegui il comando seguente per applicare le modifiche:

firewall-cmd --reload

Successivamente, verifica le porte aggiunte con il seguente comando:

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

Uscita:

443/tcp 8080/tcp

Allo stesso modo rimuovi/nega le porte sopra dal firewalld, usa l'opzione –remove-port:

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

Quindi, esegui il comando seguente per applicare le modifiche:

firewall-cmd --reload

Fase 5 – Port Forwarding con Firewalld

Il port forwarding è il processo che reindirizza la richiesta dalla combinazione IP/porta e la reindirizza a un IP e/o una porta diversi. Questa tecnica consente alle macchine remote di connettersi a un servizio specifico all'interno di una rete privata.

Prima di configurare il port forwarding, è necessario attivare la masquerade nella zona desiderata. Puoi attivarlo usando il --add-masquerade opzione:

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

Quindi, per inoltrare il traffico dalla porta 80 alla porta 8080 sullo stesso server, eseguire il comando seguente:

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

Se vuoi inoltrare il traffico dalla porta locale 80 alla porta 8080 su un server remoto con indirizzo IP 192.168.1.200 esegui il seguente comando:

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

Quindi, esegui il comando seguente per applicare le modifiche:

firewall-cmd --reload

Se desideri rimuovere le regole precedenti, sostituisci –add con –remove come mostrato di seguito:

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

Conclusione

Nella guida sopra, hai appreso il concetto di base di Firewalld e come implementarlo sul sistema operativo Linux. Spero che ora tu possa limitare il traffico in entrata non necessario con firewalld.


Linux
  1. Che cos'è un comando Chown in Linux e come usarlo

  2. Come installare e configurare Fail2ban su Alma Linux 8

  3. Flatpak su Linux:cos'è e come installare app con esso

  4. Che cos'è Podman e come installare Podman in Linux

  5. Cos'è NFS e come installarlo su Linux

Come installare e utilizzare Firewalld su Almalinux 8

Come installare e utilizzare Firewalld su Rocky Linux 8

Come configurare FirewallD in RHEL, CentOS e Fedora

Cos'è il PPA in Ubuntu Linux e come li uso

Che cos'è il comando sorgente in Linux e come funziona?

Come modificare data, ora e fuso orario in Linux Mint 20