#3 Sécuriser son serveur : le pare-feu facile avec ufw

Matrix_Norris.1920x1080

Après avoir sécurisé la couche TCP/IP de notre serveur et renforcé notre accès SSH, je vous propose aujourd’hui de nous attaquer à un autre élément incontournable en sécurité : le pare-feu.

Uncomplicated Firewall (uwf) est le nouvel outil de configuration de Netfilter sous Linux. Disponible par défaut (mais pas activé) sous Ubuntu depuis la version 8.04 (je crois), uwf vient se placer en tant qu’alternative plus user frendly qu’iptables et devrait permettre, à terme, d’automatiser la configuration du pare-feu sous Linux.

D’ici là, uwf peut s’utiliser en ligne de commandes à travers différentes options toutes plus naturelles les unes que les autres. Et comme je suis en train de configurer cela chez moi, je vous propose de les découvrir avec moi !

Note pour les amoureux de l’interface graphique, la surcouche graphique s’appelle guwf.

Mais d’abord le pare-feu, c’est quoi ?

Imaginez que votre ordinateur soit un immense entrepôt où d’énormes quantités de données transitent chaque jour. Représentons ces données sous forme de paquets. Pour transiter de l’entrepôt vers l’extérieur, ces paquets sont pris en charge par des services auxquels on attribue une porte portant un numéro entre 1 et 65 536. Un service = une porte.

Le pare-feu, qu’il soit logiciel ou matériel, va s’occuper d’ouvrir ou de verrouiller ces portes afin d’autoriser ou d’interdire l’interaction d’un service avec l’extérieur. Sauf qu’en informatique, au lieu de dire « porte », on dit « port » et que l’extérieur s’appelle plus communément « Internet ». De plus, si un port est ouvert, le pare-feu permet d’affiner nos règles en ne laissant transiter que le trafic entrant (venant de l’extérieur), ou uniquement le trafic sortant (allant vers l’extérieur), ou les deux.

Longtemps considéré comme pièce maîtresse de la sécurité d’un réseau informatique, le pare-feu perd peu à peu de son utilité avec l’émergence récente du protole SSL, court-circuitant ainsi tout filtrage. Et oui, nous l’avons vu, SSL permet aujourd’hui d’encapsuler bon nombre de services.

Depuis le noyaux 2.4 de Linux, le framework implémenté par défaut fournissant le pare-feu s’appelle Netfilter. Nous allons voir comment le configurer simplement grâce à l’utilitaire ufw.

Installation

Je rappelle que je travaille sur un serveur Ubuntu 12.04, ufw est donc installé par défaut, mais pas activé. Si besoin, le paquet à installer s’appelle… ufw.

Configuration

Comme je suis en ssh, la première chose à faire avant d’activer ufw est d’autoriser le port 22 (ou un autre si vous l’avez configuré autrement).

sudo ufw allow 22

Cette règle va ouvrir le port 22 pour les protocoles TCP et UDP. Si jamais j’avais voulu autoriser que le protocole tcp, j’aurais fait :

sudo ufw allow 22/tcp

Simple non ?

Nous pouvons maintenant activer ufw sans perdre notre SSH. Notez qu’après cette commande, UFW se lancera automatiquement au démarrage et toutes les connexions autre que SSH seront interrompues. Si vous avez un site web en production sur ce serveur… Pensez à ouvrir les ports 80 et 443 pour le protocole TCP.

sudo ufw enable

Dans mon cas, mon serveur est accessible depuis l’extérieur uniquement via le web, SSH et peut-etre FTP plus tard. Sachez que plus vous avez de services et plus vous avez de failles potentielles… Choisissez donc bien ce que vous autorisez ou non.

J’ai donc besoin d’ouvrir les ports 80, 443 (https) et celui de mon SSH. Je peux aussi ouvrir le 53, qui correspond aux services DNS.

ufw allow 80
sudo ufw allow 443
sudo ufw allow 53

Maintenant que nous avons quelques règles, nous pouvons utiliser la commande :

sudo ufw status numbered

afin de les lister, chaque règle étant précédée de son ID. Cet ID vous permet d’effectuer des actions précises sur une règles. Par exemple pour supprimer la règle 3 :

sudo ufw delete 3

Alors, c’était dur ?

Bon maintenant, compliquons un peu les choses. Sur mon réseau local, j’utilise mon serveur comme serveur multimédia avec minidlna. Il faudrait donc autoriser les connexions entrantes depuis le réseau local (192.168.1.0) vers le serveur (192.168.1.10 dans mon cas). Rien de compliqué :

sudo ufw allow proto tcp from 192.168.1.0/24 to 192.168.1.10 port 8200
sudo ufw allow proto udp from 192.168.1.0/24 to 192.168.1.10 port 1900
 
sudo ufw allow proto tcp from 192.168.1.10 to 192.168.1.0/24 port 8200
sudo ufw allow proto udp from 192.168.1.10 to 192.168.1.0/24 port 1900

Voilà, vous devriez avoir toutes les clés en mains pour configurer votre pare-feu à votre guise. Comme je n’ai évidemment pas la prétention de réécrire la documentation de UFW, je vous invite à aller faire un tour sur la documentation Ubuntu, française ou anglophone.

Sans oublier les commentaires ! Bonnes manip’ 🙂

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email