Vérifiez, activez, configurez et désactivez le pare-feu du système d'exploitation Linux sans vous bloquer l'accès à l'instance.
Fonctionnement
Un groupe de sécurité filtre en premier lieu tout le trafic entrant et sortant d'une instance ECS, puis le pare-feu du système d'exploitation le traite. Le trafic doit franchir ces deux couches pour atteindre l'application.
-
Groupe de sécurité (couche réseau cloud)
Fonction : Un groupe de sécurité agit comme un pare-feu virtuel qui contrôle le trafic entrant et sortant en dehors du système d'exploitation. Il constitue la première ligne de défense.
Logique : Si un groupe de sécurité refuse le trafic sur un port (par exemple, le port 22 pour SSH), toutes les requêtes externes vers ce port sont bloquées, indépendamment des paramètres du pare-feu du système d'exploitation.
-
Pare-feu système (niveau instance)
Fonction : Des logiciels de pare-feu tels que
firewalldouufws'exécutent au sein du système d'exploitation Linux et sont désactivés par défaut. Ils offrent un contrôle granulaire du trafic déjà autorisé par le groupe de sécurité.Logique : Le trafic doit passer par le groupe de sécurité avant d'atteindre le pare-feu du système d'exploitation. Les deux fonctionnent selon une logique ET : votre application ne reçoit le trafic que si les deux couches l'autorisent.
Procédure
Vérifier l'état du pare-feu
Vérifiez l'état actuel du pare-feu avant toute modification.
Alibaba Cloud Linux, CentOS, ou Red Hat
Exécutez la commande suivante pour vérifier l'état de firewalld.
sudo firewall-cmd --state
not running: le pare-feu est désactivé.running: le pare-feu est activé.Si la sortie indique
command not found,firewalldn'est pas installé. Installez-le en exécutantsudo yum install firewalld -yousudo dnf install firewalld -y.
Ubuntu ou Debian
Exécutez la commande suivante pour vérifier l'état de ufw.
sudo ufw status
Status: active: le pare-feu est activé.Status: inactive: le pare-feu est désactivé.Sous Debian, si la sortie indique
command not found,ufwn'est pas installé. Exécutezsudo apt update && sudo apt install ufw -ypour l'installer.
Activer le pare-feu
N'activez jamais le pare-feu avant d'avoir ajouté des règles autorisant le trafic nécessaire. Vous risqueriez sinon de perdre l'accès à l'instance. Autorisez toujours le trafic en premier, puis activez le pare-feu.
Alibaba Cloud Linux, CentOS, ou Red Hat
-
Autorisez de manière permanente SSH afin de maintenir votre session distante ouverte.
sudo firewall-cmd --permanent --add-service=ssh -
Rechargez le pare-feu pour appliquer les nouvelles règles.
sudo firewall-cmd --reload -
Démarrez le service de pare-feu.
sudo systemctl start firewalld -
(Facultatif) : Configurez le démarrage automatique du pare-feu au démarrage du système.
sudo systemctl enable firewalld
Ubuntu ou Debian
-
Autorisez les connexions SSH.
sudo ufw allow ssh -
Activez le pare-feu.
ufwcharge automatiquement les règlesallowexistantes et démarre par défaut au démarrage du système.sudo ufw enableLe système vous avertit que l'opération peut interrompre les connexions existantes. Saisissez
ypour confirmer. Comme SSH est déjà autorisé, votre session reste connectée.
Ouvrir un port ou un service spécifique
Alibaba Cloud Linux, CentOS, ou Red Hat
-
Ouvrir un port ou un service spécifique :
-
Par nom de service (recommandé) :
# Permanently allow the HTTP and HTTPS services sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https -
Par numéro de port :
# Permanently allow port 8080/TCP sudo firewall-cmd --permanent --add-port=8080/tcp
-
-
Appliquer les nouvelles règles : Rechargez le pare-feu après avoir ajouté ou supprimé des règles.
sudo firewall-cmd --reload -
Vérifier l'application des règles :
Cette commande liste toutes les règles actives dans la zone actuelle, y compris les services, les ports et les protocoles.
sudo firewall-cmd --list-all
Ubuntu ou Debian
Avec ufw, les règles prennent effet immédiatement et persistent après les redémarrages.
-
Ouvrir un port ou un service spécifique :
-
Par nom de service (recommandé) :
# Allow the HTTP and HTTPS services sudo ufw allow http sudo ufw allow https -
Par numéro de port :
# Allow port 3306/TCP sudo ufw allow 3306/tcp
-
-
Vérifier l'application des règles :
Exécutez la commande suivante pour afficher toutes les règles actives.
sudo ufw status
Désactiver le pare-feu
Désactivez temporairement le pare-feu pour déterminer si une politique de blocage est à l'origine d'un problème de connectivité.
Ne désactivez pas le pare-feu en production. Réactivez-le après les tests ou une fois le problème résolu.
CentOS, Red Hat, ou Alibaba Cloud Linux
sudo systemctl stop firewalld
Ubuntu ou Debian
sudo ufw disable
Application en production
-
Bonnes pratiques
Principe du moindre privilège : N'ouvrez que les ports essentiels à votre application. Pour les services principaux tels que les bases de données, autorisez l'accès uniquement depuis des adresses IP internes de confiance et évitez toute exposition à Internet.
Maintenir une connexion de secours : Avant de modifier les règles du pare-feu, établissez une connexion distante à l'instance. Une session existante persiste après les modifications de règles et sert de canal de secours.
-
Prévention des risques
-
Journalisation et surveillance : Auditez régulièrement les journaux du pare-feu pour détecter les tentatives d'accès inhabituelles.
firewalld: les journaux sont gérés parjournald. Consultez-les avecsudo journalctl -u firewalld.ufw: les journaux se trouvent dans/var/log/ufw.log.
-
FAQ
-
Service toujours inaccessible après la désactivation du pare-feu du système d'exploitation
Vérifiez les points suivants dans l'ordre :
Vérifier le groupe de sécurité : Connectez-vous à la page Groupes de sécurité de la console ECS. Confirmez que les règles entrantes autorisent le trafic sur le port requis depuis les adresses IP sources appropriées.
Vérifier l'état d'écoute du service : Confirmez que l'application écoute sur l'adresse attendue (par exemple,
0.0.0.0) et le port correspondant. Exécutezss -tunlp | grep <port_number>ounetstat -tunlp | grep <port_number>sur l'instance.Vérifier la liste de contrôle d'accès réseau (ACL) : Si votre instance est associée à une liste de contrôle d'accès réseau, vérifiez que ses règles autorisent le trafic concerné.
-
Résoudre une erreur command not found**
L'outil de gestion du pare-feu n'est pas installé. Installez-le :
Sous CentOS/Red Hat/Alibaba Cloud Linux, exécutez
sudo yum install firewalld -yousudo dnf install firewalld -y.Sous Ubuntu/Debian, exécutez
sudo apt update && sudo apt install ufw -y.