Gately v0.6.3 publié
2 novembre 2026
Télécharger v0.6.3 · GitHub Release
Surveillance des performances (#59)
Le nouveau module « Performances » relève toutes les 5 secondes le CPU, la mémoire, le disque et la charge de l’hôte, ainsi que le CPU, la mémoire, les descripteurs de fichiers et les goroutines du processus Gately :
- la page affiche les tendances sur 60 secondes / 1 heure / 24 heures, à côté des requêtes en cours, des requêtes par seconde, de la part de 5xx, du temps jusqu’au premier octet (P95) et de l’état des backends des sites en cours d’exécution ; un clic sur un site ouvre ses statistiques ;
- les sites Web mesurent désormais le temps jusqu’au premier octet (de la réception de la requête à l’envoi des en-têtes de réponse), les statistiques de site gagnent des courbes P50 / P95, Prometheus gagne
gately_site_request_duration_secondsainsi que les métriquesgately_host_*etgately_process_*, et le tableau de bord Grafana est mis à jour ; - une règle d’alerte choisit une métrique, une comparaison et un seuil, puis une durée (1 à 1440 minutes) ; elle ne se déclenche que si la condition reste vraie pendant toute la durée, et une notification de rétablissement est envoyée à la fin. La part de 5xx et la latence peuvent avoir un nombre minimal de requêtes, ce qui évite de juger un trafic trop faible. Les alertes passent par le Centre de notifications, et la page avertit si aucune règle de notification ne s’y abonne.
L’historique reste en mémoire et repart de zéro après un redémarrage. Voir Performances.
WAF avec SafeLine
Une instance WAF peut confier les requêtes à votre moteur de détection SafeLine Community Edition auto-hébergé pour une analyse sémantique, sans ajouter de reverse proxy devant ou derrière Gately :
- saisissez l’adresse du détecteur (
host:port, ouunix:suivi du chemin desnserver.sock) ; « Tester la connexion » envoie un battement de cœur et un exemple d’injection SQL, puis affiche l’aller-retour et l’ID d’événement enregistré par SafeLine ; - SafeLine s’exécute avant les groupes de règles, qui peuvent rester vides si seul SafeLine est utilisé ; le mode « Détection seule » journalise les détections sans bloquer ;
- les blocages comptent dans les compteurs WAF, le journal WAF (avec l’ID d’événement), les journaux d’accès, les statistiques de site et la Prévention d’intrusion ;
- vous pouvez régler le délai de détection (1 seconde par défaut), la limite du corps inspecté (1024 Ko par défaut, le reste est transmis tel quel) et si les requêtes sont autorisées ou reçoivent un 503 quand le moteur est indisponible (autorisées par défaut).
Voir Pare-feu WAF · Utiliser SafeLine.
Opérations par lot (#57)
Le mode « Tri » des listes devient « Tri et lot » : après avoir coché des éléments, vous pouvez les activer, les désactiver et les supprimer en une fois, et les noms sont listés pour confirmation avant la suppression. Les sites des Services Web peuvent être cochés d’un écouteur à l’autre pour ajouter ou retirer des domaines en masse, remplacer le suffixe du domaine principal (old.com → new.com réécrit aussi www.old.com et *.old.com) et modifier en masse la compression, les journaux d’accès, CORS, les en-têtes transmis, la coupure de connexion au refus et les références WAF ; les options laissées intactes conservent la valeur propre à chaque site. Le lot entier est d’abord validé puis enregistré en une fois, rien n’est appliqué si un élément échoue, et seuls les écouteurs concernés sont rechargés, sans couper les connexions existantes. L’API se compose des routes génériques PUT <chemin>-enable et POST <chemin>-delete ainsi que de POST /api/webservice/sites/batch.
STUN : ouverture automatique des ports du pare-feu
Les règles STUN gagnent « Ouvrir le port dans le pare-feu » : une fois activée, Gately ouvre le port de traversée dans le pare-feu de cette machine (avec le port interne UPnP / NAT-PMP s’il est défini) et le retire à l’arrêt ou à la suppression de la règle. nftables (OpenWrt fw4, firewalld) et iptables (fw3, ufw) sont pris en charge, les règles sont rétablies dans les 30 secondes après un rechargement du pare-feu, et la carte de la règle affiche le résultat ou la cause d’un échec. Voir Traversée STUN.
Correction : échec d’émission dû aux CNAME génériques (#61)
Quand un domaine a un enregistrement générique comme *.example.com pointant vers example.com, _acme-challenge se résout lui aussi en CNAME, l’enregistrement de validation DNS-01 était écrit sur @, et l’AC signalait qu’elle ne trouvait pas l’enregistrement TXT. Gately fait désormais la distinction lui-même : un CNAME défini explicitement est toujours suivi, ce qui permet de déléguer la validation à un autre domaine ; un CNAME produit par un enregistrement générique est reconnu et l’enregistrement est écrit sur _acme-challenge.<domaine>. Les certificats gagnent aussi l’option « Ne pas suivre le CNAME de _acme-challenge ». Voir Certificats SSL.
Journaux des Services Web (#62)
- Les journaux d’accès enregistrent la raison d’un blocage (bannissement, liste d’IP, pays, limitation de débit, WAF), et les requêtes portant une session de connexion à la console de cette instance enregistrent le nom d’utilisateur de la console ;
- la page des journaux gagne « Masquer les sources bannies » (désactivé par défaut, pour que les requêtes à l’origine d’un bannissement restent visibles lors d’un audit) et « Masquer les requêtes de la console » (activé par défaut) ; ils n’agissent que sur l’affichage, et les journaux sont enregistrés comme avant ;
- le filtre d’IP accepte des exclusions commençant par
!ou-, sous forme d’adresses, de plages ou d’adresses partielles.
Autres améliorations
- La topologie réseau gagne « Filtrer » : par écouteur, uniquement les nœuds en difficulté, et sites par raison de blocage ; le masquage gagne le style « Alias », qui remplace les adresses par des numéros comme Visitor-01 et Backend-01 (#54) ;
- la vidéo de visite du README démarre directement sur la carte d’introduction ;
- dépendances mises à jour : go-jose en v4.1.7 et klauspost/compress en v1.18.7.
Corrections et renforcements
- Quand le backend d’un site WAF renvoie lui-même un 403, il n’est plus traité comme un blocage WAF : auparavant, il s’ajoutait aux compteurs de blocage et émettait un événement
waf.blocked, si bien qu’une règle de Prévention d’intrusion abonnée aux blocages WAF pouvait bannir un visiteur normal ; - « Masquer les requêtes de la console » ne fait confiance qu’aux sessions d’administrateur : le cookie de connexion d’un compte en lecture seule ne peut pas marquer des requêtes comme venant de la console, et les requêtes bloquées ne portent aucune marque de console ;
- les opérations par lot limitent le nombre d’éléments soumis avant la déduplication, et un lot qui définit une instance WAF inexistante est refusé ;
- quand plusieurs Gately tournent sur un même hôte, les règles de pare-feu ouvertes automatiquement sont distinguées par instance et ne se suppriment pas mutuellement.
Notes de mise à niveau
- Docker : récupérez la nouvelle image et recréez le conteneur ; quand le socket Docker est monté, Gately peut aussi se mettre à niveau lui-même depuis sa page Docker. OpenWrt : installez le nouveau
.apk/.ipkpar-dessus l’ancien. fnOS : installez manuellement le nouveau.fpkdans le Centre d’applications. Les autres déploiements peuvent se mettre à niveau en ligne dans les Paramètres.