Maison >Opération et maintenance >CentOS >Comment mettre en œuvre des règles avancées de pare-feu avec le pare-feu sur CentOS?
Cet article détaille la mise en œuvre des règles de pare-feu avancées à l'aide de Firewalld sur CentOS. Il met l'accent sur une approche basée sur la zone, en utilisant des règles riches pour le contrôle granulaire (par exemple, spécifiant la source IP, le port, le protocole). Les meilleures pratiques incluent le principe de
Cette section détaille comment mettre en œuvre des règles de pare-feu avancées à l'aide firewalld
sur un système CENTOS. firewalld
offre un moyen robuste et flexible de gérer votre pare-feu, allant au-delà de la simple ouverture de port. Sa force réside dans son architecture basée sur la zone et la capacité de définir des règles complexes en utilisant une syntaxe riche.
Tout d'abord, assurez-vous que firewalld
est installé et en cours d'exécution:
<code class="bash">sudo yum install firewalld sudo systemctl start firewalld sudo systemctl enable firewalld</code>
Des règles avancées sont généralement ajoutées dans une zone spécifique. La zone default
est généralement pour les interfaces publiques, tandis que d'autres comme internal
ou dmz
sont créés pour les réseaux internes ou les zones démilitarisés respectivement. Disons que nous voulons permettre à SSH d'accéder uniquement à partir d'une adresse IP spécifique (192.168.1.100) sur la zone default
. Nous pouvons y parvenir en utilisant l'outil de ligne de commande firewall-cmd
:
<code class="bash">sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept' sudo firewall-cmd --reload</code>
Cette commande ajoute une règle permanente (using --permanent
) à la zone default
. L'option --add-rich-rule
permet des règles complexes spécifiées dans la syntaxe de type XML. Cette règle cible spécifiquement le trafic IPv4 ( family="ipv4"
) provenant de 192.168.1.100
et l'accepte ( accept
). N'oubliez pas de recharger firewalld
à l'aide de --reload
pour que les modifications prennent effet. Vous pouvez ajouter des conditions plus complexes comme les gammes de ports, les protocoles (TCP / UDP) et d'autres critères dans la rich rule
. Par exemple, pour autoriser uniquement SSH (port 22) à partir de cette IP:
<code class="bash">sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept' sudo firewall-cmd --reload</code>
Vous pouvez afficher vos règles actuelles en utilisant:
<code class="bash">sudo firewall-cmd --list-all sudo firewall-cmd --list-rich-rules</code>
La sécurisation efficace de votre serveur CentOS avec firewalld
nécessite une approche en couches:
public
, internal
, dmz
) pour séparer le trafic réseau et appliquer des règles appropriées à chaque zone. Cela améliore la sécurité en limitant l'impact d'une violation.rich rules
pour définir des contrôles d'accès très spécifiques en fonction des adresses IP source, des ports, des protocoles et d'autres critères.sudo firewall-cmd --list-all
et sudo firewall-cmd --list-rich-rules
pour s'assurer qu'ils sont toujours appropriés et n'ont pas été compromis.firewalld
à jour avec les derniers correctifs de sécurité.Fail2ban
en conjonction avec firewalld
. Fail2ban
interdit automatiquement les adresses IP qui tentent de se connecter brute.Permettre des ports et des protocoles spécifiques pour les applications consiste à identifier les ports et les protocoles utilisés par l'application et la création de règles de pare-feu appropriées. Par exemple, pour permettre le trafic HTTP (port 80) et le trafic HTTPS (port 443):
<code class="bash">sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload</code>
Pour des scénarios plus complexes impliquant des adresses IP spécifiques ou d'autres critères, utilisez rich rules
:
<code class="bash">sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept' sudo firewall-cmd --reload</code>
Cela permet le trafic TCP sur le port 8080 à partir de l'adresse IP 192.168.1.100. N'oubliez pas de remplacer ces valeurs par le port, le protocole et l'adresse IP appropriés pour votre application spécifique. Spécifiez toujours explicitement le protocole (TCP ou UDP).
Le dépannage des règles complexes firewalld
nécessite une approche systématique:
sudo firewall-cmd --list-all
et sudo firewall-cmd --list-rich-rules
pour confirmer que vos règles sont correctement ajoutées et actives.public
, internal
). Utilisez sudo firewall-cmd --get-active-zones
pour répertorier les zones actives et leurs interfaces.firewalld
des erreurs ou des avertissements. L'emplacement du fichier journal peut varier en fonction de la configuration de votre système, mais se trouve souvent dans /var/log/firewalld/
.ping
, telnet
, netstat
et nc
pour tester la connectivité aux services affectés par vos règles.firewalld
à l'aide de sudo firewall-cmd --reload
. Dans les cas obstinés, un redémarrage complet ( sudo systemctl restart firewalld
) pourrait être nécessaire.iptables
(avancé): Pour les scénarios très complexes, vous pouvez manipuler directement les règles iptables
sous-jacentes, bien que cela soit généralement découragé à moins que vous ne soyez très familier avec iptables
. Cependant, n'oubliez pas que les modifications apportées directement aux iptables
seront écrasées lorsque firewalld
est rechargé.firewalld
pour des informations détaillées sur la syntaxe, les options et les conseils de dépannage. En suivant ces étapes et les meilleures pratiques, vous pouvez gérer et dépanner efficacement les règles de pare-feu avancées à l'aide de firewalld
sur votre serveur CentOS, améliorant sa sécurité et sa stabilité.
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!