Comment ouvrir un port pour une adresse IP spécifique dans Firewalld

Comment puis-je autoriser le trafic d’une adresse IP spécifique sur mon réseau privé ou autoriser le trafic d’un réseau privé spécifique via firewalld, vers un port ou un service spécifique sur un serveur Red Hat Enterprise Linux (RHEL) ou CentOS ?

Dans ce court article, vous apprendrez à ouvrir un port pour une adresse IP ou une plage de réseau spécifique dans votre serveur RHEL ou CentOS exécutant un pare-feu firewalld.

Le moyen le plus approprié de résoudre ce problème consiste à utiliser une zone firewalld. Vous devez donc créer une nouvelle zone qui contiendra les nouvelles configurations (ou vous pouvez utiliser l’une des zones sécurisées par défaut disponibles).

Ouvrir le port pour une adresse IP spécifique dans Firewalld

Créez d’abord un nom de zone approprié (dans notre cas, nous avons utilisé mariadb-access pour autoriser l’accès au serveur de base de données MySQL).

# firewall-cmd --new-zone=mariadb_access --permanent

Ensuite, rechargez les paramètres firewalld pour appliquer la nouvelle modification. Si vous ignorez cette étape, vous risquez d’obtenir une erreur lorsque vous essayez d’utiliser le nouveau nom de zone. Cette fois-ci, la nouvelle zone devrait apparaître dans la liste des zones comme indiqué dans la capture d’écran suivante.

# firewall-cmd --reload# firewall-cmd --get-zones
 Vérifiez la Zone Firewalld
Vérifiez la Zone Firewalld

Ensuite, ajoutez l’adresse IP source (10.24.96.5/20) et le port (3306) que vous souhaitez ouvrir sur le serveur local comme indiqué. Rechargez ensuite les paramètres firewalld pour appliquer les nouvelles modifications.

# firewall-cmd --zone=mariadb-access --add-source=10.24.96.5/20 --permanent# firewall-cmd --zone=mariadb-access --add-port=3306/tcp --permanent# firewall-cmd --reload
 Port ouvert pour une adresse IP spécifique dans Firewalld
Port ouvert pour une adresse IP spécifique dans Firewalld

Vous pouvez également autoriser le trafic de l’ensemble du réseau (10.24.96.0/20) vers un service ou un port.

# firewall-cmd --zone=mariadb-access --add-source=10.24.96.0/20 --permanent# firewall-cmd --zone=mariadb-access --add-port=3306/tcp --permanent# firewall-cmd --reload

Pour confirmer que la nouvelle zone a les paramètres requis ajoutés ci-dessus, vérifiez ses détails avec la commande suivante.

# firewall-cmd --zone=mariadb-access --list-all 
 Afficher les Détails de la Zone Firewalld
Afficher les Détails de la Zone Firewalld

Supprimer le port et la zone de Firewalld

Vous pouvez supprimer l’adresse IP source ou le réseau comme indiqué.

# firewall-cmd --zone=mariadb-access --remove-source=10.24.96.5/20 --permanent# firewall-cmd --reload

Pour supprimer le port de la zone, exécutez la commande suivante et rechargez les paramètres firewalld:

# firewall-cmd --zone=mariadb-access --remove-port=3306/tcp --permanent# firewall-cmd --reload

Pour supprimer la zone, exécutez la commande suivante et rechargez les paramètres firewalld:

# firewall-cmd --permanent --delete-zone=mariadb_access# firewall-cmd --reload

Last but not list, vous pouvez également utiliser des règles enrichies firewalld. Voici un exemple :

# firewall-cmd --permanent –zone=mariadb-access --add-rich-rule='rule family="ipv4" source address="10.24.96.5/20" port protocol="tcp" port="3306" accept'