Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Protection réseau du serveur Proxmox Beotos3

De AJLSM
Version datée du 7 octobre 2026 à 13:35 par Jlarvers (discussion | contributions) (Page créée avec « = Protection réseau du serveur Proxmox Beotos3 = == Objectif == Le serveur physique '''Beotos3''' est directement connecté à Internet et possède une adresse IPv4 pub... »)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Protection réseau du serveur Proxmox Beotos3

Objectif

Le serveur physique Beotos3 est directement connecté à Internet et possède une adresse IPv4 publique.

Il héberge notamment des services Proxmox et fournit un stockage NFS utilisé par Saturne3.

Un contrôle du serveur a montré que plusieurs services système, notamment RPC/rpcbind, étaient directement accessibles depuis Internet et faisaient l'objet de très nombreuses connexions provenant d'adresses IP publiques inconnues.

L'objectif de cette configuration est donc :

  • de conserver l'adresse IP publique de Beotos3 ;
  • de conserver la possibilité d'utiliser Beotos3 comme serveur de secours d'Eole3 ;
  • d'autoriser uniquement les flux réellement nécessaires ;
  • de bloquer les services RPC/NFS inutiles depuis Internet ;
  • de conserver les accès d'administration ;
  • de conserver la supervision Centreon ;
  • de conserver le montage NFS utilisé par Saturne3.

Configuration réseau

Beotos3 possède deux interfaces réseau principales.

Réseau public

Interface physique : enp9s0f0np0
Bridge Proxmox      : vmbr0
IPv4 publique       : 51.210.192.214/32
Passerelle          : 100.64.0.1

Cette interface doit être conservée.

Elle permet l'administration de Beotos3 depuis Internet et sera également nécessaire en cas de bascule des services d'Eole3 vers Beotos3.

Réseau privé

Interface physique : enp9s0f1np1
Bridge Proxmox      : vmbr1
IPv4 privée         : 192.168.123.104/24

Le réseau privé utilisé entre les serveurs est :

192.168.123.0/24

Eole3 utilise notamment :

192.168.123.202

Pare-feu Proxmox

Beotos3 utilise le pare-feu historique Proxmox :

pve-firewall

Le moteur nftables « preview » de Proxmox VE 9 n'est pas utilisé.

Dans l'interface Proxmox :

Datacenter
  -> Firewall
  -> Options
  -> Firewall = Yes

et :

beotos3
  -> Firewall
  -> Options
  -> Firewall = Yes
  -> nftables (preview) = No

La politique entrante est :

Input Policy : DROP

La politique sortante reste :

Output Policy : ACCEPT

Ainsi, Beotos3 peut continuer à initier librement ses sauvegardes, synchronisations, mises à jour, connexions vers Eole3, PBS4, etc.

En revanche, une connexion entrante doit être explicitement autorisée.

Règles entrantes autorisées

Les règles spécifiques du serveur sont enregistrées par Proxmox dans :

/etc/pve/nodes/beotos3/host.fw

Les autorisations mises en place sont les suivantes.

Source Protocole Port Utilisation
109.190.129.96 TCP 22 Administration SSH AJLSM
109.190.129.96 TCP 8006 Interface Web Proxmox AJLSM
192.168.123.0/24 TCP 22 SSH depuis le réseau privé
192.168.123.0/24 TCP 8006 Interface Proxmox depuis le réseau privé
192.168.123.0/24 TCP 3128 SPICE Proxmox depuis le réseau privé
141.95.206.118 TCP 2049 NFS Saturne3
51.83.117.105 UDP 161 Supervision SNMP Centreon
10.0.0.16 UDP 161 Supervision SNMP Centreon réseau privé
Internet ICMP - Ping / supervision, notamment monitoring OVH

Tout autre trafic entrant est bloqué par défaut.

Accès SSH

L'accès SSH root est conservé mais l'authentification par mot de passe a été désactivée.

Configuration effective :

PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no

L'accès SSH public est en plus limité par le pare-feu à :

109.190.129.96

La sécurité repose donc sur deux niveaux :

  1. filtrage de l'adresse IP source par le pare-feu ;
  2. authentification SSH par clé publique.

Protection de NFS et RPC

Saturne3 monte le stockage de Beotos3 en NFSv4.2 :

51.210.192.214:/data-backup/pbs/import-saturne3/vz/dump

La source autorisée est exclusivement :

141.95.206.118

et le port autorisé est :

TCP/2049

NFSv4.2 permet ce fonctionnement sans exposer rpcbind et les ports RPC dynamiques sur Internet.

Les services suivants peuvent continuer à écouter localement sur Beotos3, mais ils ne sont plus accessibles librement depuis Internet :

TCP/UDP 111   rpcbind
rpc.mountd
rpc.statd
nlockmgr
ports RPC dynamiques

Avant l'activation du pare-feu, environ 200 connexions TCP étaient simultanément établies depuis différentes adresses Internet vers rpcbind sur TCP/111.

Les nouvelles connexions sont désormais bloquées par la politique INPUT DROP.

Vérifications réalisées après activation

Le fonctionnement du pare-feu a été contrôlé avec :

pve-firewall status
systemctl is-active pve-firewall

Résultat attendu :

Status: enabled/running
active

Une nouvelle connexion SSH a été ouverte après activation du pare-feu.

L'interface Web Proxmox sur TCP/8006 a également été testée.

Test NFS

Depuis Saturne3 :

touch /mnt/pve/beotos3-import-saturne3/.fw-test
rm /mnt/pve/beotos3-import-saturne3/.fw-test

Le test de lecture/écriture NFS a réussi.

Les connexions observées sur Beotos3 sont :

51.210.192.214:2049 -> 141.95.206.118

Test SNMP

Une capture réseau a confirmé une interrogation Centreon :

51.83.117.105 -> 51.210.192.214:161/UDP

ainsi que la réponse SNMP de Beotos3.

Test du filtrage

Les compteurs iptables de la chaîne PVEFW-HOST-IN ont montré une augmentation rapide des paquets rejetés après activation du pare-feu.

Cela confirme que les nouvelles tentatives de connexion provenant d'Internet sont effectivement filtrées.

ICMP et monitoring OVH

Après la première activation du pare-feu, OVH a signalé Beotos3 comme inaccessible car les requêtes ICMP utilisées par son monitoring étaient bloquées.

Une règle ICMP entrante a donc été ajoutée.

La compilation du pare-feu doit contenir :

-A PVEFW-HOST-IN -p icmp -j RETURN

Le ping public reste donc autorisé sans ouvrir de service TCP ou UDP supplémentaire.

Vérification de la configuration avant modification

Avant toute modification importante, il est possible de vérifier les règles que Proxmox va réellement appliquer avec :

pve-firewall compile

Pour contrôler les principales adresses autorisées :

pve-firewall compile | grep -E \
'109\.190\.129\.96|192\.168\.123\.0/24|141\.95\.206\.118|51\.83\.117\.105|10\.0\.0\.16'

Il est recommandé de toujours effectuer cette vérification avant une modification susceptible de couper l'accès SSH.

Procédure de sécurité lors d'une modification du pare-feu

Lors d'une modification importante :

  1. conserver une session SSH déjà ouverte ;
  2. vérifier la compilation avec pve-firewall compile ;
  3. prévoir si nécessaire un rollback automatique ;
  4. appliquer la modification ;
  5. ouvrir une nouvelle connexion SSH pour tester ;
  6. tester l'interface Proxmox ;
  7. tester NFS Saturne3 ;
  8. vérifier Centreon ;
  9. seulement ensuite supprimer le rollback.

Cette précaution est particulièrement importante car Beotos3 est un serveur physique distant directement connecté à Internet.

PRA Eole3 vers Beotos3

Beotos3 conserve volontairement son interface publique et son adresse :

51.210.192.214

En fonctionnement normal :

eole3.ajlsm.com -> 51.178.110.230 -> Eole3

En cas de défaillance d'Eole3, le principe du PRA est de pouvoir modifier le DNS afin d'orienter les services vers Beotos3 :

eole3.ajlsm.com -> 51.210.192.214 -> Beotos3

Le pare-feu ne doit donc jamais être utilisé pour supprimer l'interface publique de Beotos3.

En revanche, les ports nécessaires au PRA ne doivent pas être ouverts inutilement en permanence.

Lors d'une bascule :

  1. démarrer ou activer les services de secours sur Beotos3 ;
  2. activer les règles firewall correspondant aux services à publier ;
  3. tester les services directement via l'adresse 51.210.192.214 ;
  4. modifier le DNS de eole3.ajlsm.com ;
  5. vérifier le fonctionnement via le nom DNS.

Il est possible de préparer à l'avance des règles Proxmox désactivées portant par exemple le commentaire :

PRA Eole3

Elles pourront être activées uniquement lors d'une bascule.

Les ports du PRA devront être déterminés précisément à partir des services Eole3 avant de créer ces règles.

Commandes de diagnostic

État du firewall :

pve-firewall status
systemctl status pve-firewall

Règles effectivement chargées :

iptables -S PVEFW-HOST-IN

Règles avec compteurs :

iptables -L PVEFW-HOST-IN -n -v --line-numbers

Connexions NFS Saturne3 :

ss -tn | grep '141\.95\.206\.118.*:2049\|:2049.*141\.95\.206\.118'

Connexions TCP encore établies vers rpcbind :

ss -nt state established '( sport = :111 )'

Capture SNMP Centreon :

tcpdump -ni any 'udp port 161 and (host 51.83.117.105 or host 10.0.0.16)'