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 #
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 :
- 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
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 #
Avertissement
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ée 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 :
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 ?