Le lab des experts

Comment configurer un pare-feu avec UFW sur un GandiCloud VPS sous Ubuntu (ou Debian)

Cloud computing : quelles différences entre PaaS IaaS SaaS

UFW (pour « Uncomplicated FireWall », que l’on pourrait traduire en français par « Pare-feu simple ») est un outil de configuration simplifié en ligne de commande de Netfilter. Son utilisation est plus simple que celle de l’outil iptables et a été conçu dans ce but.

Retrouvez sa documentation complète sur la page du wiki officiel d’Ubuntu.

Merci à Gilles, agent support Hébergement, pour la rédaction de ce tuto.

Avant de vous lancer dans la mise en place de règles firewall via UFW, il est impératif d’avoir fait le nécessaire afin de vous assurer un accès à la console de votre VPS et d’avoir vérifié au préalable que cela fonctionne car en cas de problème avec UFW, vous pourriez vous retrouver à la porte de votre propre serveur sans possibilités d’accès ssh pour y remédier.

Donc avant tout, suivez la procédure concernant l’accès à la console que vous retrouverez sur cette page de la documentation de Gandi.

Une fois vous être assuré que la console vous permet bien d’accéder à votre système en tant que root vous pouvez poursuivre…

sudo apt install ufw

(nb: celui-ci est déjà installé sur les dernières versions d’Ubuntu)

Si ce n’est pas déjà le cas, activer la gestion de l’IPv6 en passant à « yes » la valeur « IPV6 » du fichier de configuration « /etc/default/ufw » :

sudo vi /etc/default/ufw

Puis, modifier ainsi au besoin :

IPV6=yes

Définir la politique par défaut, à savoir dans notre cas, bloquer tout ce qui est entrant et autoriser tout ce qui est sortant :

sudo ufw default deny incoming
sudo ufw default allow outgoing

Autoriser les connexions SSH :

sudo ufw allow ssh

Si vous aviez configuré le service ssh afin qu’il réponde sur un autre port que le port 22, par exemple le port 1022, alors utiliser la commande suivante :

sudo ufw allow 1022

Autoriser les accès http (port 80) et https (port 443) si un service web est hébergé sur votre serveur, soit avec :

sudo ufw allow http
sudo ufw allow https

soit avec :

sudo ufw allow 80
sudo ufw allow 443

Il est possible d’autoriser des plages de ports et des protocoles ainsi :

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

Vous pouvez autoriser l’accès à une adresse IP spécifique, par exemple pour autoriser l’IP source 46.226.107.174 à accéder quelque soit le port de destination :

sudo ufw allow from 46.226.107.174

Ou l’autoriser pour un port spécifique :

sudo ufw allow from 46.226.107.174 to any port 22

De même pour un subnet :

sudo ufw allow from 37.1.232.0/21

Et pour un port spécifique, par exemple le port 3306 de mysql :

sudo ufw allow from 37.1.232.0/21 to any port 3306

Il est possible de définir une règle pour une interface spécifique, par exemple eth0, ainsi :

sudo ufw allow in on eth0 to any port 3306

Et les refus d’accès sont spécifiés avec la mention « deny », par exemple pour refuser l’accès à un service :

sudo ufw deny http

Ou pour refuser l’accès aux requêtes provenant d’une ip source spécifique :

sudo ufw deny from 46.226.107.174

Maintenant, pour afficher les règles en place afin d’en supprimer une, utiliser :

sudo ufw status numbered

Cela retournera les règles en place associé à un numéro, exemple :

configurer un pare-feu avec UFW sur un GandiCloud VPS sous Ubuntu (ou Debian)

La suppression de la règle se fait ensuite en indiquant le numéro de la règle à supprimer, exemple :

sudo ufw delete 3

Cela supprimera la règle Numéro 3.

Pour supprimer une autre règle de cette façon, penser à afficher de nouveau la liste afin que la numération soit bien à jour.

L’alternative à l’utilisation des numéros de règle est de spécifier la règle réelle à supprimer.
Par exemple, si vous voulez supprimer la règle « allow http », vous pouvez l’écrire comme suit :

sudo ufw delete allow http

Vous pouvez également spécifier la règle en précisant le port utilisé plutôt que le nom du service,
Par exemple pour http, le port 80 :

sudo ufw delete allow 80

A tout moment, vous pouvez vérifier l’état d’UFW avec cette commande :

sudo ufw status verbose

Lorsque tout vous semble correct vous pouvez activer UFW avec :

sudo ufw enable

Si pour une raison ou une autre vous souhaitez désactiver UFW, lancez :

sudo ufw disable

Ainsi l’ensemble des règles que vous aviez créées avec UFW ne seront plus actives.
Pour réactiver de nouveau UFW et l’ensemble des règles que vous avez créées, lancer ‘sudo ufw enable’.

Enfin, si vous avez déjà configuré des règles UFW mais que vous décidez tout recommencer, vous pouvez utiliser la commande reset :

sudo ufw reset

Cela désactivera UFW et supprimera toutes les règles précédemment définies.
L’utilisation de « reset » vous permettra donc de tout reprendre à zéro comme après l’installation.

Pour aller plus loin, voir aussi :

UncomplicatedFirewall sur le wiki officiel d’Ubuntu (lien en anglais).

Uncomplicated Firewall, Le pare-feu tout simplement, sur ubuntu-fr.org (lien en français).