La mise en place d'un pare-feu dans Linux en utilisant firewalld
ou iptables
implique différentes approches en raison de leurs différences architecturales. firewalld
est un démon de pare-feu dynamique qui fournit une interface conviviale pour gérer les règles de pare-feu, tandis que iptables
est un utilitaire de ligne de commande qui manipule directement le cadre NetFilter du noyau.
Utilisation de Firewalld:
firewalld
est installé. Dans la plupart des distributions, cela se fait à l'aide du gestionnaire de packages (par exemple, apt install firewalld
sur Debian / Ubuntu, dnf install firewalld
sur Fedora / Centos / Rhel).systemctl start firewalld
et activez-le de démarrer sur Boot avec systemctl enable firewalld
.firewalld
utilise des "zones" pour définir différents contextes de réseau (par exemple, "public", "interne", "dmz"). Chaque zone a un ensemble de règles par défaut. Vous pouvez répertorier les zones avec firewall-cmd --get-active-zones
. Pour ajouter un service, comme SSH (port 22), à la zone par défaut (généralement "public"), utilisez firewall-cmd --permanent --add-service=ssh
. Pour rendre les modifications permanentes, utilisez le drapeau --permanent
. Recharger le pare-feu avec firewall-cmd --reload
pour appliquer les modifications.firewall-cmd --permanent --add-port=80/tcp
(pour http) ou des gammes à l'aide firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'
(pour autoriser le trafic à partir d'un TRAFFET spécifique).Utilisation des iptables:
iptables
est généralement inclus par défaut dans la plupart des distributions Linux.iptables
utilise des chaînes (par exemple, INPUT
, OUTPUT
, FORWARD
) pour gérer les règles. Chaque règle spécifie les adresses IP source / destination, les ports, les protocoles et l'action (accepter, supprimer, rejeter). Par exemple, pour permettre les connexions SSH: iptables -A INPUT -p tcp --dport 22 -j ACCEPT
.iptables
ne sont pas persistantes à tous les redémarrages. Vous devez les enregistrer à l'aide d'un script ou d'un utilitaire comme iptables-save
et de les charger au démarrage à l'aide d'un script de démarrage. La méthode exacte varie en fonction de votre distribution.iptables
offre un contrôle extrêmement grainé, permettant des ensembles de règles complexes avec divers critères de correspondance et chaînes personnalisées. Cependant, cela nécessite une compréhension approfondie du réseautage et de la syntaxe iptables
. La principale différence réside dans leur approche de la gestion du pare-feu. firewalld
fournit une interface de niveau supérieur et conviviale construite sur iptables
. Il simplifie les tâches de pare-feu commun, ce qui facilite la gestion des zones, des services et des ports. iptables
, en revanche, fournit un contrôle direct et de bas niveau sur le cadre NetFilter, offrant une plus grande flexibilité mais nécessitant une expertise plus technique.
Voici un tableau résumant les principales différences:
Fonctionnalité | pare-feu | iptables |
---|---|---|
Interface | Outil de ligne de commande avec des options conviviales | Ligne de commande uniquement, syntaxe complexe |
Configuration | Zones, services, ports, règles riches | Chaînes, règles avec des critères de correspondance spécifiques |
Persistance | Mécanisme de persistance intégré | Nécessite une sauvegarde manuelle et un chargement au démarrage |
Complexité | Plus facile à apprendre et à utiliser | Courbe d'apprentissage plus abrupte, plus complexe |
Flexibilité | Moins flexible que les iptables | Très flexible, permet des règles complexes |
Mises à jour dynamiques | Prend en charge les mises à jour dynamiques | Mises à jour manuelles requises |
Utilisation de Firewalld:
Pour permettre un port spécifique (par exemple, HTTP sur le port 80):
<code class="bash">firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload</code>
Pour nier un port spécifique (par exemple, FTP sur le port 21):
C'est moins simple avec firewalld
. Vous auriez probablement besoin de créer une zone personnalisée ou d'utiliser des règles riches pour y parvenir avec précision. Généralement, firewalld
est conçu pour permettre par défaut et nier explicitement.
Pour permettre un service spécifique (par exemple, SSH):
<code class="bash">firewall-cmd --permanent --add-service=ssh firewall-cmd --reload</code>
Utilisation des iptables:
Pour permettre un port spécifique (par exemple, HTTP sur le port 80):
<code class="bash">iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT # If you want to allow outgoing traffic on port 80 as well. service iptables save # Save the rules (method varies by distribution)</code>
Pour nier un port spécifique (par exemple, FTP sur le port 21):
<code class="bash">iptables -A INPUT -p tcp --dport 21 -j DROP service iptables save # Save the rules (method varies by distribution)</code>
Que vous utilisiez firewalld
ou iptables
, suivez ces meilleures pratiques:
INPUT
, car cela contrôle les connexions entrantes.firewalld
et iptables
prennent en charge cela) pour suivre les connexions et permettre le trafic de retour.N'oubliez pas de toujours tester vos règles de pare-feu dans un environnement contrôlé avant de les déployer sur un système de production. Les règles de pare-feu incorrectement configurées peuvent rendre votre système inaccessible.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!