# Configuration d'un serveur Broker VerneMQ ## 1. Prérequis - Suivre la procédure **Exporter et importer une VM depuis la plateforme de Production** pour importer la VM `BROKERx` dans l'environnement client. - Suivre la procédure **Préparation d'un serveur Linux** pour préparer le serveur. ## 2. Vérifier la configuration DNS Sur un serveur AD de la plateforme cible, vérifier la présence des entrées DNS suivantes. Les créer si nécessaire : - `AD1` : alias ou hôte vers AD1, utilisé pour le DNS et le NTP. - `AD2` : alias ou hôte vers AD2, utilisé pour le DNS et le NTP. - `SNMP` : alias ou hôte vers le serveur SNMP utilisé pour la supervision. ## 3. Vérifier les flux réseau Sur le pare-feu, vérifier que les flux suivants sont autorisés. Demander leur ouverture au service réseau s'ils sont absents. | Source | Destination | Protocole | Port | | --- | --- | --- | --- | | `BROKERx` | `AD1/2` | TCP et UDP | `53` / `123` | | `BROKERx` | `SNMP` | UDP | `161` / `162` | | `RPINT1/2/VIP` | `BROKERx` | TCP | `1883` / `10192` | | `TELEMW1/2` | `BROKERx` | TCP | `22` | ## 4. Configurer VerneMQ Effectuer ces opérations sur chaque serveur Broker. 1. Se connecter au serveur en tant que `root`. 2. Arrêter le service : ```bash service vernemq stop ``` 3. **Attention : la commande suivante supprime le contenu de `/var/lib/vernemq/`, y compris le fichier `.erlang.cookie`. Ne l'exécuter que pendant l'installation ou la réinitialisation prévue du Broker.** ```bash rm -r /var/lib/vernemq/* && rm /var/lib/vernemq/.erlang.cookie ``` 4. Vérifier que le répertoire est vide : ```bash ll /var/lib/vernemq/ ``` 5. Dans `/etc/vernemq/vernemq.conf`, remplacer l'ancienne adresse IP `192.168.126.151` par l'adresse IP du Broker concerné : ```bash sed -i 's/192.168.126.151/IP_SERVEUR_BROKER/g' /etc/vernemq/vernemq.conf ``` 6. Vérifier la configuration : ```bash nano /etc/vernemq/vernemq.conf ``` 7. Si les mots de passe de l'ancienne infrastructure respectent déjà les exigences de sécurité, récupérer `/etc/vernemq/vmq.passwd` depuis l'infrastructure de production et le copier sur les Brokers de la nouvelle infrastructure. Sinon, suivre la section **Sécuriser les accès VerneMQ**. 8. Démarrer VerneMQ : ```bash service vernemq start ``` 9. Vérifier l'état du service et du cluster : ```bash service vernemq status vmq-admin cluster show ``` ## 5. Créer le cluster VerneMQ > Cette étape concerne uniquement les plateformes disposant de deux Brokers, généralement BROKER1 et BROKER2. Les plateformes de test ou de formation à un seul Broker ne sont pas concernées. Sur BROKER2, en tant que `root`, rejoindre le nœud BROKER1. Remplacer `IP_BROKER1` par l'adresse IP de BROKER1 : ```bash vmq-admin cluster join discovery-node=VerneMQ@IP_BROKER1 ``` Sur les deux Brokers, vérifier que le cluster contient les deux nœuds : ```bash vmq-admin cluster show ``` Pour afficher les connexions actives au serveur VerneMQ, utiliser : ```bash vmq-admin session show ``` ## 6. Sécuriser les accès VerneMQ ### 6.1 Modifier les mots de passe système Modifier les mots de passe des comptes `systel` et `root` : ```bash passwd systel passwd root ``` Générer des mots de passe robustes et les enregistrer dans RDM. ### 6.2 Configurer les mots de passe des comptes VerneMQ Générer dans RDM les mots de passe requis pour les comptes VerneMQ. La liste des six identifiants n'étant pas transcrite dans le texte source, la reprendre depuis la configuration de référence ou auprès de l'équipe responsable. Sur BROKER1, ouvrir le fichier de mots de passe : ```bash nano /etc/vernemq/vmq.passwd ``` Pour chaque compte, saisir le mot de passe prévu après les deux-points. Ne pas inscrire les mots de passe dans cette procédure. Enregistrer et quitter avec **Ctrl+X**. Hacher le fichier : ```bash vmq-passwd -U /etc/vernemq/vmq.passwd ``` Redémarrer VerneMQ et vérifier son état : ```bash service vernemq restart service vernemq status ``` Sur BROKER2, recopier à l'identique le contenu de `/etc/vernemq/vmq.passwd` depuis BROKER1, puis redémarrer et vérifier le service : ```bash service vernemq restart service vernemq status ``` ## 7. Vérifier le fonctionnement Pour afficher les connexions actives : ```bash sudo vmq-admin session show ```