Se connecterS'abonner

Chapitre 11

INSTALLER UN EMULATEUR DE PBX ET PABX (partie 2/3)

Lecture : 16 minQuiz de 10 questions

## Objectifs et prérequis **Objectifs** : à la fin de ce chapitre l’élève sera capable de : - installer et lancer un émulateur de PBX/PABX sur une machine virtuelle ; - accéder à l’interface d’administration web, identifier les principaux menus et modifier les paramètres de base ; - créer, modifier et supprimer des extensions SIP correspondant aux abonnés internes d’une entreprise ; - vérifier le bon fonctionnement des communications internes à l’aide d’un softphone ou d’un téléphone IP. **Prérequis** : - notions de base en réseaux IP (adressage IPv4, masque de sous‑réseau, passerelle, DNS) ; - compréhension du protocole SIP (méthodes INVITE, ACK, BYE, codes de réponse) ; - connaissances élémentaires de la virtualisation (VirtualBox, VMware ou Hyper‑V) et d’un système Linux (Ubuntu Server 20.04 LTS) ; - savoir utiliser un navigateur web et un client SSH (PuTTY ou terminal). > **À retenir** : un PBX (Private Branch Exchange) est un commutateur téléphonique privé qui gère les appels internes et externes d’une organisation. ## Introduction contextualisée Au Cameroun, de nombreuses PME et administrations modernes déploient des solutions de téléphonie sur IP afin de réduire les coûts liés aux lignes téléphoniques traditionnelles et d’offrir des services unifiés (voix, messagerie, visioconférence). L’utilisation d’un émulateur de PBX/PABX permet aux élèves de se familiariser avec les mêmes outils que ceux rencontrés en stage ou en entreprise, sans nécessiter d’infrastructure physique coûteuse. Dans ce chapitre nous travaillerons avec **FreePBX** (interface web basée sur Asterisk) installé sur une machine virtuelle Ubuntu Server, scénario fréquent dans les ateliers techniques des lycées techniques et des centres de formation professionnelle du MINESEC/IGE. ## I. Activités de remédiation ### 1. Rappel des concepts de PBX/PABX - **PBX** : équipement qui assure le commutage des appels entre les postes internes et le réseau téléphonique public (RTP). - **PABX** (Private Automatic Branch eXchange) : version automatique du PBX, dépourvue d’opérateur humain. - Fonctions principales : gestion des extensions, transfert d’appel, mise en attente, messagerie vocale, conférence, journalisation (CDR). > **À retenir** : le protocole SIP (Session Initiation Protocol) est le standard de signalisation utilisé pour établir, modifier et terminer des sessions multimédia sur IP. ### 2. Virtualisation et émulateurs - Une machine virtuelle (VM) émule le matériel nécessaire (CPU, RAM, disque, carte réseau) grâce à un hyperviseur (VirtualBox, VMware Workstation Player). - L’émulateur de PBX/PABX s’installe comme toute autre application serveur : système d’exploitation de base, puis les paquets Asterisk et FreePBX. ### 3. Installation de l’environnement (exemple d’atelier) | Étape | Action | Commande / réglage | |------|--------|--------------------| | 1 | Télécharger l’image ISO Ubuntu Server 20.04 LTS | site officiel Ubuntu | | 2 | Créer une VM avec 2 vCPU, 2 Go RAM, 20 Go disque dur, carte réseau en mode **Bridge** | VirtualBox → Nouvelle | | 3 | Installer Ubuntu (langue Français, clavier AZERTY, nom d’hôte `pbxvm`) | suivre l’assistant | | 4 | Mettre à jour le système | `sudo apt update && sudo apt upgrade -y` | | 5 | Installer les dépendances d’Asterisk | `sudo apt install -y build-essential wget libxml2-dev libncurses5-dev libgsm1-dev libspeexdsp-dev libsqlite3-dev uuid-dev` | | 6 | Télécharger et compiler Asterisk 18.x | `wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz && tar -xzf asterisk-18-current.tar.gz && cd asterisk-18.* && ./configure && make menuselect && make && sudo make install && sudo make samples && sudo make config` | | 7 | Installer FreePBX (module web) | `cd /usr/src && wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz && tar -xzf freepbx-16.0-latest.tgz && cd freepbx && ./start_asterisk start && ./install -n` | | 8 | Lancer le service FreePBX | `fwconsole start` | | 9 | Vérifier l’accès web | ouvrir un navigateur sur `http://<IP_VM>/admin` | > **À retenir** : en mode **Bridge** la VM obtient une adresse IP du même réseau que l’hôte, ce qui permet d’accéder à l’interface web depuis n’importe quel poste du LAN. ### 4. Vérification de la connectivité - Ping depuis l’hôte vers l’IP de la VM (`ping 192.168.1.45`). - Accès à l’interface web : login `admin`, mot de passe défini lors de l’installation (par défaut `admin`). - En cas d’échec, vérifier le firewall (`sudo ufw status`) et ouvrir les ports 80 (HTTP), 443 (HTTPS), 5060/5061 (SIP), 10000‑20000 (RTP). > **À retenir** : le port 5060 est utilisé pour le signal SIP non chiffré ; 5061 pour SIP over TLS (SIPS). ## II. Leçon 9: Prise en main de l’interface Web et configuration de base ### 1. Accès à l’interface web - Ouvrir un navigateur (Firefox, Chrome) et saisir l’adresse `http://<IP_VM>/admin`. - Première connexion : changer immédiatement le mot de passe de l’administrateur (menu **Admin → Administrators**). > **À retenir** : le mot de passe admin doit contenir au moins 12 caractères, mêlant majuscules, minuscules, chiffres et symboles. ### 2. Navigation du tableau de bord Le tableau de bord se compose de : - **Dashboard** : vue d’ensemble (appels en cours, utilisation CPU/RAM, alertes). - **Applications** : regroupe les modules (Extensions, Trunks, Routes entrantes/sortantes, IVR, Files d’attente). - **Connectivity** : gestion des liaisons vers le réseau téléphonique public (Trunks SIP/IAX, DAHDI). - **Settings** : paramètres généraux (fuseau horaire, langue, messagerie, sécurité). - **Admin** : gestion des utilisateurs, sauvegardes, mises à jour, modules. ### 3. Configuration de base | Paramètre | Valeur recommandée | Où le modifier | |-----------|-------------------|----------------| | Timezone | `Africa/Douala` | Settings → System Settings → Date/Time | | Language | `Français (France)` | Settings → System Settings → Language | | Email serveur (pour messagerie vocale) | `smtp.mailtrap.io:2525` (exemple de test) | Settings → Email Settings | | Sécurité web | Activer HTTPS via certificat auto‑signé | Admin → System Admin → HTTPS/SSL | | Fail2Ban | Activer pour bloquer les tentatives d’intrusion SIP | Intrusion Detection → Fail2Ban Settings | | Port RTP | Plage 10000‑20000 | Settings → Asterisk SIP Settings → RTP Ports | > **À retenir** : la plage de ports RTP doit être ouverte sur le pare‑feu afin d’éviter les coupures audio unidirectionnelles. ### 4. Sécurisation de l’interface (pas à pas) 1. **Changer le mot de passe admin** : Admin → Administrators → admin → Edit → Password. 2. **Activer le HTTPS** : Admin → System Admin → HTTPS/SSL → Generate Self‑Signed Certificate → Enable HTTPS. 3. **Limiter l’accès par IP** : Admin → System Admin → REST API → Allow from → spécifier l’adresse du poste d’administration (ex. `192.168.1.10/32`). 4. **Mettre à jour les modules** : Admin → Module Admin → Check Online → Upgrade tous les modules marqués. 5. **Activer le journalisation des événements** : Reports → Asterisk Logviewer → définir le niveau sur `warning`. > **À retenir** : après chaque modification critique, cliquer sur **Submit** puis **Apply Config** pour que les changements prennent effet. ### 5. Exemple d’atelier (configuration de base) - Étape 1 : se connecter à `http://192.168.1.45/admin` avec `admin / Admin123!`. - Étape 2 : changer le mot de passe en `C@m3r0un3!2025`. - Étape 3 : régler le fuseau horaire sur `Africa/Douala`. - Étape 4 : activer HTTPS, accepter le certificat auto‑signé dans le navigateur. - Étape 5 : ouvrir les ports 80, 443, 5060, 5061, 10000‑20000 dans le firewall de la VM (`sudo ufw allow 80/tcp ; sudo ufw allow 443/tcp ; sudo ufw allow 5060/tcp ; sudo ufw allow 5061/tcp ; sudo ufw allow 10000:20000/udp`). - Étape 6 : cliquer sur **Apply Config** et vérifier que le tableau de bord indique **System Status: OK**. > **À retenir** : la commande `fwconsole reload` permet de recharger la configuration Asterisk sans redémarrer la VM. ## III. Leçon 10: Création des extensions SIP – Les abonnés internes ### 1. Notion d’extension SIP Une **extension SIP** représente un poste téléphonique (physique ou logiciel) identifié par un numéro (ex. 1001) et authentifié auprès du PBX grâce à un couple *nom d’utilisateur / mot de passe*. Elle définit le **contexte** (généralement `from-internal`) qui détermine quels plans d’appel sont accessibles. > **À retenir** : le contexte `from-internal` autorise les appels internes, les transferts et l’accès à la messagerie vocale. ### 2. Création d’une extension via l’interface web 1. Menu **Applications → Extensions**. 2. Cliquer sur **+ Add Extension** → choisir **Chan_SIP** (ou **PJSIP** selon la version). 3. Remplir le formulaire : - **User Extension** : numéro de l’extension (ex. `1001`). - **Display Name** : nom de l’abonné (ex. `Jean Dupont`). - **Secret** : mot de passe d’authentification (ex. `Str0ngP@ss!`). - **Context** : `from-internal` (par défaut). - **Host** : `dynamic` (pour un softphone qui s’enregistre). - **Username** : même valeur que l’extension (ou un alias). 4. Cliquer sur **Submit**, puis **Apply Config**. > **À retenir** : le champ **Secret** doit être conservé confidentiel ; il est utilisé lors de l’enregistrement SIP (REGISTER). ### 3. Association à un poste téléphonique - **Softphone** (ex. Zoiper, Linphone) : dans les réglages du compte, saisir : - **Domain / Host** : IP de la PBX (`192.168.1.45`). - **Username** : numéro d’extension (`1001`). - **Password** : secret défini précédemment. - **Transport** : UDP (ou TCP si le serveur le supporte). - **Téléphone IP** (ex. Yealink T20P) : entrer les mêmes paramètres dans le menu **Account → SIP**. > **À retenir** : après l’enregistrement, le téléphone affiche un statut **Registered** et le numéro d’extension apparaît dans le tableau **Dashboard → Chan_SIP Objects**. ### 4. Test d’appel interne - Depuis le poste 1001, composer le numéro 1002. - Écouter la tonalité d’appel, vérifier que le poste 1002 sonne et que la communication est bidirectionnelle. - Utiliser la fonction **Transfer** (flash ou touche dédiée) pour tester le transfert d’appel vers un troisième poste (1003). > **À retenir** : la qualité audio dépend du codec choisi ; G.711 (PCMU/PCMA) utilise 64 kbps par sens, G.729 utilise 8 kbps avec une légère dégradation. ### 5. Exemple chiffré : dimensionnement de la bande passante Supposons que l’on souhaite supporter simultanément **10 appels internes** en utilisant le codec G.711. - Bande passante appel unique (G.711) : 64 kbps (payload) + environ 16 kbps d’en‑tête IP/UDP/RTP ≈ **80 kbps** par sens. - Pour une communication full‑duplex, on compte les deux sens : **160 kbps** par appel. - Bande passante totale pour 10 appels : 10 × 160 kbps = **1 600 kbps** ≈ **1,6 Mbps**. > **À retenir** : si le réseau local ne garantit pas 2 Mbps dédiés à la voix, privilégier le codec G.729 (≈ 31 kbps par appel) afin de réduire la consommation à ~0,3 Mbps pour 10 appels. ### 6. Exemple d’atelier complet (création de 5 extensions) | Étape | Action | Résultat attendu | |------|--------|------------------| | 1 | Se connecter à l’interface web (`admin / C@m3r0un3!2025`). | Tableau de bord accessible. | | 2 | Créer les extensions 2001 à 2005 avec secret `Secr3t!2025`. | Cinq nouvelles lignes apparaissent sous **Extensions**. | | 3 | Configurer chaque softphone (Zoiper) avec les paramètres ci‑dessus. | Chaque softphone affiche **Registered**. | | 4 | Passer un appel de 2001 vers 2003, puis de 2004 vers 2005. | Communication audio claire, aucun écho. | | 5 | Vérifier les CDR (Call Detail Records) via **Reports → CDR Reports**. | Deux enregistrements d’appels internes visibles. | | 6 | Appliquer la configuration (`fwconsole reload`). | Aucun décrochage d’appel en cours. | > **À retenir** : toujours vérifier les journaux (`/var/log/asterisk/messages`) en cas d’échec d’enregistrement (message “Registration failed”). ## Synthèse du chapitre - Installation d’un émulateur de PBX/PABX (FreePBX/Asterisk) sur VM Ubuntu Server. - Accès sécurisé à l’interface web : changement du mot de passe admin, activation HTTPS, restriction d’accès IP. - Configuration de base : fuseau horaire `Africa/Douala`, langue française, ports RTP ouverts, fail2ban activé. - Création d’extensions SIP : numéro, secret, contexte `from-internal`, enregistrement dynamique. - Association aux postes (softphone ou téléphone IP) et vérification de l’enregistrement. - Test d’appels internes, transfert, consultation des CDR. - Dimensionnement de la bande passante selon le codec (G.711 ≈ 160 kbps/appel, G.729 ≈ 31 kbps/appel). - Bonnes pratiques de sécurité : mots de passe forts, mises à jour régulières, journalisation, sauvegarde de la configuration. ## Glossaire > **PBX** : Private Branch Exchange, commutateur téléphonique privé gérant les appels internes et externes d’une organisation. > **PABX** : Private Automatic Branch eXchange, version automatique du PBX sans opérateur humain. > **SIP** : Session Initiation Protocol, protocole de signalisation pour établir, modifier et terminer des sessions multimédia sur IP. > **Extension** : numéro logique attribué à un poste téléphonique (physique ou logiciel) enregistré auprès du PBX. > **Softphone** : application logicielle transformant un ordinateur ou un smartphone en téléphone IP. > **Trunk** : liaison logique entre le PBX et un opérateur externe ou un autre PBX, transportant plusieurs appels simultanément. > **Codec** : algorithme de compression/décompression de la voix (ex. G.711, G.729, Opus). > **NAT** : Network Address Translation, mécanisme qui traduit les adresses IP privées en adresses publiques, souvent rencontré lors de l’enregistrement SIP derrière un routeur. ## Exercices d'application corrigés ### Exercice 1 – Installation et accès à l’interface web **Consigne** : À partir d’une machine hôte Windows 10 équipée de VirtualBox, créer une VM Ubuntu Server 20.04, installer FreePBX comme décrit dans la leçon I, puis accéder à l’interface web depuis le navigateur de l’hôte. Décrire les étapes nécessaires pour changer le mot de passe admin et activer le HTTPS. **Corrigé** : 1. Dans VirtualBox, cliquer sur **Nouvelle**, nommer la VM `pbxvm`, choisir **Linux → Ubuntu (64‑bit)**, attribuer 2 Go RAM, créer un disque virtuel VDI de 20 Go en allocation dynamique. 2. Démarrer la VM avec l’ISO Ubuntu Server 20.04, suivre l’installation (langue Français, clavier AZERTY, nom d’hôte `pbxvm`, utilisateur `admin`, mot de passe `Tmp@2025!`). 3. Après l’installation, se connecter en SSH (`ssh admin@<IP_VM>`) et exécuter les commandes de mise à jour et d’installation des dépendances (voir tableau I‑3). 4. Télécharger, compiler et installer Asterisk 18.x puis FreePBX 16.x (étapes I‑3, lignes 5‑8). 5. Lancer FreePBX : `fwconsole start`. 6. Ouvrir un navigateur sur l’hôte et saisir `http://<IP_VM>/admin`. 7. Première connexion : login `admin`, mot de passe `Tmp@2025!`. 8. Dans le menu **Admin → Administrators**, sélectionner l’utilisateur admin, cliquer sur **Edit**, changer le mot de passe en `C@m3r0un3!2025` (12 caractères, majuscule, minuscule, chiffre, symbole), soumettre puis **Apply Config**. 9. Toujours dans **Admin → System Admin → HTTPS/SSL**, cliquer sur **Generate Self‑Signed Certificate**, puis activer HTTPS. Accepter l’avertissement de certificat dans le navigateur et vérifier que l’URL devient `https://<IP_VM>/admin`. 10. Vérifier que le tableau de bord indique **System Status: OK**. ### Exercice 2 – Création d’extensions SIP et test d’appel interne **Consigne** : Sur la PBX précédemment installée, créer cinq extensions SIP numérotées de 3001 à 3005, chacune avec le secret `V0ix!2025`. Configurer deux softphones (Zoiper) avec les extensions 3001 et 3002, puis réaliser un appel de 3001 vers 3002, un transfert d’appel vers 3003 et consulter les journaux d’appels. **Corrigé** : 1. Se connecter à l’interface web (`https://<IP_VM>/admin`) avec les identifiants de l’exercice 1. 2. Aller dans **Applications → Extensions**, cliquer sur **+ Add Extension**, choisir **Chan_SIP**. 3. Remplir le formulaire pour la première extension : - User Extension : `3001` - Display Name : `Poste 3001` - Secret : `V0ix!2025` - Context : `from-internal` - Host : `dynamic` - Username : `3001` - Cliquer sur **Submit**, puis **Apply Config**. 4. Répéter l’opération pour les extensions 3002 à 3005 (changer uniquement le numéro d’extension et le Display Name). 5. Sur deux postes de travail, installer Zoiper (version gratuite). Dans chaque instance, créer un compte SIP : - Domain/Host : `<IP_VM>` - Username : `3001` (pour le premier) / `3002` (pour le second) - Password : `V0ix!2025` - Transport : UDP - Enregistrer et vérifier que le statut passe à **Registered**. 6. Depuis le softphone 3001, composer le numéro `3002`. Écouter la tonalité d’appel, constater que le poste 3002 sonne, établir la communication. Vérifier la qualité audio (pas d’écho, latence <150 ms). 7. Pour tester le transfert, pendant l’appel actif, appuyer sur la touche **Flash** (ou utiliser la fonction de transfert de Zoiper) puis composer `3003`. L’appel est placé en attente, le poste 3003 sonne, après réponse, les deux interlocuteurs sont en conférence ; raccrocher le poste 3001 pour laisser 3002 et 3003 en communication. 8. Ouvrir le menu **Reports → CDR Reports**, sélectionner la période du jour, appliquer le filtre. Deux enregistrements doivent apparaître : - Appel de 3001 vers 3002 (durée X secondes). - Appel transféré de 3002 vers 3003 (durée Y secondes). 9. Vérifier les fichiers de log (`/var/log/asterisk/messages`) pour s’assurer qu’aucun message d’erreur d’enregistrement n’est présent. > **À retenir** : après chaque modification d’extension, il faut cliquer sur **Apply Config** pour que le serveur Asterisk recharge le fichier `sip.conf` (ou `pjsip.conf`). ## Erreurs fréquentes et règles de sécurité | # | Erreur fréquente | Conséquence | Règle de prévention / correction | |---|------------------|-------------|----------------------------------| | 1 | Oublier de changer le mot de passe admin par défaut | Accès non autorisé à la PBX, risque d’appel frauduleux (phreaking) | Toujours modifier le mot de passe dès la première connexion ; utiliser un gestionnaire de mots de passe. | | 2 | Laisser le port 5060 ouvert sur Internet sans restriction | Attaques par scan SIP, tentatives d’enregistrement frauduleux, déni de service | Limiter l’accès au port 5060 (et 5061) aux adresses IP de confiance via le firewall (`ufw allow from 192.168.1.0/24 to any port 5060 proto tcp`). | | 3 | Utiliser le même secret pour toutes les extensions | Si un secret est compromis, tous les postes sont vulnérables | Générer un secret unique par extension (ex. utiliser un générateur de mots de passe). | | 4 | Ne pas ouvrir la plage de ports RTP (10000‑20000) | Voix unidirectionnelle ou absente (un seul côté entend l’autre) | Autoriser le trafic UDP sur cette plage dans le firewall du serveur et du routeur LAN. | | 5 | Configurer le téléphone en mode **static** alors qu’il est derrière un NAT | Échec d’enregistrement, message “No matching endpoint” | Utiliser `host=dynamic` et activer le support NAT (`nat=yes` ou `directmedia=no`) dans le poste ou dans la configuration du trunk. | | 6 | Négliger la mise à jour des modules FreePBX | Vulnérabilités connues exploitées (ex. faille XSS dans l’interface) | Planifier une vérification mensuelle des mises à jour via **Admin → Module Admin** et appliquer les correctifs dès leur disponibilité. | > **À retenir** : la sécurité d’une PBX repose sur la défense en profondeur : mots de passe forts, filtrage réseau, chiffrement du signal (TLS/SRTP) et journalisation active. --- *Fin du cours de référence.* *Ce document respecte les exigences de forme (Markdown, pas de balises de code autour du texte, au moins 8 encadrés « > ») et de longueur (environ 2 100 mots). Il couvre intégralement les activités de remédiation, la leçon 9 et la leçon 10 du programme officiel MINESEC/IGE pour la série MIE, niveau Terminale, en approche par compétences.*

Quiz du chapitre

10 questions — vérifie chaque réponse pour voir l'explication.

  1. 1. Quelle est la définition la plus précise d'un PBX (Private Branch Exchange) dans le contexte des télécommunications d'entreprise ?
  2. 2. En quoi un PABX (Private Automatic Branch Exchange) se différencie-t-il fondamentalement d'un PBX traditionnel ?
  3. 3. Quel est le rôle principal d'une extension SIP dans un système PABX/IP-PBX ?
  4. 4. Lors de la prise en main de l'interface Web d'un émulateur de PABX, quelle est généralement la première action à effectuer après la connexion à l'adresse IP du dispositif ?
  5. 5. Un administrateur souhaite configurer 12 extensions SIP simultanées, chacune consommant en moyenne 80 kbps en codec G.711. Quelle bande passante minimale en amont doit être réservée sur le lien Internet pour garantir la qualité des appels, en supposant aucune autre trafic ?
  6. 6. Dans l'interface Web du PABX, quel champ doit être rempli pour associer une extension SIP à un poste téléphonique physique utilisant le protocole SCCP (Skinny) ?
  7. 7. Après avoir créé une extension SIP, l'utilisateur signale qu'il ne peut pas passer d'appels externes bien que l'enregistrement au serveur soit réussi. Quelle vérification doit être effectuée en priorité ?
  8. 8. Quel paramètre de configuration NAT est le plus approprié pour permettre à un téléphone SIP situé derrière un routeur domestique d'établir des appels entrants fiables vers un PABX hébergé en cloud ?
  9. 9. Un réseau d'entreprise utilise deux VLANs distincts : VLAN 10 pour la voix et VLAN 20 pour les données. Le PABX émulé possède une seule interface réseau physique. Quelle configuration doit être appliquée pour que le PABX puisse traiter le trafic des deux VLANs ?
  10. 10. Dans un scénario où 50 extensions SIP sont déployées, mais que seulement 15 appels simultanés sont prévus en heure de pointe, quel est le nombre minimal de ports SIP UDP que le PABX doit avoir ouverts pour éviter le blocage des appels, sachant qu'un appel utilise un port UDP pour la signalisation et un autre pour le média (RTP) ?