Lorsque j’ai commencé à utiliser Linux en 1997, travailler avec le pare-feu intégré n’était pas à la portée de tout le monde. En fait, c’était assez compliqué. A partir de 1998 environ, si vous vouliez gérer la sécurité d’un système, vous deviez apprendre iptables (qui est une suite de commandes pour manipuler le système de filtrage de paquets Netfilter).
Par exemple, si vous vouliez autoriser tout le trafic entrant du Secure Shell (SSH), vous deviez utiliser des commandes comme celle-ci :
sudo iptables -A INPUT -p tcp –dport 22 -m conntrack –ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp –sport 22 -m conntrack –ctstate ESTABLISHED -j ACCEPT
C’est très bien si vous avez le temps non seulement de maîtriser le système d’exploitation Linux, mais aussi de connaître les subtilités de la gestion d’un système de sécurité complexe. Pour être juste, j’ai pris le temps nécessaire et j’ai finalement été capable de gérer la sécurité de mes systèmes avec iptables.
Cependant, plus j’étais occupé, plus il devenait difficile de maintenir le niveau de maîtrise nécessaire pour rester à jour avec iptables. Avec le temps, les choses ont commencé à devenir plus accessibles et certains développeurs de distributions Linux ont commencé à réaliser qu’il était nécessaire de simplifier le système. L’un de ces pare-feu Linux plus accessibles a vu le jour avec la distribution Ubuntu (vers la version 12.04). Ce pare-feu est judicieusement nommé Uncomplicated Firewall.
Uncomplicated Firewall (UFW) est un front-end pour iptables qui met l’accent sur la simplicité. Comparé à iptables, UFW peut-être manipulé par tout le monde.
Voyons à quel point UFW simplifie la gestion du pare-feu de votre système Linux.
Il y a deux choses que vous devez savoir sur UFW :
- C’est un outil en ligne de commande.
- Des outils d’interface graphique sont disponibles pour vous faciliter la tâche.
Les bases de la ligne de commande UFW
La commande UFW est en fait assez simple. Reprenons l’idée de SSH évoquée plus haut. Disons que vous voulez permettre à d’autres systèmes d’accéder à votre machine par SSH (sur le port 22).
Tout d’abord, vous devez vérifier si l’UFW est activé. Devinez quoi… il ne l’est pas par défaut. Testez-le en ouvrant une fenêtre de terminal et en lançant la commande :
sudo ufw status
Vous verrez probablement ce qui suit :
Status: inactive
Comment l’activer ? En envoyant la commande :
sudo ufw enable
La sortie de la commande devrait être :
Le pare-feu est actif et activé au démarrage du système.
Félicitations, votre pare-feu est maintenant actif.
Quant à l’utilisation de base de l’UFW, elle ressemble à quelque chose comme ceci :
sudo ufw ARGUMENT SERVICE
Où ARGUMENT est soit « allow, « deny », « reject », « limit », « status », « show », « reset », « reload », « enable », « disable » et SERVICE est le service avec lequel vous voulez travailler (tel que SSH ou HTTP).
Ensuite, nous devons autoriser le trafic SSH dans le système. Croyez-le ou non, c’est aussi simple que cela :
sudo ufw allow ssh
Vous pouvez également exécuter la commande en utilisant le numéro de port, comme ceci :
sudo ufw allow 22
Ou, si vous exécutez SSH sur le port 2022, cette commande serait :
sudo ufw allow 2022
Si vous travaillez sur un serveur et que vous devez autoriser le trafic HTTP, cette commande sera la suivante :
sudo ufw allow http
Allons un peu plus loin
L’un des avantages d’UFW est que même l’utilisation de fonctions plus avancées ne nécessite pas de connaissances particulières. Disons par exemple que vous souhaitez autoriser le trafic SSH, mais uniquement à partir d’une adresse IP spécifique sur votre réseau.
Si vous avez déjà autorisé le trafic SSH entrant, vous devrez d’abord supprimer cette règle avec :
sudo ufw delete allow ssh
Maintenant, si vous essayez de vous connecter en SSH à la machine, le pare-feu bloquera la tentative. Ainsi, autorisons les connexions SSH à partir de l’adresse IP 192.168.1.152. Pour cela, nous devons lancer la commande :
sudo ufw allow from 192.168.1.152 to any port ssh
Après avoir exécuté la commande ci-dessus, vous devriez être en mesure de vous connecter à la machine, via SSH, uniquement à partir du système distant à l’adresse IP 192.168.1.152.
Qu’en est-il de l’interface graphique ?
Si les lignes de commande ne sont pas votre tasse de thé, il y a toujours un outil GUI pratique pour vous faciliter la tâche. L’un de ces outils est GUFW, qui vous permet de pointer et de cliquer sur les règles de pare-feu UFW. Si UFW n’est pas installé par défaut sur votre distribution Linux, vous le trouverez dans votre magasin d’applications. Une fois installée, ouvrez l’application et cliquez sur l’onglet Règles :
L’outil GUFW rend la configuration de votre pare-feu encore plus facile. Image : Jack Wallen.
Comme vous pouvez le voir, j’ai déjà ajouté quelques règles UFW. Il faut garder à l’esprit est que vous ne pouvez pas modifier les règles qui ont été ajoutées via la ligne de commande UFW. Ajoutons la même règle via l’interface graphique que nous venons de le faire via la ligne de commande. Cliquez sur + et ensuite (dans l’onglet Preconfigured), sélectionnez ce qui suit :
- Policy – Allow ;
- Direction – In ;
- Category – All ;
- Subcategory – All ;
- Application – SSH.
Cette seule action suffira à créer la règle autorisant tout le trafic SSH dans votre système. Si, toutefois, vous souhaitez n’autoriser que le trafic provenant d’une seule adresse IP, vous devez cliquer sur l’onglet Advanced et remplir les champs suivants :
- Name – le nom de votre choix ;
- Policy – Allow ;
- Direction – In ;
- Interface – All Interfaces ;
- From – 192.168.1.152.
Ajout d’une règle à UFW pour autoriser uniquement le trafic SSH provenant de l’adresse IP 192.168.1.62. Image : Jack Wallen.
Cliquez sur Add pour insérer votre règle dans le pare-feu.
Voilà, l’introduction au Uncomplicated Firewall est terminée. Mais ne pensez pas qu’UFW n’est rien de plus qu’un système de pare-feu très basique. Vous pouvez en fait obtenir un système beaucoup plus compliqué ! Mais pour l’essentiel, UFW est assez facile à utiliser pour tout le monde.
Source : ZDNet.com
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));