Lo strumento da riga di comando firewall-cmd fa parte del firewalld applicazione, che è installata per impostazione predefinita. Può essere utilizzato per apportare modifiche al runtime permanenti e non permanenti.
Installazione di firewalld
Per impostazione predefinita, firewalld è incluso nel gruppo rpm "core", ma se nel caso non fosse installato, puoi sempre installarlo usando yum.
# yum install -y firewalld
Abilita il firewalld per l'avvio all'avvio:
# systemctl enable firewalld
Riavvia ora il servizio firewalld.
# systemctl restart firewalld
Opzioni disponibili con il comando firewall-cmd
# firewall-cmd --help Usage: firewall-cmd [OPTIONS...] General Options -h, --help Prints a short help text and exists -V, --version Print the version string of firewalld -q, --quiet Do not print status messages Status Options --state Return and print firewalld state --reload Reload firewall and keep state information --complete-reload Reload firewall and lose state information --runtime-to-permanent Create permanent from runtime configuration
Il comando firewall-cmd offre categorie di opzioni come Generale, Stato, Permanente, Zona, IcmpType, Servizio, Adatta e Query zone, Diretto, Blocco, Blocco whitelist e Panico. Fare riferimento alla pagina man di firewall-cmd per ulteriori informazioni.
Utili esempi di cmd firewall
1. Elenca tutte le zone
Utilizzare il comando seguente per elencare le informazioni per tutte le zone. Viene visualizzata solo l'uscita parziale.
# firewall-cmd --list-all-zones work target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: drop target: DROP icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: .....
Pubblica è la zona predefinita impostata, se non la si modifica. Per controllare la zona predefinita attualmente impostata, utilizzare il comando seguente:
# firewall-cmd --get-default-zone public
2. Elenca i servizi e le porte consentiti sul sistema
Per mostrare il servizio attualmente consentito sul tuo sistema usa il comando seguente.
# firewall-cmd --list-services dhcpv6-client ssh
Per elencare le porte aperte sul tuo sistema:
# firewall-cmd --list-ports
Normalmente non vedresti nessuna porta elencata qui quando hai appena abilitato il firewalld.
3. Per abilitare tutte le porte in entrata per un servizio
Puoi anche aprire le porte richieste per un servizio utilizzando –add-service opzione. Per consentire l'accesso ai client HTTP per la zona pubblica:
# firewall-cmd --zone=public --add-service=http success
Per elencare i servizi consentiti per la zona pubblica:
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
L'utilizzo di questo comando modifica solo la configurazione del runtime e non aggiorna i file di configurazione. La seguente sequenza di comandi mostra che le modifiche alla configurazione effettuate in modalità di configurazione Runtime vengono perse al riavvio del servizio firewalld:
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Per rendere permanenti le modifiche, utilizzare l'opzione –permanent. Esempio:
# firewall-cmd --permanent --zone=public --add-service=http success
Le modifiche apportate nella modalità di configurazione permanente non vengono implementate immediatamente. Esempio:
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Tuttavia, le modifiche apportate in una configurazione permanente vengono scritte nei file di configurazione. Il riavvio del servizio firewalld legge i file di configurazione e implementa le modifiche.
Esempio:
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
4. Consenti traffico su una porta in entrata
Il comando seguente aprirà la porta 2222 con effetto immediato, ma non persisterà tra i riavvii:
# firewall-cmd --add-port=[YOUR PORT]/tcp
Ad esempio, per aprire la porta TCP 2222 :
# firewall-cmd --add-port=2222/tcp
Il comando seguente creerà una regola persistente, ma non verrà applicata immediatamente:
# firewall-cmd --permanent --add-port=[YOUR PORT]/tcp
Ad esempio, per aprire la porta TCP 2222 :
# firewall-cmd --permanent --add-port=2222/tcp
Per elencare le porte aperte, usa il comando :
# firewall-cmd –-list-ports 2222/tcp
5. Avvia e arresta il servizio firewalld
Per avviare/arrestare/stato del servizio firewalld utilizzare i comandi seguenti:
# systemctl start firewalld.service # systemctl stop firewalld.service
Per verificare lo stato del servizio firewalld:
# systemctl status firewalld.service