pare-feu proxmox : un flux ICMP devient une regle, au lieu d etre saute
Le type ICMP (echo-request) etait range parmi les ports derives et le flux saute : le ping de supervision n avait pas de regle, et web-frontal-01 passe en REJECT est devenu mort pour Icinga. icmp_type dans le devis, icmp-type vers l API. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
4ce296f3d5
commit
35831608d0
2 changed files with 25 additions and 2 deletions
20
CHANGELOG.md
20
CHANGELOG.md
|
|
@ -1,5 +1,25 @@
|
|||
# CHANGELOG — Set-OPS
|
||||
|
||||
## 2026-09-28 (11) — Première VM filtrée par Proxmox, et le ping de supervision qu'aucune règle ne portait
|
||||
|
||||
**Activée : `web-frontal-01` de Technolibre** (`--vm 123603101`), pare-feu `enable=1`,
|
||||
`policy_in=REJECT`, groupes `cli-metrique`, `srv-debian`, `srv-web-frontal`. Vérifié flux par
|
||||
flux : SSH du poste, rapports de santé et de sauvegarde acceptés, `node_exporter` joint par
|
||||
`obs-01`, SSH depuis la flotte (autorisé par `srv-debian`, déclaré), port 80 ouvert à l'edge
|
||||
seul (rien n'y écoute encore : aucun site). Icinga : tout vert — sauf un critique NOUVEAU.
|
||||
|
||||
**`ping4` : 100 % de pertes.** Le ping de supervision EST déclaré (`serveur_debian`,
|
||||
`echo-request` depuis `serveur_icinga`), mais `_ports()` ne garde que les nombres : le type
|
||||
ICMP était rangé parmi les « ports dérivés » et le flux sauté. Aucune règle, donc `REJECT`.
|
||||
`_cibles()` rend désormais un flux ICMP en règle `proto: icmp` + `icmp_type`, que
|
||||
l'applicateur transmet (`icmp-type`) et compare. Appliqué : `srv-debian` des deux locataires
|
||||
accepte `echo-request` depuis `srv-icinga` ; `ping4` revenu OK (0,20 ms).
|
||||
|
||||
**Vérifié avant d'aller plus loin** : le « sans source » `serveur_icinga:5665` que recense le
|
||||
devis est le flux de `serveur_backup`, qu'aucun locataire ne porte — les rapports passifs,
|
||||
eux, ont leurs règles (`cli-backup`, `srv-debian`). Et le recensement ne déclare plus sauté
|
||||
un flux ICMP qu'il rend.
|
||||
|
||||
## 2026-09-28 (10) — Le pare-feu est-ouest de Proxmox ne filtrait aucune VM des locataires
|
||||
|
||||
**Mesuré.** Pare-feu du datacenter actif, `firewall=1` sur les cartes des 26 VM de Chezlepro
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ def construire(tenants: list[tuple[str, str, dict]]) -> dict:
|
|||
if pairs == ["localhost"]:
|
||||
continue # boucle locale : aucune regle inter-noeud
|
||||
if not _resoudre_sources(data, fl.get("pair"), tous, ips):
|
||||
sans_source.append(f"{groupe}:{','.join(_ports(fl))}")
|
||||
sans_source.append(f"{groupe}:{','.join(str(c.get('dport') or c.get('icmp_type')) for c in _cibles(fl))}")
|
||||
continue
|
||||
# UNE REGLE PAR ROLE SOURCE. Un flux dont le pair liste quatre roles
|
||||
# donne quatre regles, chacune renvoyant a l'IPSet de son role : la
|
||||
|
|
@ -245,7 +245,10 @@ def construire(tenants: list[tuple[str, str, dict]]) -> dict:
|
|||
# Sans cette regle, la premiere VM passee en `policy_in=REJECT` se ferme
|
||||
# derriere l'outil qui vient de la configurer. Meme source unique que
|
||||
# les nftables et la frontiere : l'intrant `nftables_admin_ssh`.
|
||||
if "22" in _ports(fl) and admin_de(nom):
|
||||
# `_ports` seulement pour TCP/UDP : appele sur un flux ICMP, il rangeait le
|
||||
# type parmi les « ports derives sautes » — un flux pourtant rendu.
|
||||
if (str(fl.get("protocole", "tcp")).lower() != "icmp"
|
||||
and "22" in _ports(fl) and admin_de(nom)):
|
||||
utilises.add(f"t{n['index']}-admin")
|
||||
regles.append({
|
||||
"action": "ACCEPT", "sens": "IN",
|
||||
|
|
|
|||
Loading…
Reference in a new issue