L'outil de ligne de commande firewall-cmd fait partie du pare-feu application, qui est installée par défaut. Il peut être utilisé pour apporter des modifications d'exécution permanentes et non permanentes.
Installation du pare-feu
Par défaut, firewalld est inclus dans le groupe rpm "core", mais s'il n'est pas installé, vous pouvez toujours l'installer en utilisant yum.
# yum install -y firewalld
Activez le pare-feu pour qu'il démarre au démarrage :
# systemctl enable firewalld
Redémarrez le service firewalld maintenant.
# systemctl restart firewalld
Options disponibles avec la commande 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
La commande firewall-cmd propose des catégories d'options telles que General, Status, Permanent, Zone, IcmpType, Service, Adapt and Query Zones, Direct, Lockdown, Lockdown Whitelist et Panic. Reportez-vous à la page de manuel firewall-cmd pour plus d'informations.
Exemples utiles de firewall-cmd
1. Lister toutes les zones
Utilisez la commande suivante pour répertorier les informations de toutes les zones. Seule la sortie partielle est affichée.
# 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: .....
Public est la zone définie par défaut, si vous ne la modifiez pas. Pour vérifier la zone par défaut actuellement définie, utilisez la commande ci-dessous :
# firewall-cmd --get-default-zone public
2. Répertorier les services et ports autorisés sur le système
Pour afficher le service actuellement autorisé sur votre système, utilisez la commande ci-dessous.
# firewall-cmd --list-services dhcpv6-client ssh
Pour répertorier les ports ouverts sur votre système :
# firewall-cmd --list-ports
Vous ne verriez normalement aucun port répertorié ici lorsque vous venez d'activer le pare-feu.
3. Pour activer tous les ports entrants pour un service
Vous pouvez également ouvrir les ports requis pour un service en utilisant le –add-service option. Pour autoriser l'accès des clients HTTP à la zone publique :
# firewall-cmd --zone=public --add-service=http success
Pour répertorier les services autorisés pour la zone publique :
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
L'utilisation de cette commande modifie uniquement la configuration du Runtime et ne met pas à jour les fichiers de configuration. La séquence de commandes suivante montre que les modifications de configuration effectuées en mode de configuration Runtime sont perdues lorsque le service firewalld est redémarré :
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Pour rendre les modifications permanentes, utilisez l'option –permanent. Exemple :
# firewall-cmd --permanent --zone=public --add-service=http success
Les modifications apportées en mode de configuration permanente ne sont pas mises en œuvre immédiatement. Exemple :
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Cependant, les modifications apportées à une configuration permanente sont écrites dans les fichiers de configuration. Le redémarrage du service firewalld lit les fichiers de configuration et applique les modifications.
Exemple :
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
4. Autoriser le trafic sur un port entrant
La commande ci-dessous ouvrira le port 2222 avec effet immédiat, mais ne persistera pas après les redémarrages :
# firewall-cmd --add-port=[YOUR PORT]/tcp
Par exemple, pour ouvrir le port TCP 2222 :
# firewall-cmd --add-port=2222/tcp
La commande suivante créera une règle persistante, mais ne sera pas appliquée immédiatement :
# firewall-cmd --permanent --add-port=[YOUR PORT]/tcp
Par exemple, pour ouvrir le port TCP 2222 :
# firewall-cmd --permanent --add-port=2222/tcp
Pour lister les ports ouverts, utilisez la commande :
# firewall-cmd –-list-ports 2222/tcp
5. Démarrer et arrêter le service pare-feu
Pour démarrer/arrêter/statut le service firewalld, utilisez les commandes ci-dessous :
# systemctl start firewalld.service # systemctl stop firewalld.service
Pour vérifier l'état du service firewalld :
# systemctl status firewalld.service