Sommaire

UFW : Le Firewall pas Compliqué

Introduction

Uncomplicated Firewall est comme son nom l’indique, un logiciel de pare-feu.
Ce nom précise aussi qu’il n’est pas compliqué, je suis plutôt d’accord (et dans 2 minutes vous aussi).

Installation

1
2
sudo apt update
sudo apt install ufw

Identification des ports

Nous allons dans un premier temps identifier les ports à ouvrir.

Avec la commande sudo ufw app list, ufw nous donne une liste des éléments courants qu’il a identifiés sur notre machine.

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

Pour avoir des informations supplémentaires sur une des applications on utilise la commande :
sudo ufw app info '<nom de l'application>'

Par exemple, sudo ufw app info 'Apache Secure' me donne :

Profile: Apache Secure
Title: Web Server (HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web server.

Port:
443/tcp

Pour identifier davantage de ports ouverts, je vous suggère de faire un nmap vers votre serveur.

Configuration

On configure donc notre firewall avant d’appliquer son filtrage.

Voici des exemples de configuration qui feront respectivement les choses suivantes :

  1. Autorise le trafic en TCP sur le port 8080
  2. Autorise le trafic HTTPS
  3. Autorise le trafic sur les ports de l’application OpenSSH
  4. Autorise la plage de port de 5600 à 5800 en UDP
  5. Refuser toutes les demandes du réseau 192.168.52.0/24
1
2
3
4
5
sudo ufw allow 8080/tcp
sudo ufw allow https
sudo ufw allow 'OpenSSH'
sudo ufw allow 5600:5800/udp
sudo ufw deny from 192.168.52.0/24

Activation

Une fois qu’on a bien ajouté toutes ces règles (on n’oublie pas SSH !), on peut appliquer les règles avec un sudo ufw enable et on valide avec un “y” .

On peut vérifier le statut avec la commande sudo ufw status

Évidemment, on peut désactiver le pare-feu avec un sudo ufw disable.

Suppression de règles

Le plus simple est d’afficher les règles de manière énumérer afin de supprimer les règles via leur indice.

On les liste donc avec un sudo ufw status numbered.
Si l’on veut supprimer la règle 2 on utilisera alors la commande sudo ufw delete 3

On peut aussi vouloir repartir de zéro. Pour cela, la commande est sudo ufw reset.

Docker s’en fout

Gros problème !
Mes conteneurs n’ont plus internet depuis !
Du coup, je suis revenu en arrière …

Pourquoi une section Docker dans ce tutoriel ? Et bien parce que Docker s’en bas les 🍒 !
En fait, il créer des règles iptables tout seul comme un grand. Du coup, les conteneurs que j’ai “reverse-proxysé” pour les accès en HTTPS restent accessibles en HTTP malgré la non-exposition des ports HTTP via UFW !

Pour remédier à cela, il faut éditer le script de lancement de Docker (docker.service).
J’ai retrouvé l’emplacement du fichier avec la commande :
locate docker.service | grep /etc/systemd

Dans ce fichier, il faut ajouter --iptables=false à la fin de la variable ExecStart :

ExecStart=/usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd.sock –iptables=false

Du coup, on recharge la configuration de systemd et on relance Docker :

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

Conclusion

Bon, vous n’avez plus d’excuses pour ne pas activer votre pare-feu.
Pourquoi est-ce qu’Ansible n’est pas aussi simple ?