GNU/Linux >> Linux Esercitazione >  >> Linux

Usa firewalld su distribuzioni basate su RedHat

Firewalld ha sostituito iptables come firewall per le distribuzioni basate su RHEL. La sintassi utilizzata da firewalld è più user-friendly. Questo post mostra come assicurarsi che firewalld sia in esecuzione e si avvii all'avvio del server. Ti mostra anche come creare regole firewall persistenti e flessibili.

Nota :Anche Red Hat®, CentOS®, Alma Linux®, Rocky Linux® utilizza firewalld, quindi tutti i comandi in questo articolo funzionano anche nelle immagini basate su RHEL che Rackspace ha a disposizione.

Concetti di base del firewall

Firewalld utilizza zone per gestire gruppi di regole. Le zone sono collegate alle interfacce di rete e determinano quale traffico è consentito su una rete specifica e quale traffico è negato.

Questa funzionalità potrebbe essere utile se desideri stabilire un firewall molto rigoroso sulla tua interfaccia pubblica e un firewall più rilassato sull'interfaccia CloudNetwork. È utile acquisire familiarità con le zone predefinite da firewall. Firewalld ha le seguenti zone predefinite, in ordine dalla meno affidabile alla più affidabile:

  • drop :Questa zona consente solo connessioni in uscita. Elimina le connessioni in entrata senza risposta.
  • block :Sebbene sia simile a drop , questa zona rifiuta le richieste in arrivo con un icmp-host-prohibited o icmp6-adm-prohibited messaggio.
  • public :usa questa zona per le reti pubbliche o quando non ti fidi di nessuno degli altri computer della rete. Questa zona accetta le connessioni in entrata caso per caso.
  • external :utilizzare questa zona su reti esterne in cui il firewall funge da gateway. Questa zona è configurata per il mascheramento NAT (Network Address Translation) in modo che la tua rete interna sia privata ma raggiungibile.
  • internal :utilizza questa zona per la parte interna di un gateway, dove gli altri computer sono ragionevolmente affidabili.
  • dmz :usa questa zona per i computer isolati che si trovano in una zona demilitarizzata (DMZ). Questa zona consente solo Secure Shell (SSH) e Internet Control Message Protocol (ICMP).
  • work :usa questa zona per i computer di lavoro.
  • home :usa questa zona per gli ambienti domestici.
  • trusted :usa questa zona quando ritieni attendibili tutti i computer della rete.

Per utilizzare il firewall, crei regole e modifichi le proprietà delle tue zone, quindi assegna le tue interfacce di rete alle zone più appropriate per la tua rete.

Avvia il firewall e abilitalo all'avvio

Per impostazione predefinita, firewalld dovrebbe essere abilitato, riavviare il server e quindi avviare all'avvio.

Puoi facilmente verificare se il firewall è in esecuzione utilizzando il --state flag, come mostrato nell'esempio seguente:

    [user@server ~]$ sudo firewall-cmd --state
    Finding out about your zones

Se firewalld non è in esecuzione, puoi abilitarlo e avviarlo eseguendo i seguenti comandi:

    [user@server ~]$ sudo systemctl enable firewalld
    [user@server ~]$ sudo systemctl start firewalld

Puoi vedere quale zona è attualmente la zona predefinita eseguendo il comando seguente:

    [user@server ~]$ sudo firewall-cmd --get-default-zone

Puoi vedere quali interfacce di rete sono assegnate a quali zone eseguendo il comando seguente:

    [user@server ~]$ sudo firewall-cmd --get-active-zones

Nota :L'impostazione predefinita assegna tutte le interfacce di rete alla zona pubblica.

Puoi anche trovare le regole associate alla zona pubblica eseguendo il comando seguente:

    [user@server ~]$ sudo firewall-cmd --list-all --zone=public

L'output dovrebbe essere simile al seguente esempio:

    public (default, active)

    interfaces: eth0 eth1

    sources:

    services: dhcpv6-client http https ssh

    ports: 1025/tcp

    masquerade: no

    forward-ports:

    icmp-blocks:

    rich rules:

L'output mostra che la zona pubblica è l'impostazione predefinita e dispone di interfacce di rete eth0 eeth1. Protocollo di configurazione host dinamico (DHCP)(dhcpv6-client ), sono consentiti il ​​traffico SSH, Hypertext Transfer Protocol (HTTP) e Secure HTTP(HTTPS), nonché il traffico TCP (Transmission Control Protocol) sulla porta 1025 .

Per ottenere un elenco delle zone disponibili, eseguire il comando seguente:

    [user@server ~]$ sudo firewall-cmd --get-zones

Configura le tue zone

Puoi spostare le interfacce tra le zone durante la sessione utilizzando il --change-interface= argomento e --zone discussione. Se il firewall si riavvia, l'interfaccia torna alla zona predefinita.

    [user@server ~]$ sudo firewall-cmd --zone=internal --change-interface=eth1

Per definire una zona permanente per un'interfaccia, apri il file di configurazione per l'interfaccia e aggiungi le seguenti righe:

    ...
    ONBOOT=yes
    ZOME=internal

Salvare e chiudere il file, quindi eseguire i seguenti comandi per riavviare la rete e il firewall e rendere effettive le modifiche:

    [user@server ~]$ sudo systemctl restart network
    [user@server ~]$ sudo systemctl restart firewalld

Imposta le regole

Firewalld viene fornito con servizi predefiniti che consentono di aggiungere solo il servizio, anziché il numero di porta e il tipo di protocollo. Ad esempio, ti consentono di consentire http anziché tcp port 80 .

È possibile ottenere un elenco di questi servizi utilizzando il comando seguente:

    [user@server ~]$ sudo firewall-cmd --get-services

Quindi, usa il seguente comando di esempio per aggiungere un servizio:

    [user@server ~]$ sudo firewall-cmd --add-service=http

La configurazione ha effetto immediato, ma non sopravvive ai riavvii. Per consentire il riavvio di questi tipi di configurazioni di servizio al riavvio del server, è necessario aggiungere il --permanent discussione. Ti consigliamo di eseguire entrambi questi comandi in sequenza in modo che la configurazione abbia effetto immediato e che anche i servizi si riavviino, come mostrato nell'esempio seguente:

    [user@server ~]$ sudo firewall-cmd --add-service=http
    firewall-cmd --permanent --add-service=http

Puoi ottenere ulteriori dettagli sulle regole predefinite di firewalld navigando su /usr/lib/firewalld/services/ directory e leggere i file.

Imposta regole avanzate

Regole dettagliate sono come si definiscono i condizionali in firewalld. Il caso d'uso più comune per le regole avanzate è consentire l'accesso da un particolare indirizzo IP o intervallo di indirizzi IP. I seguenti comandi consentono l'accesso alla porta TCP 80 da qualsiasi IP sulla rete 192.168.0.0 e rendono permanente la regola:

    [user@server ~]$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept'
    [user@server ~]$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

Per esempi di regole avanzate, vedere Fedora®Wiki.

Definisci servizi

Puoi creare il tuo servizio e fare riferimento a quando crei le regole inserendo un file in /usr/lib/firewalld/services/ directory. Il modo più semplice per eseguire questa attività copiando un .xml esistente file in questa directory, quindi modificando i dettagli.

Il comando di esempio seguente copia un file esistente in un nuovo file:

    [user@server ~]$ sudo cp /usr/lib/firewalld/services/http.xml /usr/lib/firewalld/services/myservice.xml

Il comando seguente apre il nuovo file per la modifica:

    [user@server ~]$ sudo vim /usr/lib/firewalld/services/myserver.xml

Il file dovrebbe essere simile al seguente esempio:

    <!--?xml version="1.0" encoding="utf-8"?-->
    <service>
      <short>My Custom Service</short>
      <description>A brief description of the service. This rule allows port 1134 on TCP for my application.</description>
      <port protocol="tcp" port="1134"></port>
    </service>

Per applicare le modifiche, utilizza i seguenti comandi con il nome del file, meno il .xml estensione del file:

    [user@server ~]$ sudo firewall-cmd --add-service=myservice
    [user@server ~]$ sudo firewall-cmd --permanent --add-service=myservice

Utilizza la scheda Feedback per inserire commenti o porre domande. Puoi anche avviare una conversazione con noi.


Linux
  1. Come abilitare e utilizzare firewalld su CentOS 7

  2. Una guida per principianti al firewalld in Linux

  3. Che cos'è FirewallD e come implementarlo su Linux

  4. Gestione firewall di base con firewall

  5. Installa uno stack LAMP su distribuzioni basate su RHEL 7

6 Distribuzioni Linux per uso didattico

Come usare IPTables invece di firewalld per Fedora 30-31-32

Come installare e utilizzare PHP Composer su distribuzioni Linux

Come installare e utilizzare GNU Emacs su distribuzioni Linux

Come installare e utilizzare Ruby su distribuzioni Linux

KVM - Quale gestione basata sul Web utilizzare?