Sur un serveur, afin d’éviter de se faire attaquer de tout bord, il est utile de bloquer tout (ou presque) les ports entrants de la machine. Ainsi, la surface d’attaque devient bien plus restreinte. Nous laisserons ainsi passer uniquement le trafic pour le SSH ainsi que pour le http(s).
Pour cela, un logiciel bien connu des administrateurs systèmes est
iptables
. Mais ce dernier a aussi la réputation d’être un peu pénible à utiliser. Nous allons donc utiliser
ufw
(
Uncomplicated FireWall
) qui permet de gérer de manière plus simple les règles de parefeu. Nous allons alors interagir avec ufw et ce dernier s’occupera de dompter iptables.
Pour l’installer, un simple
apt install ufw
fera l’affaire.
Ensuite, nous allons l’activer via la commande
ufw enable
. Dorénavant, ufw démarrera au lancement du système et appliquera les règles que nous allons définir. Si vous voulez couper temporairement ou définitivement ufw, la commande antagoniste est évidemment
ufw disable
.
A tout moment vous pouvez voir l’état de ufw ainsi que les règles actuellement appliquées via la commande
ufw status verbose
Maintenant que notre pare-feu est en marche, donnons lui des consignes. Plusieurs moyens s’offrent à nous. Nous pouvons spécifier à la main le protocole (udp/tcp), les ports et les ips à filtrer. Ou plus simplement juste dire à ufw "merci de laisser passer/interdire le trafic" concernant ce service. Les services en questions étant visible dans le fichier
/etc/services
. C’est là stratégie que nous allons adopter.
Laissons donc passer le trafic pour le ssh et le http(s).
:# ufw allow ssh
:# ufw allow http
:# ufw allow https
A chaque fois, ufw vous préviendra que la règle a bien été ajoutée.
Ce tutoriel voulant aller à l’essentiel, ufw n’est pas traité dans toutes sa profondeur. Pour en savoir plus (blocage d’ip etc) vous pouvez lire la très bonne page à l’adresse : https://doc.ubuntu-fr.org/ufw
En résumé
ufw enable
ufw allow ssh
ufw allow http
ufw allow https
ufw status verbose