Nous l'avons vu précédemment, il est possible de piloter le pare-feu de Linux à l'aide de la commande iptables
. Le principal inconvénient est que les commandes à taper sont relativement verbeuses et difficiles à retenir. UFW permet de simplifier la gestion des règles du pare-feu. Là où sur Iptables, il faut utiliser une syntaxe assez complexe pour autoriser ou interdire un flux, il ne suffit que de quelques caractères pour faire la même chose dans un langage plus naturel et intuitif.
Installation
L'installation se fait comme à chaque fois via le gestionnaire de paquet.
apt-get install ufw
Avant de commencer
Contrairement a beaucoup d'applications que l'on a installées jusqu'à maintenant, ufw ne se démarre pas par défaut pour ne pas vous enfermer dehors. Avant de l'activer on va commencer par gérer les politiques d'accès par défaut.
Toutes les commandes seront à taper en tant qu'administrateur (sudo
).
ufw default deny incoming
ufw default allow outgoing
On ampèche ainsi l'extérieur de communiquer avec notre serveur, mais on autorise notre serveur à appeller l'extérieur. On va donc autoriser le port de notre SSH (5789 dans notre cas) afin de ne pas de retrouver enfermé hors de notre serveur.
ufw allow 5789/tcp
Par défaut, ufw ne coupe pas les connexions déjà actives, mais on n'est jamais trop prudent. Maintenant on peut activer l'outil.
ufw enable
Commandes
Pour ajouter une règle qui permet d'autoriser ou rejeter un flux il suffit de taper la commande ufw puis la règle allow (pour autoriser) ou deny (pour refuser) suivi du port.
Par exemple, pour rendre notre serveur web accessible depuis l'extérieur il suffit de taper.
ufw allow 80
On se retrouve souvent à ouvrir les mêmes ports suivant les applications que l'on a lancé sur notre serveur. ufw contient une liste d'application avec les ports standarts à ouvrir.
ufw app list
Pour autoriser les ports 80 et 443 (pour l'http et l'https) on peut alors utiliser le nom de l'application
ufw allow "WWW Full"
Si vous voulez voir l'effet des règles qu vous avez tapé, vous pouvez obtenir un résumé avec la commande status
.
ufw status verbose
Enfin si vous souhaitez supprimer une règle il vous suffit de la précéder d'un delete.
ufw delete allow 80
Pour des règles plus complexes, vous pouvez les supprimer en utilisant un chiffre désignant sa position dans la liste.
ufw status numbered
ufw delete 3
Enfin, les règles peuvent être plus poussées, si par exemple on ne souhaite autoriser qu'une ip à accéder à notre serveur ssh
# ufw <allow|deny> from <cible> to <destination> port <port>
ufw allow from 100.100.100.100 to any port 5789
Enfin une fois les règles ajoutées, vous devez recharger l'ensemble des règles d'Ufw en tapant la commande :
ufw reload