ZFW FIREWALL
Pare-Feu Hôte pour ZimaOS
ZFW est un module pare-feu hôte développé par chicohaager / Lintux pour ZimaOS, conçu pour combler l'absence de pare-feu natif dans le système.
Il s'installe en tant que module sysext et apparaît comme une tuile sur le tableau de bord ZimaOS, offrant une interface web et un tableau de bord de sécurité en temps réel.
1.0. EFFICIENCE
- Fonctionnalité98%
- Facilité d'Installation80%
- Facilité de Configuration de l'UI80%
- Expérience Utilisateur 85%
Ce Pare-Feu permet d'ouvrir uniquement les ports d'écoute nécessaires aux piles docker en fonctionnement. Une liste autorisée par défaut pour les ports natifs (INPUT) et une liste bloquante pour les ports publiés par Docker (filtrage via la chaîne DOCKER-USER). Un mécanisme de dead-man qui révoque automatiquement les règles après 120 secondes si l'administrateur ne les confirme pas, empêchant le verrouillage à distance. Support IPv6, détection de menaces via GeoIP, et classification en direct des ports TCP (LAN, bloqué, boucle locale). Il permet de conserver l'accès via Tailscale, ZeroTier et Pangolin/Newt tout en sécurisant les services comme Samba et NFS.... VOIR LE GITHUB.
Une application de sécurité réseau indispensable pour un serveur en production.
2.0. INSTALLATION
La configuration doit être opérée avec la méthode du Terminal. Ce module s'intégrera dans le système de ZimaOS. La mise à jour ou la désinstallation s'opérera aussi via le Terminal web. Si tu débutes, pas d'inquiétude, et suis simplement les opérations décrites dans l'article.
Trois types d'installation sont proposés :
2.1. Installation de ZFW
2.2. Mise à jour ZFW
2.3. Désinstallation de ZFW
2.1. Installation de ZFW
2.1.1. Télécharger le fichier (capture 2.1.1)
Ouvre sur ton navigateur, la page web des versions éditées pour Zima-Backup à https://github.com/chicohaager/zfw/releases
Ensuite, au niveau du chapitre Assets choisis la version de l'architecture du CPU de ta machine (amd64 ou arm64).
Clique sur le lien du fichier se terminant par .tar.gz pour le télécharger (via SMB) directement dans le dossier /DATA/Download de ton ZimaOS (ou en deux temps : sur ton PC puis sur ZimaOS).
2.1.2. Sur le terminal (capture 2.1.2)
Copier-coller ce qui suit (pour se positionner sur le dossier contenant le fichier)
cd /DATA/DownloadsProcède à l'extraction avec la commande tar suivi du nom du fichier téléchargé (ici en amd64).
Attention : modifie le nom du fichier en fonction de la version.
tar xzf zfw-1.0.26-amd64.tar.gzPuis, positionne-toi sur le dossier décompressé avec la commande cd
cd zfw-1.0.26-amd64Et active le fichier d'installation du module avec la commande sh
Le mot de passe est à nouveau demandé pour valider l'installation
sudo sh install.shLe module est à présent installé, tape exit sur le Terminal pour le fermer.
2.1.1
2.1.2
2.2. Mettre à jour ZFW
Pour mettre à jour ZFW, il suffira de répéter la démarche d'installation avec le fichier .tar.gz le plus récent.
2.3. Désinstaller ZFW
Pour désinstaller ZWF, téléchargez le fichier (fourni par Lintux) ci-après dans le dossier /DATA/Downloads de votre serveur ZimaOS.
Connecte-toi sur le Terminal web.
Déplace-toi sur le dossier où est situé le fichier téléchargé (ici sur /Downloads)
cd /DATA/DownloadsEt active le fichier de désinstallation du module avec la commande sh.
Le mot de passe de confirmation est demandé.
sudo sh uninstall.shLe module ZFW est à présent intégralement désinstallé, tape exit sur le Terminal pour le fermer.
2.3
3.0. PRINCIPES
Les fonctionnalités, sont détaillées et illustrées sur la page GitHub de l'application.
Reviens sur l'interface de ZimaOS et rafraîchis la page. Une nouvelle icône a été créée : ZFW Firewall
Clique sur la tuile pour ouvrir l'interface web graphique du Pare-feu.
3.1. Onglet Firewall (Pare-Feu)
La page d'atterrissage à la première ouverture indique le Pare-Feu en mode désactivé (off).
Le bouton Safe Apply permet de tester la configuration et d'activer le Pare-Feu pendant deux minutes.
Au bout de ce temps si tu n'as pas confirmé, le Pare-Feu se désactivera à nouveau. Tu disposes avec cette fonctionnalité de tout le temps nécessaire pour vérifier que tous les services restent accessibles pour l'administration et / ou exposés (si publiques).
Le Bouton Apply valide (sans tester pendant 2 min) la configuration.
Le bouton Confirm active lePare-Feu ZWF
Pour désactiver le Pare-Feu, clique sur Remove Firewall (pour un arrêt sans délai) ou sur Safe Apply et celui-ci se désactivera au bout de 2 min.
3.2. Onglet Rules (Règles)
Ce sont les ports qui sont autorisés pour un accès aux fonctionnalités (WebUI, SMB, zéro-conf) et aux applications actives sur votre ZimaOS.
Lors de la première installation, ZFW autorise les ports par défaut d'une installation fraiche de ZimaOS : Accès à l'interface en 80 et 443 + Accès en SSH (Terminal) en 22 + Accès aux services SMB (SAMBA) + Découverte des services locaux (machines) sur le réseau en 5353.
Si des apps docker en mode Bridge (Pont) sont déjà installés avant la mise en œuvre de ZFW, elles sont reconnues et indiquées sur cette première ouverture. Après l'activation de ZFW, il te faudra ajouter les ports d'écoute de chaque nouvelle application.
Les apps docker en mode Host (Hôte) qui sont déjà installées avant la mise en œuvre de ZFW, ne sont pas reconnues sur la première ouverture. Il te faudra ajouter les ports concernés pour un accès effectif
Si tu constates qu'une application déployée sur ton serveur n'est pas répertoriée (accès bloqué), tu devras ajouter manuellement le port correspondant. Si tu débutes laisse la "zone" en "Automatic".
NB Les deux seules applications installées en mode host, sur mon serveur pour cet article, sont Disk Monitor et Update Monitor (qui communiquent en mode host). Leurs ports respectifs n'apparaissent pas sur cette première ouverture de ZFW. Quand j'active le Pare Feu en mode test (Safe Apply), l'accès à celles-ci est refusée. Il me faudra ouvrir les ports correspondants.
3.3. Onglets complémentaires
Utilise les autres onglets uniquement à titre informatif.
- Exposure (exposition des ports) : Action du Pare-Feu et configuration avancée.
- Events : Journal des évènements
- Connections, Audit et Versions
3.1
3.2
3.3
3.4. Accès de secours
Il est important d'utiliser la fonctionnalité Safe Apply afin de vérifier l'accès effectif à tes applications, avant de confirmer.
Ne rien modifier dans l'onglet Exposure.
Par prudence, active la connection Zero-Tier (application ZimaOS) pour un accès en cas d'erreur de configuration.
Pour un guide d'utilisation complet — rester accessible, ordre des règles, blocage géographique limites et récupération — voir MEILLEURES PRATIQUES.md.
3.5. Récapitulatif
Principe 1 : le pare-feu ferme tous les ports d'écoute du réseau local (en IPv4) des piles docker qui ne sont pas autorisés (onglet Rules) + autorise l'accès à Zéro Tiers et SSH local (pour ne pas se retrouver à la porte en cas de fausse manip).
Principe 2 : lors de la première installation du Pare-Feu (par défaut désactivé), les ports d'écoute de chacune des piles docker déjà installées sont reconnues et inscrites dans l'onglet "Rules". Il faut ajouter (si seule liaison en locale) les piles en "host" ainsi que l'accès à l'interface ZimaOS si changé de 80 à autre (comme 82) pour cause de Proxy inversé installé (utilise les ports 80, 81, 443).
Il faut supprimer ou ne pas ajouter deux fois le même port local si plusieurs fonctionnalités l'utilisent. Exemple : le port de l'interface est connu en 80 + le Proxy-Inversé en 80 aussi (donc supprimer l'une des lignes).
Principe 3 : par défaut seul le réseau local est autorisé et uniquement en IPv4. Par exemple si le 443 est autorisé, il ne fonctionnera que sur le réseau local, mais pas en externe.
Principe 4 : avant d'activer le Pare-Feu, ZWF permet de tester pendant 2 minutes une simulation d'activation et revient en désactivation, avec le bouton "Safe Apply".
Principe 5 : pour ouvrir un port à l'externe accessible aux IPv4 et IPv6, il faut indiquer la source en mode "any".
3.6. Cas Pratiques
1. Lors de la création d'une nouvelle pile docker, inscrire le port d'écoute local si nécessaire (inutile si uniquement HTTPS).
2. Pour un accès externe indiquer la règle du port concerné en "Any + Auto" (en + du routeur bien sûr).
3. Pour la validation d'un Nom de Domaine (NDD) ouvrir momentanément le port 80 en source "Any".
4. Tester l'accès externe avec, par exemple à domicile, un téléphone portable déconnecté de la WiFi.
⇾ Indique le nom du service pour chaque port si tu as pas mal d'apps docker.
⇾ Il y a possibilité d'autoriser et/ou d'interdire des IP ainsi que des Pays (création des "Rules").
⇾ Comme sur un Pare-Feu "classique", utilise (si besoin) l'ordre hiérarchique des colonnes (1, 2, 3...) ⇾ la première règle prime sur la seconde.
3.7. Utilisateurs de VPN
Note : Il s'agit ici d'une connexion directe sur votre serveur via le protocole VPN. L'utilisation d'un "VPN commercial" (type NordVPN ou autres) pour détourner / cacher votre IP Publique requiert une configuration avancée (sans aucune garantie d'accès à votre serveur protégé par ZFW).
Traduction de la note du développeur pour la v1.0.24 de ZFW :
Remarque pour les utilisateurs de VPN en général
L'wg+autorisation automatique ne s'applique que lorsque WireGuard se termine sur l'hôte ZimaOS. Si votre VPN se termine sur votre routeur (une Freebox, une passerelle UniFi, un Fritz !Box), les clients arrivent sur l'interface LAN avec une adresse source du sous-réseau VPN, et les règles de démarrage —qui sont épinglées sur le LAN CIDR ZFW détecté au moment de l'installation— ne leur correspondront pas. Ajoutez une règle d’autorisation avec ce sous-réseau VPN comme source, dans la bonne zone.
En résumé : créer, pour un VPN installé sur un appareil routeur (Box, passerelle type Unifi), une règle correspondante à la plage CIDR (par exemple : si ton réseau local est sur la plage 192.168.1.0, celle générée sur le VPN de la Box diffère, comme 10.10.0.0).
4.0. UTILISATION
4.1. Ports à autoriser
Comme vu précédemment, à la première ouverture de ZFW, les ports Sytème de ZimaOS sont autorisés par défaut en accès uniquement sur le réseau local : avec l'indication "IPv4 Only".
4.1.1. Ajouter le port local d'écoute de l'UI de ZimaOS si changé (exemple de 80 vers 82). Cette action n'est pas obligatoire, mais demeure une mesure de prudence d'autorisation d'accès.
4.1.2. Ajouter les ports locaux d'écoute des applications en mode host si installées avant ZFW.
4.1.3. Pour les applications exposées sur Internet en HTPS (généralement avec les ports 80 et 443 via NPM), mettre la Source en Any. Si ces dernières ne se connectent qu'exclusivement en mode sécurisé HTTPS (exemple : un site web), il est inutile d'autoriser le port d'écoute local.
IMPORTANT :
N'oublie pas, à chaque création d'une nouvelle application, d'autoriser le port d'écoute correspondant.
Les ports (comme 80 et 443) qui sont utilisés par plusieurs applications doivent être autorisés qu'une fois et souvent uniquement par le Proxy (doublons inutiles).
4.1.1
4.1.2
4.1.3
4.2. Création d'un port à autoriser
4.2.1. App (en général) sur le réseau local
Sur l'onglet Rules (Règles), clique sur le bouton + New rule. Sur la fenêtre en pop-up qui s'affiche, indique :
- Name = le nom de l'application
- Source = CIRD (par défaut) pour un accès uniquement sur le réseau local
- Ports (comma-separated) = le port d'écoute de l'app
- Protocol = TCP (par défaut pour la majorité des apps sauf si UDP ou les deux)
- Zone = Automatic
Clique sur le bouton Save pour valider puis sur le bouton Save Rules (du menu de l'onglet Rules)
4.2.2. NginxProxyManager (ou autre app proxy) et/ou exposition au web
Même procédure que pour le point 4.2.1 sauf pour source
- Source =Any
+ Sauvegarder
4.2.3. Autres options
Tu peux autoriser ou bloquer des Pays (ou IP ou autres).
Exemple :
- Action = Allow ou Deny
- Country codes (ISO, comma-separated) = code du pays concerné (ex : FR)
+ Sauvegarder
Si tu utilises ce type d'option avancée, il te faut être vigilant quant à l'ordre des autorisations et interdictions (la première ligne prime sur la seconde).
4.2.1
4.2.2
4.2.3
4.3. Test et activation de ZFW
Reviens maintenant sur l'onglet Firewall.
1. Clique sur Safe-Apply et teste le bon fonctionnement (accès autorisés) de l'ensemble des fonctionnalités et applications de ton ZimaOS.
2. Si tous les accès indiqués sont autorisés active le Pare-feu avec Confirm. Dans le cas contraire, ZFW se désactivera automatiquement au bout de 2 min.
À noter :
- Boot persistent indique que ZFW sera automatiquement actif après un redémarrage de ZimaOS.
- L'affichage de ZimaOS sur l'Explorateur de Fichiers de ton PC à Réseau, ne sera plus automatiquement visible. L'accès reste autorisé en tapant manuellement l'adresse locale. Pour afficher ZimaOS en accès direct dans l'explorateur de fichiers, il faut installer ZimaOS client sur ton PC.
- L'accès aux applications sur le réseau local ne fonctionne qu'exclusivement avec des IPv4. L'accès à distance, par l'autorisation d'un port en "Any" (ex 443), autorise les clients en IPv4 et IPv6.
4.3
5.0. Soutenir le projet
Derrière chaque conteneur, il y a du temps, des idées et du travail. Un petit geste fait la différence.
L'application te satisfait pleinement et tu souhaites participer à son développement. N'hésite pas à "Payer un café" à chicohaager/Lintux au bas de la Page GitHub de l'application.
0 commentaire