
Pare-feu UFW + Script
1. Qu’est-ce qu’un pare-feu ?
Un pare-feu est un système de sécurité réseau qui surveille et contrôle le trafic réseau entrant et sortant en fonction de règles de sécurité prédéterminées. Il agit comme une barrière entre votre ordinateur ou votre réseau et l’internet ou d’autres réseaux.
2. Qu’est-ce que UFW ?
UFW (Uncomplicated Firewall) est une interface simplifiée pour gérer le pare-feu iptables sous Linux. Il a été conçu pour faciliter la configuration des règles de pare-feu en ligne de commande, tout en offrant suffisamment de flexibilité pour gérer les paramètres réseau.
3. Pourquoi utiliser UFW ?
UFW est particulièrement adapté pour les utilisateurs qui :
- N’ont pas une grande expérience avec les outils complexes comme iptables.
- Souhaitent une configuration simple et rapide d’un pare-feu.
- Veulent une sécurité de base pour leur serveur ou station de travail.
Il est souvent utilisé dans des scénarios où la configuration des règles de filtrage réseau est relativement simple, comme par exemple la gestion des ports entrants et sortants.
4. Fonctionnement d’UFW
UFW fonctionne en définissant des règles pour autoriser ou bloquer le trafic réseau selon des critères comme les ports, les adresses IP, et les interfaces réseau.
Lorsque vous utilisez UFW, vous ne gérez pas directement iptables. UFW génère et applique les règles iptables en coulisse. Vous utilisez des commandes simples pour configurer votre pare-feu sans avoir à entrer dans les détails de iptables.
5. Les Avantages d’UFW
Voici les avantages d’UFW :
-Simplicité d’utilisation : Interface facile et intuitive pour configurer un pare-feu, idéale pour les utilisateurs non experts.
– Rapidité de configuration : Permet de mettre en place un pare-feu fonctionnel en quelques minutes, sans besoin de connaissances approfondies.
-Gestion facile des règles : Commandes simples pour ajouter, supprimer ou modifier des règles, facilitant la gestion du pare-feu.
-Profils de services prédéfinis : Permet d’ajouter facilement des services courants (SSH, HTTP, FTP) sans avoir à configurer manuellement les ports.
-Journalisation intégrée : Possibilité de suivre les tentatives de connexion et les événements réseau avec des logs détaillés.
-Conformité à la sécurité : Aide à sécuriser le système en bloquant le trafic indésirable et en autorisant uniquement les services nécessaires.
-Contrôle granulaire sur le trafic : Permet de restreindre l’accès en fonction des adresses IP, des ports ou des interfaces réseau.
-Compatibilité avec iptables : Utilise iptables en arrière-plan, offrant la flexibilité d’une configuration avancée si nécessaire.
-Support communautaire et documentation : Large communauté et documentation abondante pour résoudre rapidement les problèmes courants.
-Interface graphique (facultative) : Possibilité d’utiliser une interface graphique (gufw) pour une gestion encore plus simple.
-Faible impact sur les performances : Solution légère qui n’affecte pas les performances du système.
-Mise à jour et maintenance faciles : Facile à maintenir grâce à des mises à jour régulières via le gestionnaire de paquets.
6. Environnement
Nous sommes sur des VM avec un système d’exploitation Linux (Parrot)
Nous utiliserons deux VMs avec VMware Workstation 17 Pro :
1 Serveur / Routeur (2 Carte Réseaux)
1 Poste Admin (1 Carte Réseau)

7. Installation du Pare-Feu UFW
- Pour commencer, ouvrez votre terminal et effectuons une mise à jour
- Sudo apt-get update

On maintenant passer à l’installation du pare-feu UFW
- Saisir cette commande « sudo apt-get installc ufw »

Mon système indique que UFW (Uncomplicated Firewall) est déjà installé. Le message précise qu’il n’est pas nécessaire de l’installer, car il est déjà à jour.
Syntaxe de base d’UFW
La syntaxe de base de l’UFW est la suivante :
- Sinon faite une petite « man ufw » pour voir toutes les syntaxes

Maintenant vérifions que notre pare-feu est bien activé, pour cela il suffit de faire une commande.
- Saisissez la commande « sudo systemctl status ufw »

De mon côté, il est déjà activé. Si, dans votre cas, il est désactivé, voici une commande pour l’activer.
- « sudo ufw enable » si vous souhaitez l’activer.

- « sudo ufw disable » si vous souhaitez le désactiver.

Une fois votre pare-feu UFW activé, il faudra bloquer toutes les connexions entrantes et sortantes, etc. Nous voulons une sécurité maximale.
- Pour cela, entrez les trois commandes suivantes :
- sudo ufw default deny incoming
Bloque par défaut toutes les connexions entrantes.
Cela signifie qu’aucun appareil extérieur ne peut initier de connexion vers votre machine (sauf si vous ajoutez une règle spécifique pour l’autoriser).
Exemple : Un serveur web ne pourra pas recevoir de requêtes HTTP/S tant que vous n’autorisez pas le port 80 ou 443.
- sudo ufw default deny outgoing
Bloque par défaut toutes les connexions sortantes.
Votre machine ne pourra plus initier de connexions vers l’extérieur (Internet ou d’autres appareils sur le réseau).
Exemple : Vous ne pourrez plus naviguer sur le web, envoyer des pings ou vous connecter à un serveur distant tant que vous n’autorisez pas explicitement ces connexions.
- sudo ufw default deny routed
Bloque par défaut tout le trafic routé (transitant par la machine).
Cela concerne les machines configurées en routeur ou passerelle, empêchant le transfert de paquets entre différents réseaux.
Exemple : Si votre serveur fait du NAT pour partager une connexion Internet avec d’autres appareils, ces derniers ne pourront plus accéder au réseau tant que vous ne créez pas une règle pour les autoriser
Pour le moment, notre serveur ne permet plus aucun accès. Si vous voulez vous assurer que les règles ont bien été appliquées…
- Faites un sudo ufw status verbose
- Si vos règles sont passées vous devriez avoir ce résultat.

8. Configuration IP et NAT
Sur votre Serveur/routeur vous devriez avoir 2 cartes Réseaux
- Nous pour notre cas vu que nous sommes sur des VMWare
- J’ai une carte réseau en Wmnet0 (Mon réseau local) et une autre en Wmnet8 NAT (Mon nat)
Sur notre serveur nous allons devoir donner une adresse IP (local) pour cela, il faut ouvrir le terminal de votre serveur/routeur
Faite un « ip a » vous pouvez voir sur le Screenshot j’ai bien deux interface ens33 (mon réseau local) et mon ens37 (Wan)

Maintenant donnons-lui une adresse IP a mon interface ens33, mon interface a déjà une adresse IP, mais là votre n’aura sans doute pas d’adresse ip au début.
- Donc on va se rendre et modifier « sudo nano /etc/network/interfaces »
- Ensuite je vais ajouter cette commande à mon fichier.
IP Serveur/Routeur
- auto ens33 # l’interface ens33 correspond à mon interface LAN
- iface ens33 inet static # Je met mon interface ens33 en static
- address 192.168.50.1 # adresse 50.1 car c’est mon serveur
- netmask 255.255.255.0
- gateway 192.168.50.1
- dns-nameservers 8.8.8.8 8.8.4.4
Maintenant faite donc la même chose sur votre Poste Admin
- Donc on va se rendre et modifier « sudo nano /etc/network/interfaces »
- Ensuite je vais ajouter cette commande à mon fichier.
IP Client Admin
- auto ens33 # l’interface ens33 correspond à mon interface LAN
- iface ens33 inet static # Je mets mon interface ens33 en statique
- address 192.168.50.250 # adresse 50.250 car c’est mon poste Admin
- netmask 255.255.255.0
- gateway 192.168.50.1 # l’adresse mon routeur (donc mon serveur)
- dns-nameservers 8.8.8.8 8.8.4.4
Un reboot des deux machines et on est repartit pour mettre une règle sur notre NAT
On va activer le routage de notre serveur
Si vous utilisez un serveur comme routeur (qui possède deux interfaces, une pour le réseau local et l’autre pour Internet), vous devez activer le routage IP sur ce serveur.
Activer le routage IP sur le serveur :
Exécutez cette commande pour vérifier si le routage IP est activé :
- cat /proc/sys/net/ipv4/ip_forward
- Si la sortie est
0
, cela signifie que le routage IP est désactivé.

Dans le cas ou vous avez un 0 est qu’il est désactivé faite cette commande :
- sudo sysctl -w net.ipv4.ip_forward=1
Voila notre routage est activer, maintenant on va mettre une règle sur le NAT.
9. Mettre une règle en place pour notre NAT
- De retour sur votre serveur/routeur.
- Tapez cette commande pour rajouter une règle de NAT
- sudo nano /etc/ufw/before.rules
- Ajoute cette règle avant
*filter
(au début du fichier). Cette règle permet au serveur de masquer les adresses IP de ton réseau local lorsqu’elles accèdent à Internet mon ens37 est mon adresse WAN de mon serveur :
sudo iptables -t nat -A POSTROUTING -o ens37 -j MASQUERADE

Maintenant on va rajouter des règles pour pouvoir Ping qui on souhaite, toujours dans le même fichier beaucoup plus bas on va rajouter des commande Iptables ICMP, car UFW ne supporte pas l’ICMP.
Il faut bien mettre les commandes après # ok icmp code for FORWARD
# Autoriser le ping sortant
-A ufw-before-output -p icmp –icmp-type echo-request -j ACCEPT
-A ufw-before-output -p icmp –icmp-type destination-unreachable -j ACCEPT
-A ufw-before-output -p icmp –icmp-type time-exceeded -j ACCEPT
-A ufw-before-output -p icmp –icmp-type parameter-problem -j ACCEPT

Sauvegarder bien votre fichier Appuie sur Ctrl + X
, puis Y
, et enfin sur Enter
pour enregistrer et quitter.
Maintenant place au script.
10. Script
Voici le script, en question.





Voilà le résultat quand on l’exécute.
- Sudo ./ufw.sh
- L’interface du script
- Le Lien pour télécharger le script : https://uploadnow.io/files/y1XtB8G

Voici une l’interface des règles actuelles, qui nous permet d’avoir internet sur notre Serveur ainsi que sur notre Poste Admin

Je vous mets la liste des commandes s’il n’y avait pas de script dans l’ordre.
- sudo ufw allow out 53
- sudo ufw allow out 80
- sudo ufw allow out 443
- sudo ufw route allow in on ens33 out on ens34 from 192.168.50.250 to any
Les règles de 5 à 9 sont pour des ipv6.
Mais j’aurais très bien pu rajouter des ouvertures de port à mon Serveur
Par exemple :
FTP : sudo ufw allow out 21
SSH : sudo ufw allow out 22
Share this content:
MB
Travail impressionnant cela ma beaucoup aidé.
Merci !
1 commentaire