Comment configurer un pare-feu avec UFW sur un GandiCloud VPS sous Ubuntu (ou Debian)
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 :
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).
Tagged in Cloud