Dans cet article nous présentons comment sécuriser de manière efficace son serveur FreePBX.

La sécurité d’un serveur téléphonique est très importante. Si ce serveur se retrouve exposé sur Internet (ce qui est une chose à éviter), la probabilité pour qu’il soit scanné et attaqué est très forte.

L’impact financier peut être conséquent avec la réalisation d’appels frauduleux vers des numéros spéciaux internationaux, par exemple.

Heureusement, FreePBX offre des mécanismes de sécurité complets et très simples à mettre en œuvre.

FreePBX intègre un firewall, un détecteur d’intrusion et un support des certificats TLS pour les connexions HTTPS.

Modifier le port SIP par défaut

La première action à mener est de modifier le port d’écoute SIP. Il s’agit d’une solution simple qui permettra d’éviter les attaques de type script-kiddies qui, dans 99% des cas, scannent et cherchent à attaquer les ports par défaut des applications.

Le fait de modifier le port d’écoute d’une application n’est pas un élément de sécurité en soit, mais cela permet de réduire drastiquement le nombre de tentatives d’intrusion surtout pour les serveurs FreePBX exposés sur Internet.

Se rendre dans le menu Paramètres > Paramètres SIP d’Asterisk :

menu Paramètres > Paramètres SIP d'Asterisk
Configurer les paramètres SIP d’Asterisk

Se rendre sur l’onglet SIP Settings [chan_pjsip] et modifier la ligne « Port to Listen On » (en bas de page).

Indiquer un autre port d’écoute que le 5060 (qui est le poste SIP standard) ; on peut indiquer 5872, par exemple.

Modifier le port SIP d'Asterisk
Modifier le port SIP d’Asterisk

Cliquer sur le bouton « Valider pour sauvegarder le changement ».

Désactiver le module chan_sip

FreePBX, et plus généralement Asterisk, intègre deux modules pour la gestion du protocole SIP : chan_pjsip et chan_sip.

Le module chan_sip est l’ancien module qui n’est plus réellement maintenu. Il est toujours installé avec Asterisk pour des raisons de rétro-compatibilité. Cependant, pour les nouvelles installations, ce module n’est pas nécessaire. On peut donc le désactiver.

Se rendre dans le menu Paramètres > Paramètres avancés :

menu Paramètres > Paramètres avancés
Modifier les paramètres avancés de FreePBX

Descendre jusqu’à la ligne « SIP Channel Driver » (plus ou moins en milieu de page) et sélectionner « chan_pjsip » dans la liste déroulante :

Personnaliser le pilote SIP
Personnaliser le pilote SIP

Cliquer sur le bouton « Soumettre » pour sauvegarder la configuration, puis cliquer sur le bouton « Appliquer la configuration » afin de l’appliquer :

Appliquer la configuration FreePBX
Après un changement, il faut appliquer la configuration

Activer et configurer le firewall intégré

FreePBX intègre un firewall puissant et efficace.

Pour démarrer la configuration du firewall, se rendre dans le menu Connectivité > Firewall :

menu Connectivité > Firewall
Configurer le firewall

Si le firewall n’a jamais été configuré, il est sûrement désactivé. Pour l’activer, il faut cliquer sur le bouton « Enable Firewall« .

La première chose à configurer est le Responsive Firewall : il s’agit d’une fonctionnalité qui va automatiquement ajouter une adresse IP au firewall dès qu’un téléphone s’enregistre avec succès. L’adresse IP sera ensuite automatiquement retirée du firewall dès que le téléphone ne sera plus enregistré.

Se rendre sur l’onglet « Responsive Firewall » et sur la ligne Responsive Firewall, cliquer sur le bouton Activer ; puis activer le service pour le protocole SIP. Enfin, nous recommandons de ne pas activer le bypass pour fail2ban :

Activer la fonctionnalité Responsive Firewall
Activer la fonctionnalité « Responsive Firewall »

L’étape suivante consiste à indiquer quelles adresses IP ou quelles plages d’adresses IP peuvent être considérées comme sûres, à surveiller ou à interdire.

Se rendre sur l’onglet Networks.

Pour chaque adresse IP ou plage d’adresses IP, trois choix seront possibles :

  • Trusted : totalement fiable, ne passera pas par le firewall ; cette adresse IP aura complètement accès à FreePBX
  • Local : fiable, passera par le firewall ; cette adresse IP aura accès aux services activés dans la zone « local » de FreePBX
  • Internet : à surveiller, passera par le firewall ; cette adresse IP aura accès aux services activés dans la zone « internet » de FreePBX
  • Autre : autre type de trafic spécifique ; nous n’entrons pas dans le détail à ce stade

Ainsi, notre recommandation est de procéder de la manière suivante :

  • Mettre l’adresse IP d’administration en « trusted » afin qu’il ne passe pas par le firewall ;
  • Mettre le réseau local de l’entreprise en « Local » afin que seuls les services associés à la zone « local » soient atteignables ;

Pour chaque adresse IP, il faut indiquer le masque de sous-réseau : /32 pour indiquer une seule adresse IP et /24 pour indiquer toutes les adresses IP d’un réseau de classe C.

Exemple de résultat obtenu :

Configurer le firewall de FreePBX
Exemple de configuration du firewall de FreePBX.

Il faut cliquer sur le bouton « Save » pour valider les changements.

La troisième étape est de modifier la zone à laquelle est rattachée l’interface réseau.

Se rendre sur l’onglet Interfaces.

Si vous possédez plusieurs interfaces réseaux : l’une pour l’accès à Internet, l’autre pour l’accès au réseau local, par exemple, il faut configurer la première sur la zone « Internet » et la seconde sur « Local ».

Dans notre cas, nous ne disposons que d’une seule interface via laquelle FreePBX accède au réseau local et à Internet. Nous devons donc configurer cette interface sur la zone « Internet » :

Configurer les interfaces du firewall de FreePBX
Configuration des interfaces pour le firewall

Cliquer sur le bouton « Update Interfaces » pour sauvegarder la configuration.

Activer l’IDS (Intrusion Detection System)

Le dernier onglet permet de configurer le système de détection d’intrusion.

FreePBX intègre un système de détection d’intrusion basé sur fail2ban.

Plusieurs paramètres peuvent être configurés :

  • Ban Time : la durée de bannissement d’une adresse IP ayant un comportement anormal. La durée est exprimée en seconde. 1 800 secondes (valeur par défaut) correspond à un ban de 30 minutes. Nous conseillons d’augmenter cette durée à, par exemple, 24 heures, soit 86 400 secondes.
  • Max Retry : le nombre d’essais erronés avant qu’une adresse IP ne soit bannie. Nous conseillons de réduire cette valeur à 3 ou 5 (8 par défaut).
  • Find Time : la durée à prendre en compte pour compter le nombre d’essais erronés. La durée est exprimée en seconde. 600 secondes (valeur par défaut) correspond à une durée de 5 minutes.
  • E-mail : adresse e-mail sur laquelle recevoir les alertes dès qu’une adresse IP est bannie. Si l’on ne souhaite pas recevoir de notification, on peut laisser ce champ vide.
  • Whitelist : liste d’adresses IP qui ne pourront pas être bannies.

Exemple de résultat obtenu :

Configuration de fail2ban pour FreePBX
Configuration de fail2ban pour FreePBX

Il faut cliquer sur le bouton « Save Intrusion Detection » pour sauvegarder la configuration.

Enfin, il est également possible de voir les adresses IP bannies depuis cette page.

Nous avons fait le tour des éléments à connaître pour sécuriser son serveur FreePBX.

Pour apprendre à installer un certificat Let’s Encrypt en quelques clics, consultez notre article dédié : Installer Let’s Encrypt sur FreePBX.

Notre documentation est enrichie très régulièrement. N’hésitez pas à nous suivre via notre flux RSS ou sur les réseaux sociaux (Twitter ou LinkedIn).


Découvrez nos matériels pour FreePBX

En stock permanent


Sangoma silver partner
boxIP est silver Partner Sangoma

Aucune réponse

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.