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
|
|
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 :
- Autorise le trafic en TCP sur le port 8080
- Autorise le trafic HTTPS
- Autorise le trafic sur les ports de l’application OpenSSH
- Autorise la plage de port de 5600 à 5800 en UDP
- Refuser toutes les demandes du réseau 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
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 :
|
|
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 ?