Le choix du bon matériel pour accueillir pfSense est toujours délicat. Il n'est pas évident de dimensionner correctement son firewall par rapport à son besoin, ni de choisir les bons composants lorsque l'on souhaite assembler son matériel soi-même.
Nous présentons dans cet article les éléments à prendre en considération pour le dimensionnement de son firewall, ainsi que les points de vigilance à avoir dans le choix des composants.
[Intro] Dimensionner son firewall, qu'est-ce que cela signifie ?
Avant de rentrer dans le vif du sujet, il est important de donner la définition du terme "dimensionner". Dans le choix d'un firewall, il va être important de définir les paramètres suivants :
- Débit attendu : élément essentiel du choix du matériel. Quel débit maximal souhaitons-nous que le firewall puisse supporter ?
- Mémoire-vive : de quelle quantité de mémoire-vive le firewall a-t-il besoin et quel est l'impact des services ou packages que j'active sur la consommation de mémoire ?
- Processeur : comment choisir correctement son processeur pour être sûr qu'il ne soit pas le goulet d'étranglement de mon firewall ?
- Disque-dur : quelle taille de disque-dur prévoir ? Faut-il opter pour un disque-dur SSD ?
Ces éléments sont les principales caractéristiques de dimensionnement à prendre en compte dans le choix de son firewall.
1. Quel débit ?
Le premier élément à prendre en considération est le débit souhaité. Est-ce 100 Mbps ? 1 Gbps ? 10 Gbps ? Ou davantage ?
Il faut également se poser la question de la connectique attendue : Ethernet (RJ45), Fibre Optique, WiFi, ... ?
Le débit standard actuel des réseaux modernes pour des entreprises de type TPE/PME est de 1 Gbps.
C'est un débit suffisant pour offrir de bonnes conditions de travail tout en répondant aux besoins d'évolutivité des débits des prochaines années. C'est donc le débit qu'il conviendra de retenir dans l'immense majorité des usages.
Ainsi, il nous paraît indispensable que votre firewall soit équipé de ports RJ45 Gigabits.
De plus, si votre firewall dispose de plusieurs ports réseaux 1 Gbps, il vous sera possible de faire de l'agrégation de liens afin d'accroître le débit offert (par exemple : 2x1 Gbps, 4x1 Gbps, ...).
Il est important de préciser ici que si votre firewall dispose de ports Gigabits, mais que vos switch disposent uniquement de ports Fast Ethernet (c'est-à-dire fonctionnant au maximum à 100 Mbps), alors le débit maximum que pourra offrir votre firewall sur chacune de ses interfaces connectée au switch sera de 100 Mbps.
Pour un usage intensif, de type très grande entreprise ou Centre de données (data center), il conviendra de prévoir une connectique fibre optique offrant des débits de 10 Gbps ou davantage.
Dans tous les cas, il est parfaitement inutile de voir trop large et de choisir des débits largement surdimensionnés ; cela augmentera sensiblement vos coûts d'acquisition sans aucun bénéfice à l'appui.
Dans l'article [pfSense] Comment bien choisir sa carte Wi-Fi, nous détaillons comment choisir sa carte WiFi pour pfSense afin d'être certain de faire le bon choix.
Enfin, et pour conclure sur le débit, il est important d'avoir conscience que ce n'est pas parce que votre firewall dispose de ports Gigabits que le débit maximum délivré sera d'1 Gbps sur chaque port !
En effet, si les autres composants matériels ne sont pas correctement dimensionnés (CPU trop faible, par exemple), si vous utilisez un VPN à haut niveau de chiffrement sans disposer d'accélération cryptographique ou si vous faites de l'inspection de trafic par exemple, alors le débit risque très fortement d'être ralenti.
D'une façon générale, les modules faisant de l'inspection de trafic (comme squidGuard, Snort, Suricata, ...) vont forcément légèrement ralentir le débit.
La plupart des autres modules disponibles sur pfSense ne vont pas ralentir le débit, mais vont principalement augmenter le besoin en ressource processeur ou en mémoire-vive.
2. L'impact des fonctionnalités sur le dimensionnement
Fonctionnement de base de pfSense
Pour fonctionner correctement, pfSense nécessite dans son installation par défaut de disposer de 256 à 512 Mo de mémoire-vive.
Ensuite, dans le fonctionnement de pfSense (et dans le fonctionnement de n'importe quel autre matériel de type stateful), chaque connexion est suivie dans la table d'état.
Pour chaque connexion, il y a 2 états de stockés dans la table : une pour la connexion entrante sur le firewall, l'autre pour la connexion sortante.
Un exemple simple d'une connexion est un ordinateur connecté sur le réseau local (sur le LAN) qui consulte le site web google.fr.
Attention : si l"utilisateur consulte en parallèle le site wikipedia.fr, alors il consomme une deuxième connexion, etc. Il ne faut donc pas penser qu'un ordinateur = une connexion qui sera stockée dans la table d'état. C'est potentiellement beaucoup plus.
La table d'état est stockée en mémoire-vive. Sa taille a donc un impact sur la mémoire-vive nécessaire. Il faut considérer que la consommation en mémoire-vive est la suivante :
- 50 000 connexions = 100 000 états = ~ 100 Mo de RAM
- 500 000 connexions = 1 000 000 états = ~ 1 Go de RAM
VPN
D'une façon générale, les VPN IPsec offrent un meilleur débit que les VPN OpenVPN.
L'impact du VPN sur le débit maximal possible va dépendre du choix du chiffrement. Si le matériel ne dispose pas d'accélération cryptographique, les débits vont très rapidement s'effondrer. En revanche, si le matériel supporte le jeu d'instruction AES (également appelé AES-NI), alors l'impact sur le débit sera extrêmement minime.
Ainsi, notre recommandation est clairement d'opter pour un processeur supportant l'AES-NI que vous utilisiez ou non la fonctionnalité VPN. C'est d'ailleurs un pré-requis à pfSense 2.5.
Snort/Suricata
Les modules Snort et Suricata vont avoir une consommation de mémoire-vive de l'ordre de 1 à 2 Go.
Leur impact sur le débit est très dur à quantifier et va dépendre principalement du processeur et du nombre d'instructions d'inspection de trafic qui sera configuré.
Squid
Squid utilise beaucoup le disque-dur (contrairement à pfSense qui, dans son usage par défaut, est très peu consommateur d'espace disque).
La quantité d'espace disque nécessaire va dépendre de la quantité de données que l'on souhaite conserver en cache et se paramètre dans la configuration de squid.
Pour le choix du type de disque-dur, on considère que jusqu'à environ une centaine d'utilisateurs, n'importe quel disque-dur (disposant d'une vitesse de rotation de 7 200 tour/min, qui est le standard) fera l'affaire.
Au-delà, le choix d'un disque SSD est clairement à privilégier. Si vous faites le choix d'un disque-dur SSD, il est indispensable de choisir un disque-dur SSD de qualité, autrement le nombre élevé de lecture-écriture produit par le proxy va provoquer une fin de vie rapide de votre SSD...
Concernant la mémoire-vive consommée par squid, il faut compter environ 15 Mo de mémoire-vive pour 1 Go de cache sur le disque-dur.
Soit, pour un cache de 100 Go, il faut compter 1,5 Go de mémoire-vive.
3. Bien choisir son matériel
Une fois le dimensionnement de son firewall défini, il est important de bien choisir son matériel afin qu'il soit pleinement compatible avec pfSense et pleinement évolutif.
Nos principales recommandations sont :
- Architecture 64 bits : les architectures 32 bits ne sont officiellement plus supportées à la fin du mois d'octobre 2018. Il est indispensable de choisir une architecture 64 bits ;
- Support de l'AES-NI : AES-NI est un pré-requis à pfSense 2.5 (qui devrait sortir vraisemblablement en 2019). Il est donc indispensable de choisir un processeur supportant le jeu d'instructions AES-NI ;
Si vous achetez un firewall déjà assemblé pour pfSense :
- Acheter son matériel en France et bénéficiant d'un remplacement/échange sous 24-48h : en cas de panne de votre firewall vous vous retrouvez bloqués (plus d'accès à Internet, plus d'accès distants, plus de VPN, etc.) ; pour les installation critiques, la mise en place de pfSense en haute-disponibilité est très fortement conseillée ; pour les autres installations, il est indispensable de pouvoir obtenir un matériel de remplacement rapidement ;
- Disposer d'une garantie matérielle d'au moins 3 ans : c'est la garantie que les composants sont tous de qualité ;
- Éviter les plateformes type Ebay, alibaba, etc. : les délais de livraisons sont très longs, vous risquez d'avoir à régler des droits de douane et des frais de dédouanement et la garantie sera compliquée à mettre en œuvre si votre matériel tombe en panne après plusieurs mois de fonctionnement ;
- Choisir un revendeur de confiance : il vous proposera du matériel de qualité et un service après-vente performant en cas de besoin.
Où acheter son firewall pour pfSense ?
De notre expérience, nous estimons qu'il existe aujourd'hui 2 solutions :
1/ Acquérir du matériel officiel vendu par la société Netgate (éditeur du logiciel pfSense). L'avantage est que vous bénéficiez du matériel officiel avec la garantie absolue qu'il est totalement supporté par l'éditeur. Les inconvénients principaux à nos yeux sont : les durées de garantie extrêmement courtes, le temps nécessaire pour un échange, le prix.
Boutique en ligne Netgate : https://store.netgate.com
2/ Acquérir du matériel vendu par Provya : face au besoin de disposer de matériel fiable et économique et au manque de solutions qui étaient disponibles sur le marché, nous avons décidé de façonner notre propre matériel, avec des composants de qualité et au meilleur coût. L'assemblage, le support et la garantie sont effectués par nos soins depuis la France ; tous nos matériels sont garantis 3 ans avec remplacement/échange en 24-48h, et les composants sont choisis avec soin pour fonctionner au mieux et durablement avec pfSense (support AES-NI, disque SSD de qualité, ...).
Boutique en ligne Provya : https://store.provya.fr
Vous avez maintenant toutes les cartes en main pour dimensionner correctement votre firewall pour pfSense !
Pour aller plus loin
[pfSense] Comment bien choisir sa carte Wi-Fi
Best practices / Recommandations pour la configuration de votre firewall
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : matérielpfSense
Le nouveau service DNS de Cloudfare a suscité beaucoup d'attention et de commentaires.
En nous inspirant de l'article DNS over TLS with pfSense, nous proposons ici un guide rapide et en français sur la configuration de vos serveurs DNS sur pfSense et plus particulièrement sur la configuration du DNS sur TLS.
Dans ce mini-guide, nous utiliserons les serveurs DNS de Cloudfare, mais ce guide est également applicable avec les serveurs DNS Quad9.
À noter : dans ce guide nous travaillerons avec le mode "DNS resolver" actif et le mode transfert (DNS Query Forwarding) doit être désactivé puisque notre configuration va créer sa propre zone de transfert. Il s'agit de la configuration par défaut de pfSense.
1. Utiliser les serveurs DNS Cloudfare (ou Quad9)
La première étape consiste à configurer pfSense pour qu'il utilise les serveurs DNS de Cloudfare. Pour cela, se rendre dans le menu System > General Setup (ou Système > Configuration générale si votre interface est en français) :
Les serveurs DNS à configurer sont :
Exemple de résultat obtenu :
Cliquer sur le bouton Save (ou Sauvegarder) en bas de page pour enregistrer les modifications.
Si nous avions souhaité utiliser les serveurs DNS de Quad9, les serveurs DNS à configurer auraient été les suivants :
2. Activer DNS sur TLS
Il nous reste à configurer pfSense pour lui dire de contacter ces serveurs DNS sur TLS.
Pour cela, se rendre dans le menu Services > DNS Resolver (ou Services > Résolveur DNS) :
Dans l'onglet General Settings (Paramètres généraux), descendre jusqu'à la zone "Custom options" (il faut cliquer sur le bouton "Display Custom Options" pour l'afficher).
Dans cette zone de texte, copier-coller la configuration suivante :
server:
forward-zone:
name: "."
forward-ssl-upstream: yes
forward-addr: 1.1.1.1@853
forward-addr: 1.0.0.1@853
Pour utiliser les serveurs DNS de Quad9 à la place de ceux de Cloudfare, il suffit d'adapter la valeur des lignes forward-addr. La configuration serait alors :
server:
forward-zone:
name: "."
forward-ssl-upstream: yes
forward-addr: 9.9.9.9@853
forward-addr: 149.112.112.112@853
Exemple de résultat obtenu :
Cliquer sur Save (Enregistrer) pour sauvegarder les modifications. Puis appliquer les changements en cliquant sur "Apply Changes" (Appliquer les modifications).
La configuration est terminée !
Pour aller plus loin
[pfSense] Configurer un dual-WAN (plusieurs connexions Internet)
[pfSense] Configurer un cluster de 2 pfSense redondants (failover)
[pfSense] Monter un accès OpenVPN site-à-site
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : DNSpfSensesécuritéTLS
Il est important de maintenir à jour sa version d'Asterisk en production.
Si Asterisk a été installé depuis les dépôts d'une distribution, la mise à jour se fait via les mises à jour classiques de la distribution (apt-get update/upgrade ou équivalent).
En revanche, si Asterisk a été installé directement depuis les sources téléchargées sur le site asterisk.org, nous devons faire les mises à jour manuellement.
Nous détaillerons ici la procédure pour une mise à jour de version mineure au sein d'une branche (ex : mise à jour d'Asterisk 11.10.2 vers 11.14.1), mais pas la procédure pour une mise à jour vers une version majeure d'une branche à l'autre (ex : mise à jour d'Asterisk 11.10.2 vers 13.0.1).
Dans notre cas, nous prendrons l'exemple d'une mise à jour d'Asterisk 11.10.2 vers 11.14.1.
Les étapes de la mise à jour
Comme pour toute mise à jour, nous procédons en 3 étapes :
- Sauvegarde de la configuration : permettra un retour-arrière rapide en cas de problème
- Mise à jour du serveur Asterisk
- Sauvegarde de la configuration après la mise à jour : permet de bénéficier d'une sauvegarde à jour de la configuration en cas de panne ultérieure
Sauvegarder ses fichiers de configuration Asterisk
Les répertoires à sauvegarder sont les suivants :
- /etc/asterisk : le répertoire de configuration d'Asterisk
- /var/spool/asterisk/voicemail/ : le répertoire des messageries vocales d'Asterisk
- /var/lib/asterisk/sounds/ : le répertoire contenant les fichiers sons
Si les CDR sont stockés sous forme de fichier csv, il faut aussi en faire une sauvegarde :
/var/log/asterisk/cdr-csv/ : répertoire contenant les CDR au format CSV
Si les CDR sont stockés en base de données, il faut faire un dump de la base.
Par exemple, dans notre cas, les CDR sont stockés dans une base MySQL nommée "asteriskcdr" et nous souhaitons faire une sauvegarde que nous stockons dans le fichier "/sauvegarde/asterisk.sql" :
mysqldump -u root -p -r/sauvegarde/asterisk.sql asteriskcdr
Toutes nos sauvegardes étant faites, nous pouvons maintenant mettre à jour sereinement notre version d'Asterisk.
Connaître la dernière version d'Asterisk
La liste des versions d'Asterisk à jour se trouve à l'URL suivante : http://www.asterisk.org/downloads/asterisk/all-asterisk-versions
D'une façon générale, la dernière version d'Asterisk d'une branche (dans notre cas, nous travaillons avec la 11) se trouve toujours à l'URL suivante :
http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz => pour la 11
http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz => pour la 13
...
Télécharger la dernière version d'Asterisk
On se place dans le dossier /usr/src :
cd /usr/src
On télécharge la dernière version :
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
On décompresse :
tar -zxvf asterisk-11-current.tar.gz
Cela crée un nouveau dossier portant le numéro de la dernière version téléchargée (ex : asterisk-11.14.1).
On se déplace dans le dossier qui vient d'être créé :
cd asterisk-11.14.1
Mettre à jour sa version d'Asterisk
Les étapes sont les mêmes que pour l'installation d'une nouvelle version d'Asterisk :
./configure
make menuselect
make
make install
Nous ne détaillons pas ces étapes : ce sont exactement les mêmes que celles suivies lors de l'installation ; elles sont donc a fortiori déjà connues.
Il ne reste plus qu'à vérifier le bon fonctionnement de son service Asterisk ; par exemple, en se connectant à la console et en passant un appel !
Enfin, nous pensons à refaire une sauvegarde des fichiers de configuration d'Asterisk suite à la mise à jour.
Pour aller plus loin
[Asterisk] Les commandes utiles pour Asterisk
[Asterisk] Connaître son nombre d'appels simultanés
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : asteriskmettre à jour asteriskupgrade
Les limiters sont une évolution des technologies de priorisation de trafic existante sur pfSense.
D'une façon générale, les limiters permettent de définir une bande-passante maximale pour un usage. Un limiter peut être utilisé pour limiter le trafic d'une adresse IP spécifique ou d'un sous-réseau, pour limiter le trafic pour un type de service spécifique (ex : e-mail, web, ...) ou encore pour répartir de manière équitable le trafic entre plusieurs utilisateurs.
Les usages classiques des limiters sont les suivants :
- limiter l'utilisateur X à 100 kbps de bande-passante Internet ;
- répartir équitablement 1 Mbps de bande-passante entre tous les utilisateurs du réseau "LAN" ;
- limiter le réseau "OPT" à 5 Mbps de bande-passante au total ;
- limiter le protocole FTP à 2 Mbps de bande-passante Internet
Si vous vous reconnaissez dans ces usages ou ces besoins, alors le présent article est fait pour vous. Si vous souhaitez mettre en place une solution de gestion de priorisation de trafic plus globale, alors notre article [pfSense] Configurer la priorisation de trafic avec CBQ est fait pour vous.
Les limiters permettent de définir une bande-passante maximale pour un usage. À l'inverse, la priorisation de trafic permet de garantir une bande-passante minimale.
Dans cet article, nous allons mettre en place des limiters afin de répartir équitablement la bande-passante de notre connexion Internet entre tous les usagers de notre réseau local.
Généralités sur les limiters
Tout comme pour la priorisation de trafic, la mise en place des limiters se fait en 2 étapes consistant à créer les limiters d'une part et à définir les règles d'affectation du trafic dans ces limiters d'autre part :
- Limiters : le limiter associé à un débit maximum et ses règles d'application globale ou par groupe d'adresses IP
- Rules : "règle d'affectation" définissant le limiter par laquelle un trafic spécifique va transiter. Ces règles sont les mêmes que pour la configuration du firewall : filtrage par port et adresse IP source, port et adresse IP de destination, protocole utilisé, etc.
Les limiters se créent généralement par paire : un limiter pour le trafic entrant (Download) et un limiter pour le trafic sortant (Upload).
Les limiters s'organisent de manières hiérarchiques. C'est-à-dire que l'on définit un limiter root (également appelé pipe), pour lequel on va généralement définir un débit et une latence, et des limiters enfants (appelés queues), pour lesquels on va généralement définir un poids (c'est-à-dire une priorité).
Cas d'usage : répartir équitablement la bande-passante Internet
Dans cet article nous partons du cas d'école suivant : nous disposons d'une connexion Internet ADSL offrant un débit descendant (download) de 20 Mbps et un débit montant (upload) de 1 Mbps.
Nous souhaitons que cette bande-passante soit automatiquement et dynamiquement partagée équitablement entre tous les utilisateurs.
C'est-à-dire que si nous avons 2 utilisateurs connectés en même temps, ils disposeront chacun de 10 Mbps en download et 0,5 Mbps en upload au maximum.
Si nous avons 10 utilisateurs connectés en même temps, ils disposeront chacun de 1 Mbps en download et 100kbps en upload au maximum.
pfSense gérera cette répartition équitable automatiquement et dynamiquement au fil de l'eau.
Notre schéma réseau est le suivant :
Démarrons la configuration sans plus attendre !
1. Création du limiter pour l'upload
Nous allons créer 2 limiters root : un pour l'upload et un pour le download.
La création s'effectue depuis le menu Firewall > Traffic Shaper :
Cliquer sur l'onglet Limiters, puis sur le bouton "+ New Limiter".
Les éléments à configurer sont les suivants :
- Enable : case à cocher pour activer le limiter root et ses queues
- Name : le nom de votre limiter root (caractères alphanumériques, tiret et underscore uniquement). Dans notre cas, nous l’appellerons "Upload"
- Bandwidth : la bande-passante de votre limiter root. Il est à noter que l'on peut définir une bande-passante en fonction d'un calendrier (option "Schedule"). Dans notre cas, nous choisissons "1 Mbps"
- Mask : ce paramètre permet de définir comment la limitation va s'appliquer sur le trafic. 3 choix sont possibles :
- none : la limitation s'appliquera à tout le trafic comme un ensemble unique. Dans notre cas, c'est ce que nous choisissons pour le limiter root "Upload" (on veut que l'ensemble du trafic soit limité à 1 Mbps).
- Source addresses : la limitation s'appliquera par adresse IP source (ou groupe d'adresses IP source, suivant le masque). Ainsi, pour effectuer une limitation par adresse IP d'un réseau, on choisira "Source addresses" et préciserons un masque /32. C'est cette valeur que nous choisirons lorsque nous configurerons la queue de notre limiter root d'Upload.
- Destination addresses : la limitation s'appliquera par adresse IP destination (ou groupe d'adresses IP destination, suivant le masque). Ainsi, pour effectuer une limitation par adresse IP d'un réseau de destination, on choisira "Destination addresses" et préciserons un masque /32. C'est cette valeur que nous choisirons lorsque nous configurerons la queue de notre limiter root de Download.
- Description : champ de description, purement informatif
- Advanced Options : permet de définir des paramètres avancés comme la latence ou le taux de perte de paquets. Ces paramètres sont utiles pour simuler des connexions Internet limitées ou de mauvaises qualités (ou pour faire une mauvaise blague à un collègue...). Nous ne l'utiliserons pas dans notre cas, mais le nom de chaque champ parle de lui-même
Exemple de résultat obtenu :

Nous pensons bien-sûr à cliquer sur le bouton "Save" pour sauvegarder notre configuration.
À ce stade, nous avons un limiter root qui va nous permettre de limiter notre trafic à une bande-passante maximale de 1 Mbps.
L'étape suivante est de créer une queue rattachée à ce limiter root et préciser que cette queue sera applicable par utilisateur. C'est-à-dire par adresse IP source avec un masque à /32.
C'est comme si virtuellement, autant de queues étaient dynamiquement créées pour chaque utilisateur, avec les mêmes caractéristiques (le même poids) et qu'elles allaient se répartir la bande-passante du limiter root auquel elles sont rattachées (1 Mbps).
En bas de la page du limiter que nous venons de créer, nous cliquons sur le bouton "+ Add new Queue".
Les éléments à configurer sont les suivants :
- Enable : nous cochons cette case pour activer la queue que nous sommes en train de créer
- Name : le nom de notre queue. Dans notre cas, nous l'appellerons "LAN_Upload"
- Mask : le maque à appliquer, fonctionnant sur le même principe que pour le limiter root. Dans notre cas, nous choisissons "Source addresses" afin d'appliquer une limite sur le trafic en upload, donc quittant notre réseau local avec une adresse IP source locale. Nous souhaitons que cette limitation s'applique pour chaque utilisateur, c'est-à-dire par adresse IP ; nous choisissons donc "32" comme taille du masque.
- Description : champ de description, purement informatif
- Weight : le poids de la queue allant de 1 (priorité la plus faible) à 100 (priorité la plus forte). Pour une répartition équitable de la bande-passante du limiter root, on peut laisser ce champ vide. Si l'on souhaite donner davantage de bande-passante à certains utilisateurs qu'à d'autres, alors il faut jouer sur cette valeur. Dans notre cas, nous laissons le champ vide (la répartition sera équitable).
- Advanced Options : les autres options permettent de simuler des connexions limitées ou de mauvaises qualités. Nous laissons ces champs vides.
Exemple de résultat obtenu :

Nous pensons bien-sûr à cliquer sur le bouton "Save" pour sauvegarder notre configuration. Puis sur "Apply Changes" pour que la nouvelle configuration soit prise en compte par pfSense.
Nos limiters (limiter root et queue) sont prêts pour le trafic sortant (upload). Il nous reste à faire la même configuration pour le trafic entrant (download).
2. Création du limiter pour le download
Nous cliquons sur le bouton "+ New Limiter". La configuration est la même que pour l'upload. Il faut simplement penser à choisir le bon débit (dans notre cas, 20 Mbps) et à changer son nom (dans notre cas, nous l'appellerons "Download").
Exemple de résultat obtenu :
Nous pensons bien-sûr à cliquer sur le bouton "Save" pour sauvegarder notre configuration.
Comme pour la partie upload, nous allons créer une queue, pour cela, nous cliquons sur le bouton "+ Add new Queue".
La configuration est presque la même que pour la queue d'upload. La différence réside dans le choix "Destination addresses" pour l'option "Mask".
En effet, nous souhaitons ici que virtuellement des queues soient créées dynamiquement pour le trafic entrant (download) à destination d'adresses IP locales.
Exemple de résultat obtenu :
Nous pensons bien-sûr à cliquer sur le bouton "Save" pour sauvegarder notre configuration. Puis sur "Apply Changes" pour que la nouvelle configuration soit prise en compte par pfSense.
Nos limiters sont créés :
Il ne nous reste plus qu'à adapter nos règles de filtrage pour les mettre en application.
3. Création des règles d'application
La dernière étape consiste à configurer le firewall pour lui indiquer quel trafic va passer par quel limiter.
Cette configuration se fait depuis le menu Firewall > Rules.
Choisir l'onglet LAN et éditer les règles de filtrage.
Sur chaque règle, se rendre dans les options avancées (bouton "Display Advanced") :
En bas de page, pour l'option "In / Out pipe", choisir "LAN_Upload" pour la première liste déroulante et "LAN_Download" pour la seconde :
Attention : il est nécessaire de faire cette manipulation sur toutes les règles de filtrage de votre interface LAN (ou de vos interfaces locales d'une façon générale) pour l'accès à Internet.
Pour être sûr d'affecter le bon limiter au bon champ In ou Out, il faut avoir en tête que ces champs représentent la vue depuis le firewall. C'est-à-dire que le champ IN correspond au trafic qui entre (incoming) sur cette interface, soit dans notre cas au trafic qui provient d'un utilisateur du LAN et va vers Internet ou un autre réseau.
C'est donc le limiter d'upload qu'il faut assigner à ce champ.
A contrario, le champ Out correspond au trafic qui sort (outgoing) par cette interface, soit dans notre cas le trafic qui provient d'Internet ou d'un autre réseau et qui est à destination d'un ordinateur du LAN.
C'est donc le limiter de download qu'il faut assigner à ce champ.
La limitation de trafic par utilisateur est en place !
4. Vérifier le bon fonctionnement
Pour vérifier que les limiters fonctionnent correctement, il faut se rendre dans Diagnostics > Limiter Info.
Chaque root limiter et ses queues sont présentés au format texte avec leurs paramètres et leurs valeurs.
Pour aller plus loin
[pfSense] Comprendre la priorisation de trafic
[pfSense] Configurer la priorisation de trafic avec CBQ
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : limiterspfSenserépartition bande-passante
Nous allons voir dans cet article comment configurer pfSense pour disposer de deux connexions Internet (ou plus encore) utilisables en loadbalancing ou en fail-over.
Ces configurations permettent d'accroître le débit disponible pour l'accès Internet ou d'assurer une continuité de service en cas de panne du lien principal, par exemple.
Avant de commencer, les questions à se poser...
Combien peut-on avoir de connexions Internet en simultané ?
Il n'y a pas de limites théoriques.
Nous avons de très nombreux exemples d'installations disposant de 2, 3 ou 4 connexions Internet.
Le déploiement le plus important que nous avons rencontré est de 12 connexions Internet simultanées.
Une haute-disponibilité peut-elle être assurée via deux connexions Internet du même type chez le même opérateur
Généralement, la réponse est plutôt non. Il faut privilégier des connexions Internet chez des opérateurs différents. En effet, lorsqu'un opérateurs rencontre une panne (sur son DSLAM, par exemple), la panne est présente sur tous ses liens arrivant au même endroit.
Disposer de plusieurs connexions chez le même opérateur peut être une bonne approche si l'objectif recherché est d'accroître son débit.
Vaut-il mieux une connexion Internet disposant d'un bon débit ou de plusieurs connexions Internet disposant d'un débit moindre
La réponse va dépendre du prix et de la garantie de temps de rétablissement dont vous disposez sur chaque lien. Ce sont les deux principaux critères de décision.
Principe de fonctionnement
Dans notre article nous prendrons l'exemple suivant : une entreprise disposant de 2 connexions ADSL de débit similaire, sur lesquels nous souhaitons mettre en place de la répartition de charge (load-balancing).
Le schéma réseau serait le suivant :
La configuration de la haute-disponibilité ou du failover des liens Internet se fait au niveau de la gestion des passerelles et des groupes de passerelles.
Nous allons donc configurer pfSense pour qu'il utilise telle ou telle passerelle (et donc telle ou telle connexion Internet) en fonction de priorité que nous définirons.
Pour cela, nous créerons un groupe de passerelles dans lequel nous définirons quelles connexions Internet utiliser, avec quelles priorités et le cas échéant selon quelles règles de bascule de l'une à l'autre.
Il faut avoir en tête que la configuration du routage sur pfSense se fait de 3 façons, de la priorité la plus forte à la moins forte :
- Forcer la gateway dans les règles de firewall : permet de forcer le routage pour une règle de firewall précise (cela se configure dans les options avancées des règles de firewall) - dans cette configuration, on peut choisir une passerelle ou un groupe de passerelles.
- Définir une route : permet de forcer le routage pour une adresse IP ou une plage d'adresses IP destination (cela se configure dans le menu System > Routing) - dans cette configuration, on peut choisir une passerelle, mais pas un groupe de passerelles.
- Définir une passerelle par défaut : par défaut, tous les flux sortants utiliseront cette passerelle (plus exactement, tous les flux à destination d'un réseau inconnu de pfSense) - dans cette configuration, on peut choisir une passerelle, mais pas un groupe de passerelles.
Les pré-requis [1/2] : disposer d'interfaces WAN fonctionnelles
Dans notre exemple, le premier lien Internet est connecté sur l'interface "WAN", le second lien Internet est connecté sur l'interface "WAN2".
Exemple de configuration obtenue :
La configuration des interfaces WAN et WAN2 n'entrent pas dans le périmètre de cet article. Que ces interfaces soient configurées en adresses IP statiques ou dynamiques (DHCP) n'a pas d'importance.
Ce qui est important est que vous disposiez de 2 interfaces configurées pour vos connexions Internet.
Les pré-requis [2/2] : disposer d'un serveur DNS sur chaque passerelle WAN
En cas de perte d'un des liens Internet, il est important que les requêtes DNS continuent de fonctionner. Pour cela, il faut définir au moins un serveur DNS par gateway WAN.
Cette configuration se fait dans System > General Setup.
La configuration se fait dans la partie "DNS Server Settings". Par exemple, en utilisant les DNS de Google :
Nous utilisons les serveurs DNS de Google à titre d'exemple. Il est à noter que si vous ne souhaitez pas utiliser les serveurs DNS de votre fournisseur d'accès, alors il est préférable d'utiliser d'autres serveurs DNS que ceux de Google, comme ceux de French Data Network (80.67.169.12 et 80.67.169.40) ou de Quad9 (9.9.9.9).
Les pré-requis étant levés, passons maintenant à la configuration.
1. Créer un groupe de passerelles
Nous allons créer un groupe de passerelles comprenant la passerelle de l'interface WAN et la passerelle de l'interface WAN2.
La création s'effectue depuis le menu System > Routing.
Se rendre dans l'onglet Gateway Groups.
Puis cliquer sur le bouton "+ Add".
Les éléments à configurer sont les suivants :
- Group Name : le nom du groupe de passerelles. Dans notre exemple, nous choisissons "Groupe_Gateway" (attention, pas d'espace, tiret ou de caractères spéciaux dans le nom).
- Gateway Priority : pour chaque passerelle, nous donnons une priorité d'utilisation. La priorité la plus faible l'emporte toujours. C'est-à-dire que si pour la passerelle de l'interface WAN, vous choisissez une priorité 1 et pour la passerelle de l'interface WAN2 une priorité 2, alors le trafic s'écoulera exclusivement par la passerelle de l'interface WAN. Le trafic s'écoulera via la passerelle de l'interface WAN2 si et seulement si la passerelle de l'interface WAN est hors-service.
Ainsi, si vous souhaitez faire de la répartition de bande-passante entre vos 2 connexions Internet, il faut choisir le même niveau de priorité.
Si vous souhaitez configurer une connexion Internet en secours d'une principale, alors il faut jouer sur le niveau de priorité.
pfSense gère jusqu'à 5 niveaux de priorités allant de "Tier 1" (priorité la plus forte) à "Tier 5" (priorité la plus faible).
Dans notre cas, nous souhaitons faire de la répartition de charge, nous choisissons donc "Tier 1" pour le WAN et pour le WAN2.
- Virtual IP : sur chaque interface, vous pouvez choisir l'adresse IP avec laquelle pfSense va émettre ses paquets. Soit c'est l'adresse IP de l'interface, soit c'est une adresse IP virtuelle précédemment créée. Ce peut être utile si vous avez 2 pfSense redondants, par exemple (cf. notre article [pfSense] Configurer un cluster de 2 pfSense redondants (failover)).
- Trigger Level : permet de définir le déclencheur qui permettra à pfSense de choisir quand basculer vers un lien disposant d'une priorité plus faible. Il existe 4 valeurs possibles :
- Member down : lorsqu'une passerelle est considérée comme non-joignable (c'est-à-dire lorsque l'adresse IP de monitoring associée n'est plus joignable par un ping)
- Packet Loss : lorsque le taux de perte de paquets maximum configuré pour cette passerelle est atteint
- High Latency : lorsque la latence maximale définie pour cette passerelle est atteinte
- Packet Loss or High Latency : lorsque le taux de perte de paquets maximum ou la latence maximale est atteint
Ces paramètres (taux de perte de paquets maximum, latence maximale, etc.) se définissent dans la configuration de la passerelle.
Dans notre cas, nous choisissons "Member down".
- Description : champ optionnel purement cosmétique
Exemple de résultat obtenu :
Nous sauvegardons et cliquons ensuite sur "Apply changes" pour appliquer la configuration.
À ce stade, nous avons créé un groupe de passerelles qui permet de répartir équitablement le trafic Internet sur nos deux connexions. Il nous reste à indiquer à pfSense quel trafic doit utiliser ce groupe de passerelles.
2. Mettre en service le dual-WAN
La (presque) dernière étape consiste à configurer le firewall pour lui indiquer par quelle passerelle (ou plutôt quel groupe de passerelles dans notre cas) faire passer le trafic. Comme vu en début d'article, sans précision de notre part, le firewall utilisera la passerelle par défaut. Il est évidemment possible de définir soi-même quelle est la passerelle par défaut. En revanche, il n'est pas possible de définir qu'il faut utiliser un groupe de passerelles par défaut.
Il nous faut donc préciser dans chacune des règles du firewall que le trafic doit s'écouler par notre passerelle par défaut.
Cette configuration se fait depuis le menu Firewall > Rules.
Choisir l'onglet LAN et éditer les règles de filtrage.
Sur chaque règle, se rendre dans les options avancées (bouton "Display Advanced") :
En bas de page, préciser le groupe de passerelles dans le champ Gateway :
Attention : il est nécessaire de faire cette manipulation sur toutes les règles de filtrage de votre interface LAN (ou de vos interfaces locales d'une façon générale) pour l'accès à Internet.
Exemple de résultat obtenu :
Félicitations, votre dual-wan est en place !
3. Configuration des services spécifiques
Configuration du service OpenVPN server
Si un serveur OpenVPN est configuré sur le pfSense, il est nécessaire de modifier l'interface d'écoute du service (normalement "WAN") pour la remplacer par le groupe de passerelle (Groupe_Gateway).
Cette modification s'opère dans "OpenVPN" > "Servers".
Davantage d'informations sur la configuration du service OpenVPN : [pfSense] Monter un accès OpenVPN site-à-site.
Configuration du service VPN IPsec
Si un tunnel IPsec est configuré sur le pfSense, il est nécessaire de modifier l'interface d'écoute du VPN IPsec (normalement "WAN") pour la remplacer par le groupe de passerelles (Groupe_Gateway).
Cette modification s'opère dans "VPN" > "IPsec". La modification s'effectue sur la phase 1.
4. Load-balancing avancé
Il est possible de définir des poids, ou des priorités, à chaque passerelle de sorte que le load-balancing ne soit pas fait obligatoirement suivant un ratio équitable (de type 50%-50% pour du dual-wan ou 33%-33%-33% dans le cas de trois connexions Internet).
Ces poids se définissent de 1 à 30. Par défaut, le poids de chaque passerelle est de 1.
Le mode de fonctionnement des poids est le suivant :
- s'il y a 2 passerelles et qu'elles disposent chacune d'un poids de 1, alors la répartition de bande passante sera de 1/2 pour chacune, soit 50%.
- si l'une dispose d'un poids de 1 et la seconde d'un poids de 2, alors la première prendra 1/(1+2) = 33% du trafic et la seconde 2/(1+2) = 67% du trafic.
- si l'une dispose d'un poids de 5 et l'autre d'un poids de 12, alors la première prendre 5/(5+12) = 30% du trafic et la seconde 12/(5+12) = 70% du trafic.
Il est ainsi donc possible de définir des rapports de répartition du trafic sortant jusqu'à un rapport de 1 à 30.
Cette personnalisation s'opère dans la configuration de la passerelle depuis le menu System > Routing.
Il faut modifier la passerelle (icône en forme de crayon) et se rendre dans les options avancées (Display Advanced), puis modifier le champ "Weight".
Cette fonctionnalité est très pratique si l'on veut coupler 2 connexions ne disposant du même débit (une connexion ADSL et une connexions SDSL, par exemple).
5. Vérifier le bon fonctionnement
Une manière simple de vérifier que le trafic passe bien maintenant par les 2 connexions Internet est de se rendre dans Status > Traffic Graph.
En sélectionnant les interfaces WAN et WAN2, vous devriez voir le trafic s'écouler via les 2 liens.
Ensuite, pour tester le bon fonctionnement de la haute-disponibilité de vos liens, plusieurs tests peuvent être réalisés. En voici quelques exemples :
- débrancher et rebrancher successivement le câble réseau de l'interface WAN puis WAN2
- télécharger un fichier ou lancer des requêtes ping lorsque que vous ferez la manipulation précédente afin de constater la bonne bascule du trafic sur un lien Internet puis l'autre
À ce stade, pensez à faire une sauvegarde de la configuration de votre pfSense ("Diagnostics" > "Backup & Restore") ;-)
Pour aller plus loin
[pfSense] Configurer un cluster de 2 pfSense redondants (failover)
[pfSense] Monter un accès OpenVPN site-à-site
[pfSense] Configurer ses VLAN
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : dual-wanhaute-disponibilitémulti-wanpfSense
English version: [pfSense] Configuring High Availability.
Dans cet article, nous allons voir comment configurer deux serveurs pfSense en mode cluster afin d'assurer un service en haute-disponibilité.
Il est à noter que pfSense est l'une des rares solutions open-source offrant des techniques de haute-disponibilité permettant de garantir que le firewall ne puisse pas être un point individuel de défaillance (SPOF).
Dans cet article, nous nous baserons sur l'architecture suivante pour réaliser nos configurations :
pfSenseA - WAN : 172.25.46.101
pfSenseB - WAN : 172.25.46.102
@IP virtuelle - WAN : 172.25.46.100
pfSenseA - LAN : 192.168.0.11
pfSenseB - LAN : 192.168.0.12
@IP virtuelle LAN : 192.168.0.10
Principe de fonctionnement
pfSense communique sur les réseaux LAN & WAN avec ses adresses IP virtuelles ; il n'utilise jamais l'adresse IP assignée à son interface.
En cas de défaillance de pfSenseA (pfSense primaire), pfSenseB (pfSense secondaire) prend le relais sans aucune interruption de service. La bascule de pfSenseA vers pfSenseB est totalement transparente.
Afin d'assurer la réplication du serveur pfSenseA vers le serveur pfSenseB, 3 éléments doivent être configurés : CARP, pfsync et XML-RPC.
CARP
CARP (Common Address Redundancy Protocol) est un protocole permettant à plusieurs hôtes présents sur un même réseau de partager une adresse IP.
Ici, nous utilisons CARP afin de partager une adresse IP WAN et une adresse IP LAN sur nos serveurs pfSense.
C'est cette adresse IP virtuelle que pfSense va utiliser pour sa communication sur le réseau. Ainsi, en cas de défaillance du pfSense primaire (pfSenseA), le pfSense secondaire (pfSenseB) prendra le relais de manière transparente au niveau réseau (reprise de l'adresse IP virtuelle).
pfsync
pfsync est un protocole permettant de synchroniser entre deux serveurs pfSense l'état des connexions en cours (et de manière plus large entre deux serveurs exécutant le firewall Packet Filter). Ainsi, en cas de défaillance du serveur primaire, l'état des connexions en cours est maintenu sur le serveur secondaire. Il n'y a donc pas de coupure liée à la bascule des services du pfSenseA vers le pfSenseB.
Il est recommandé d'effectuer cette synchronisation sur un lien dédié entre les deux serveurs pfSense. À défaut, le lien LAN peut être utilisé.
La réplication peut se faire d'un serveur primaire vers un ou plusieurs autres serveur(s).
XML-RPC
XML-RPC est un protocole permettant la réplication de données d'un serveur vers un autre. Il est utilisé dans pfSense afin de répliquer la configuration du serveur primaire vers le serveur secondaire.
Pour garantir son bon fonctionnement, il est important qu'il utilise la même interface que celle utilisée par le protocole pfsync.
1. Configurer les adresses IP virtuelles
Afin de fonctionner, chaque serveur pfSense doit disposer d'une adresse IP sur son interface, ainsi qu'une adresse IP virtuelle qui sera partagée entre les deux serveurs pfSense. De ce fait, nous utilisons 3 adresses IP par réseau.
Pour configurer l'adresse IP virtuelle, se rendre dans "Firewall" > "Virtual IPs" :
Cliquer sur l'icône "+ Add" pour ajouter une adresse IP virtuelle.
Les éléments à configurer sont les suivants :
- Type : ici, nous avons quatre possibilités :
- IP Alias
- CARP
- Proxy ARP
- Other
Nous choisissons "CARP". Nous ne rentrons pas ici dans le détail de l'usage de chaque option. Pour plus d'informations, nous vous invitons à lire l'article What are Virtual IP Addresses - EN.
- Interface : l'interface sur laquelle la VIP doit être configurée. Nous configurons la première sur l'interface WAN, puis la seconde sur l'interface LAN.
- Address(es) : l'adresse VIP et le masque du subnet de l'interface. Dans notre exemple : 172.25.46.100 et /24
- Virtual IP Password : mot de passe permettant de sécuriser les échanges au sein du groupe d'hôtes se partageant la VIP. Ce mot de passe devra être re-saisi sur le pfSense secondaire.
- VHID Group : Virtual Host Identifier. Un serveur peut faire parti de plusieurs groupes de VIP. Afin d'identifier chaque groupe, un ID unique lui est assigné. Nous laissons la valeur par défaut.
- Advertising Frequency : la valeur du champ "Skew" à 0 désigne le master (pfSense primaire). Une valeur plus élevée désignera l'esclave (pfSense de secours). La valeur de "Base" correspond au timeout en seconde au bout duquel l'hôte sera considéré comme inaccessible. Nous recommandons de laisser la valeur par défaut : 1.
Exemple de résultat obtenu :

Nous procédons à la même configuration sur l'interface LAN.
Enfin, nous réalisons les mêmes configurations sur les interfaces WAN et LAN du serveur de secours (pfSenseB), en pensant bien à passer la valeur du champ "Skew" à 1.
Nous pouvons vérifier l'état de nos adresses IP virtuelles depuis le menu "Status"> "CARP (failover)" :

Dans le cas présent, les deux adresses VIP créées ont bien le statut "master" sur le pfSenseA :

2. Forcer l'utilisation des adresses IP virtuelles
Les adresses VIP sont déclarées, mais non-utilisées. Il reste à configurer pfSense pour qu'il utilise les adresses VIP plutôt que les adresses IP attribuées à ses interfaces logiques.
Pour cela, nous devons configurer pfSense pour qu'il utilise l'adresse VIP WAN sur le trafic sortant, l'adresse VIP LAN pour le trafic entrant et configurer les différents services pour qu'ils travaillent avec l'adresse VIP LAN comme adresse par défaut (pour les configuration OpenVPN ou DHCP, par exemple).
Configuration du NAT
Nous allons dans le menu Firewall > NAT. Dans l'onglet Outbound, nous cochons la case "Hybrid Outbound NAT rule generation. (Automatic Outbound NAT + rules below)".
Nous modifions les règles ou en ajoutons une afin que le trafic sortant utilise l'adresse VIP. Les champs à configurer sont les suivants :
- Disabled : cocher cette case pour désactiver la règle sans devoir la supprimer.
- Do not NAT : cocher cette case permet de désactiver le NAT pour le trafic correspondant à cette règle. Il est très rare de devoir cocher cette case.
- Interface : l'interface logique sur laquelle nous souhaitons définir notre règle de NAT. Dans notre cas, nous choisissons "WAN".
- Protocol : les protocoles concernés par cette règle de NAT. Nous choisissons "any"
- Source : le réseau source. Dans notre cas, il s'agit du réseau local, nous saisissons donc "192.168.0.0" et "/24" pour le masque.
- Destination : le réseau de destination. Dans notre cas, nous choisissons "any".
- Address : l'adresse à utiliser lors du NAT. Nous choisissons l'adresse VIP créée précédemment, soit "172.25.46.100 (VIP WAN)".
- Port : nous laissons ce champ vide.
- No XMLRPC Sync : cocher cette case pour ne pas copier la règle sur le pfSense secondaire. Nous laissons cette case non-cochée.
- Description : un champ informatif
Exemple de résultat obtenu :

Cette configuration n'est à faire que sur le pfSense primaire. La configuration sera dupliquée automatiquement sur le pfSense secondaire.
Configuration du service DHCP
Si pfSense fait office de serveur DHCP, nous allons dans le menu "Services" > "DHCP Server". Nous modifions le champ "Gateway" pour y préciser l'adresse VIP (192.168.0.10). Autrement, le serveur DHCP de pfSense va continuer à indiquer aux clients du service DHCP l'adresse IP de l'interface LAN du pfSense.
Nous pouvons également compléter le champ "Failover peer IP" en renseignant l'adresse IP de l'interface LAN du pfSense secondaire (192.168.0.12). Cette configuration optionnelle permet de partager les leases DHCP entre le pfSense primaire et le pfSense secondaire.
Attention, si ce champ est renseigner, il est nécessaire de modifier la valeur du "skew" du pfSense secondaire pour le passer à un nombre supérieur à 20.
Davantage d'informations sur la configuration du service DHCP : [pfSense] Configurer son serveur DHCP.
Configuration du service OpenVPN server
Si un serveur OpenVPN est configuré sur le pfSense, il est nécessaire de modifier l'interface d'écoute du service (normalement "WAN") pour la remplacer par l'adresse VIP (172.25.46.100).
Cette modification s'opère dans "VPN" > "Servers".
Davantage d'informations sur la configuration du service OpenVPN : [pfSense] Monter un accès OpenVPN site-à-site.
Configuration du service VPN IPsec
Si un tunnel IPsec est configuré sur le pfSense, il est nécessaire de modifier l'interface d'écoute du VPN IPsec (normalement "WAN") pour la remplacer par l'adresse VIP (172.25.46.100).
Cette modification s'opère dans "VPN" > "IPsec". La modification s'effectue sur la phase 1.
Davantage d'informations sur la configuration du service VPN IPsec : [pfSense] Configurer un VPN IPsec site à site.
3. Configurer la haute-disponibilité
Il nous reste à configurer la haute-disponibilité. Pour cela, se rendre dans "System" > "High Avail. Sync" :
Depuis cette page, il y a 2 éléments à configurer : la partie pfsync (pour la synchronisation d'état) et XMLRPC Sync (pour la synchronisation de la configuration).
State Synchronization Settings (pfsync)
Les éléments à configurer sont les suivants :
- Synchronize States : cocher cette case pour activer pfsync
- Synchronize Interface : l'interface de synchronisation. Si nous disposons d'une interface dédiée à la synchronisation, nous la choisissons ; autrement, nous choisissons "LAN".
- pfsync Synchronize Peer IP : saisir l'adresse IP du serveur pfSense de secours. Si pour le choix de l'interface (ci-dessus) nous avons choisi "LAN", nous indiquons l'adresse IP de l'interface LAN du pfSense secondaire ; si nous avons choisi une interface dédiée alors nous indiquons l'adresse IP de l'interface dédiée du pfSense secondaire. Par défaut, si aucune adresse IP n'est saisie, pfSense diffusera en multicast sur l'interface choisie préalablement.
Configuration Synchronization Settings (XMLRPC Sync)
- Synchronize Config to IP : sur le serveur pfSense primaire, saisir l'adresse IP du serveur pfSense secondaire (comme précédemment, il faut saisir l'adresse IP de l'interface choisie). Ce doit être la même adresse IP que celle renseignée dans le champ "pfsync Synchronize Peer IP". Ce champ doit être laissé vide sur le serveur pfSense secondaire.
- Remote System Username : sur le serveur pfSense primaire, saisir le nom d'utilisateur utilisé pour se connecter sur le WebGUI du pfSense de secours ("admin" par défaut). Ce champ doit être laissé vide sur le serveur pfSense de secours.
- Remote System Password : sur le serveur pfSense primaire, saisir le mot de passe du compte utilisateur saisi ci-dessus. Ce champ doit être laissé vide sur le serveur pfSense de secours.
Puis, nous choisissons les services que nous souhaitons synchroniser en cochant les cases appropriées. Par défaut, nous recommandons de tout cocher (Toggle All).
Exemple de résultat obtenu :
Autoriser les flux de réplication au niveau des règles du firewall
Il nous reste à autoriser les flux de réplications sur les firewall. La configuration se passe dans "Firewall" > "Rules".
Si la réplication se fait via l'interface LAN, les règles de firewall sont à appliquer sur cette interface ; si nous utilisons une interface dédiée, les règles seront à appliquer sur celle-ci.
Il y a deux flux réseau à autoriser :
- le flux pour la synchronisation XML-RPC qui s'effectue via le port 443
- le flux pour la synchronisation du protocole pfsync
Sur le firewall primaire, nous créons donc une première règle de firewall (en cliquant sur le bouton "Add") avec les paramètres suivants :
- Action : nous choisissons "Pass"
- Interface : nous choisissons l'interface dédiée à la réplication si le pfSense en possède une. Autrement, nous choisissons "LAN"
- Address Family : nous laissons "IPv4"
- Protocol : nous choisissons "TCP"
- Source : nous indiquons un alias qui contiendra les adresses IP des interfaces de synchronisation de chaque pfSense (dans notre cas, cet alias contiendra les adresses IP "192.168.0.11" et "192.168.0.12"). Si cette notion d'alias n'est pas claire pour vous, vous pouvez consulter notre article dédié [pfSense] Tout comprendre aux alias, ou vous pouvez choisir l'ensemble du réseau rattaché à l'interface de synchronisation (dans notre cas, ce serait "LAN net")
- Destination : nous choisissons "This firewall (self)"
- Destination port range : choisir "HTTPS (443)"
Exemple de résultat obtenu :

Sur le firewall primaire toujours, nous créons une seconde règle de firewall avec les paramètres suivants :
- Action : nous choisissons "Pass"
- Interface : nous choisissons l'interface dédiée à la réplication si le pfSense en possède une. Autrement, nous choisissons "LAN"
- Address Family : nous laissons "IPv4"
- Protocol : nous choisissons "PFSYNC"
- Source : nous indiquons un alias qui contiendra les adresses IP des interfaces de synchronisation de chaque pfSense (dans notre cas, cet alias contiendra les adresses IP "192.168.0.11" et "192.168.0.12"). Si cette notion d'alias n'est pas claire pour vous, vous pouvez choisir l'ensemble du réseau rattaché à l'interface de synchronisation (dans notre cas, ce serait "LAN net")
- Destination : nous choisissons "This firewall (self)"
Exemple de résultat obtenu :
Ces deux règles de firewall ont été répliquées automatiquement sur le pfSense secondaire.
4. Vérifier le bon fonctionnement de la haute-disponibilité
L'ensemble doit, à ce stade, être opérationnel. Vérifions !
Vérifier le statut du CARP (adresse VIP)
Nous pouvons vérifier l'état de nos adresses IP virtuelles depuis le menu "Status"> "CARP (failover)" :
Les adresses VIP doivent avoir le statut "MASTER" sur le pfSense primaire et "BACKUP" sur le pfSense secondaire.
Vérifier la réplication
Nous pouvons naviguer dans le menu "Firewall" > "Rules" et "Firewall" > "NAT" et vérifier que les règles créées sur le pfSense primaire sont bien présentes également sur le pfSense secondaire.
Faire des tests !
Avant toute chose, à ce stade, il est important de faire une sauvegarde de vos serveurs pfSense ("Diagnostics" > "Backup & Restore").
Ensuite, pour tester le bon fonctionnement de la haute-disponibilité, plusieurs tests peuvent être réalisés. En voici quelques exemples :
- arrêter le pfSense primaire
- débrancher le câble réseau de l'interface LAN ou WAN du pfSense primaire
- désactiver le service CARP sur le pfSense primaire ("Status" > "CARP (failover)")
- télécharger un fichier ou lancer des requêtes ping lors de la bascule du primaire vers le secondaire
Pour aller plus loin
[pfSense] Comprendre la gestion des interfaces réseaux
[pfSense] Configurer son serveur DHCP
[pfSense] Tout comprendre aux alias
[pfSense] Mettre à jour son serveur pfSense
[pfSense] Monter un accès OpenVPN site-à-site
[pfSense] Configurer un dual-WAN (plusieurs connexions Internet)
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : failoverpfSense
Il arrive parfois que l'on se connecte à Internet derrière une connexion non-sûre (wifi public), filtrant le contenu (proxy) ou très restrictive et n'autorisant guère plus que les ports 80 (http) et le 443 (https).
Dans ces cas-là, une solution s'impose pour pouvoir surfer en toute liberté : le tunnel SSH !
Nous allons voir comment monter un tunnel SSH vers un serveur accessible par Internet. Ce serveur nous servira de porte de sortie vers un Internet non-bridé.
Principe de fonctionnement
Le principe de fonctionnement est le suivant :
Nous ouvrons depuis notre ordinateur un tunnel SSH vers un serveur de confiance. Puis, nous redirigeons nos flux réseau vers ce tunnel SSH qui nous servira de passerelle de sortie.
Afin d'être le plus efficace possible, nous utiliserons un serveur disposant d'un port SSH en écoute sur le port 443.
Mettre en écoute son serveur SSH sur le port 443
Par défaut, un serveur SSH écoute sur le port TCP 22. Ce qui peut poser problème si l'on se trouve derrière une connexion Internet n'autorisant pas le trafic sur ce port.
Le port TCP 443 (HTTPS) étant très rarement filtré, nous allons faire écouter notre serveur SSH sur ce port.
Pour cela, nous modifions le fichier de configuration de notre serveur OpenSSH (pour Debian/Ubuntu) :
myserver# vim /etc/ssh/sshd_config
Nous recherchons les lignes suivantes :
# What ports, IPs and protocols we listen for
Port 22
Et nous y ajoutons la ligne indiquant à OpenSSH d'être en écoute sur le port 443 :
Port 443
Ce qui nous donne, une fois la modification saisie, les trois lignes suivantes :
# What ports, IPs and protocols we listen for
Port 22
Port 443
Enfin, nous effectuons un rechargement de la configuration du serveur SSH :
myserver# /etc/init.d/ssh reload
/!\ Attention /!\ : si nous avons également un serveur Apache qui tourne sur le même serveur, nous devons d'abord nous assurer qu'il n'est pas déjà en écoute sur le port 443.
D'une façon générale, pour vérifier simplement si un port TCP est en écoute sur un serveur, un petit coup de telnet suffit :
telnet mon-serveur-cible mon-port-cible
Ce qui, dans notre cas, donne :
telnet myserver.mydomain.tld 443
Si notre serveur est en écoute, nous obtiendrons un message du type :
Trying myserver.mydomain.tld...
Connected to myserver.mydomain.tld.
Escape character is '^]'.
Si notre serveur n'est pas en écoute, nous obtiendrons alors un message du type :
Trying myserver.mydomain.tld...
telnet: Unable to connect to remote host: Connection refused
À ce stade, nous disposons d'un serveur SSH en écoute sur le port TCP 443. Il ne nous reste plus qu'à monter notre tunnel !
Monter le tunnel SSH - Solution Windows
Nous commençons par télécharger Putty.
Nous lançons le logiciel, puis, dans l'onglet session, nous renseignons les champs "Host name" et "Port" correspondant à notre serveur SSH :
Ensuite, nous nous rendons dans l'onglet SSH > Connection > Tunnels.
Dans le champ "Source port", nous saisissons 1234, et nous choisissons les options "Dynamic" et "Auto", puis nous cliquons sur le bouton "Add" :
Il nous reste à cliquer sur "Open", ce qui lance une connexion classique sur notre serveur distant.
Si vous êtes derrière un proxy
Si nous nous trouvons derrière un proxy (en entreprise, par exemple), il nous faut renseigner les informations du proxy au niveau des paramètres de Putty. Ça se passe dans Connection > Proxy.
Il reste à choisir le type de proxy (généralement HTTP), renseigner l'URL du proxy et le port d'écoute (souvent le 8080).
Si un username & password sont nécessaires pour l'accès au proxy, nous renseignons ces éléments sur cette même page :
Notre tunnel SSH est prêt. Il nous reste à rediriger nos flux vers ce tunnel.
Monter le tunnel SSH - Solution Linux
Sous GNU/Linux, la mise en place du tunnel se résume en une seule ligne de commande :
ssh -D port-local nomutilisateur@nomhôte -p port-distant
Soit, par exemple :
ssh -D 1234 root@myserver.mydomain.tld -p 443
Notre tunnel SSH est prêt.
Et pour éviter les timeout, nous pouvons ajouter une option de keep alive (option "ServerAliveInterval" avec sa valeur à préciser en seconde) :
ssh -o ServerAliveInterval=2 -D 1234 root@myserver.mydomain.tld -p 443
Il nous reste à rediriger nos flux vers ce tunnel.
Rediriger ses flux réseaux à travers le tunnel VPN
Notre tunnel SSH est monté. Nous souhaitons dorénavant l'utiliser pour rediriger nos flux à travers ce tunnel.
Pour cela, nous utiliserons ce tunnel SSH comme un proxy. C'est d'ailleurs la raison pour laquelle nous avons configuré un port d'écoute local (le port 1234).
Ainsi, pour utiliser ce proxy, nous devons configurer nos logiciels avec les informations suivantes :
- adresse du serveur proxy : localhost (ou 127.0.0.1)
- port du serveur proxy : 1234
Exemple pour Firefox :
Se rendre dans Édition > Préférences > Avancé > Réseau (ou Outils > Options > Avancé > Réseau)
Cliquer sur le bouton "Paramètres...", puis choisir "Configuration manuelle du proxy" et renseigner les paramètres comme suit :
Type : SOCKS5
URL : 127.0.0.1
Port : 1234
Voilà !
Pour aller plus loin
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : SSHtunnel SSHVPN
Nous décrivons succinctement dans cet article l'installation et la configuration du service postifx.
Le but de cet article n'est pas de rentrer dans le détail, mais de servir de pense-bête.
Dans notre cas, nous travaillons sur un serveur Ubuntu ou Debian hébergé chez OVH.
Les étapes pour l'installation et la configuration d'un serveur postfix sont les suivantes :
Étape 1 - Installation de postfix
On installe le service postfix :
myserver# apt-get install postfix
Par simplicité et habitude, pour le choix de la configuration nous sélectionnons "Site Internet" :
Dans le champ "Nom du courrier", nous laissons l'hostname de la machine (proposé par défaut).
Étape 2 - Modification du fichier main.cf
On édite le fichier de configuration principal (/etc/postfix/main.cf) pour y modifier ou ajouter les lignes suivantes :
relayhost = ns0.ovh.net:587 # on précise le serveur relay ainsi que le port d'écoute
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_generic_maps = hash:/etc/postfix/generic
Forcer l'utilisation d'IPv4 (le cas échéant) :
inet_protocols = ipv4
La valeur de relayhost est évidemment à adapter à la configuration de chacun.
Étape 3 - Création du fichier generic
Pour la translation du courriel, on crée le fichier /etc/postfix/generic et on y place :
utilisateur adresse@email.fr
On crée le hash :
myserver# postmap hash:/etc/postfix/generic
Cette commande crée le fichier generic.db
Étape 4 - Création du fichier sasl_passwd
On crée le fichier /etc/postfix/sasl/sasl_passwd dans lequel nous y stockons les informations de connexion au relai SMTP :
ns0.ovh.net adresse@email.fr:mot_de_passe
Évidemment, le nom de l'hôte est à adapter à la configuration de chacun.
On crée le hash :
myserver# postmap hash:/etc/postfix/sasl/sasl_passwd
Cette commande crée le fichier sasl_passwd.db
Le fichier sasl_passwd contenant les informations de connexion en clair peut être supprimé.
Étape 5 - Reload + test
On recharge la configuration de postfix :
myserver# /etc/init.d/postfix restart
Il reste a essayer d'envoyer un e-mail en ligne de commande (méthode de votre choix).
Pour voir l'état de la file d'attente :
mailq
Elle devrait être vide si l'envoi s'est bien passé.
Pour vider la file d'attente des e-mails :
myserver# /etc/init.d/postfix stop
myserver# postsuper -d ALL
myserver# /etc/init.d/postfix start
That's all folks! :-)
Pour aller plus loin
fail2ban est-ce vraiment utile ? Partage d'expérience
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : emaillinuxpostfix
En cas de problème sur Asterisk, il est pratique de connaître les commandes de base à utiliser pour établir un premier diagnostique.
Nous présentons ici les principales commandes utiles et les explications pour bien les comprendre.
Connexion à la console Asterisk
Nous partons du principe que le service Asterisk tourne en tâche de fond sur nos serveurs.
Pour se connecter à la console Asterisk, la commande est la suivante :
root@asterisk1:~# asterisk -rvvv
Une fois connecté à la console, pour connaître la liste des commandes disponibles il suffit de saisir « ? ».
Lister tous les comptes SIP
Pour lister toutes les entités SIP, c'est-à-dire tous les téléphones et les trunks SIP, la commande est la suivante :
asterisk*CLI> sip show peers
Cette commande précise notamment le username SIP, l'adresse IP associée, l'état de l'entité et le ping SIP.
Le résultat de la commande ressemble à ceci :
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
1001/s Unspecified D Yes Yes 11475 UNKNOW
1002/s 192.168.11.1 D Yes No A 1024 OK (29 ms)
1003/s 192.168.11.2 D Yes No 5060 OK (14 ms)
3 sip peers [Monitored: 2 online, 1 offline Unmonitored: 0 online, 0 offline]
La lecture du résultat de la commande est la suivante :
- Le poste « 1001 » n'est pas enregistré sur le serveur Asterisk :
- Son adresse IP n'est pas connue : elle vaut « Unspecified »
- Son état est à « UNKNOW »
- Le poste « 1002 » est bien enregistré sur le serveur Asterisk :
- Son état est à « OK »
- Son adresse IP est 192.168.11.1
- Sa latence SIP est de « 29ms »
- Le poste « 1003 » est bien enregistré sur le serveur Asterisk :
- Son état est à « OK »
- Son adresse IP est 192.168.11.2
- Sa latence SIP est de « 14ms »
La commande nous renseigne aussi sur le fait qu'il y a 3 comptes SIP de créés sur le serveur Asterisk, dont 2 qui sont connectés et 1 qui ne l'est pas.
Détailler les paramètres d'un compte SIP
La commande suivante permet de lister les paramètres détaillés d'un compte SIP :
asterisk*CLI> sip show peer 1001
Voir les communications en cours
Pour visualiser les communications en cours :
asterisk*CLI> core show channels
Le résultat de la commande ressemble à ceci :
Channel Location State Application(Data)
SIP/1001-00009867 s@user:36 Up Dial(SIP/1002,15,hHtT)
SIP/1002-00009876 (None) Up AppDial((Outgoing Line))
2 active channels
1 active call
4012 calls processed
La lecture du résultat est la suivante :
- Les postes « 1001 » et « 1002 » sont en communication (l'un avec l'autre)
- C'est le poste « 1001 » qui appelle l'autre poste (la dernière application lancée étant « Dial(SIP/1002,15,hHtT) » qui se traduit par « appeler le poste SIP 1002, laisser sonner 15 secondes avant de passer à l'étape suivante du dialplan s'il ne décroche pas »).
- On observe qu'il y a 1 appel en cours (1001 vers 1002) et qu'il y a eu 4012 appels passés depuis que le service Asterisk est démarré.
Connaître le détail d'une communication en cours
Pour connaître le détail d'une communication en cours, la commande est la suivante :
asterisk*CLI> core show channel SIP/1001-00009867
Le résultat de cette commande est très verbeux. Plusieurs parties peuvent nous intéresser.
Les lignes suivantes nous renseigne sur le codec utilisé :
NativeFormats: (alaw)
WriteFormat: alaw
ReadFormat: alaw
Les variables CDR nous renseigne notamment sur la durée de l'appel (peut être très utile pour détecter les appels fantômes, c'est-à-dire mal raccrochés) :
level 1: start=2015-06-09 15:44:26
level 1: answer=2015-06-09 15:44:47
level 1: duration=774
level 1: billsec=753
Observer la perte de paquets sur une communication
La commande suivante est utile pour s'assurer qu'il n'y a pas de pertes de paquets RTP (c'est-à-dire de paquets audios) lors d'une communication :
asterisk*CLI> sip show channelstats
Le résultat est de la forme suivante :
Peer Call ID Duration Recv: Pack Lost ( %) Jitter Send: Pack Lost ( %) Jitter
192.168.11.1 4d67bf4946f 0000002619 0000000000 ( 0.00%) 0.0000 0000002626 0000000000 ( 0.00%) 0.0001
192.168.11.2 3560b15a896 00:02:22 0000007095 0000000000 ( 0.00%) 0.0000 0000007096 0000000000 ( 0.00%) 0.0001
192.168.10.1 2f10b98f723 00:43:18 0000000129K 0000000001 ( 0.00%) 0.0000 0000000129K 0000000003 ( 0.00%) 0.0000
3 active SIP channels
La lecture du résultat est la suivante :
- Il n'y a pas de perte de paquets sur ces appels concernant les peer SIP 1001 et 1002 (que ce soit pour les paquets reçus (Recv Pack Lost) comme pour les paquets émis (Send Pack Lost))
- Le peer 1003 rencontre très peu de perte de paquets (quantité totalement négligeable)
- La variation de la latence (Jitter) est faible : cela signifie que la qualité du lien réseau est stable.
Saisir les commandes Asterisk directement depuis le SHELL Linux
Il est à noter que l'ensemble des commandes présentées peuvent être saisies directement depuis un shell Linux de la manière suivante :
root@asterisk1:~# asterisk -rx 'ma commande Asterisk'
Cette possibilité s'avère particulièrement utile pour combiner le résultat d'une commande Asterisk avec d'autres commandes SHELL.
Par exemple, pour lister tous les postes SIP connectés depuis un site dont le sous-réseau est 192.168.11.x :
root@asterisk1:~# asterisk -rx 'sip show peers' | grep 192.168.11.
Exemple de résultat :
1002/s 192.168.11.1 D Yes No A 1024 OK (29 ms)
1003/s 192.168.11.2 D Yes No 5060 OK (14 ms)
Seuls les postes 1002 et 1003 ressortent.
Dans un prochain article, nous aborderons les clés de lecture nécessaires à l'analyse des fichiers de log Asterisk.
Pour aller plus loin
[Asterisk] Connaître son nombre d'appels simultanés
[Asterisk] Mettre à jour son serveur Asterisk
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : asterisk
Il est utile de connaître le nombre d'appels simultanés transitant sur sa plateforme Asterisk.
Nous présentons dans cet article comment connaître son nombre d'appels simultanés en temps réel, ainsi que le nombre exact d'appels simultanés qu'il y a eu sur une plage de temps donnée.
Nombre d'appels simultanés en temps réel
Connaître son nombre d'appels simultanés en temps réel est très simple : Asterisk fournit directement une commande pour ça :
asterisk*CLI> core show channels
Le résultat de la commande ressemble à ceci :
Channel Location State Application(Data)
SIP/1001-00009867 s@user:36 Up Dial(SIP/1002,15,hHtT)
SIP/1002-00009876 (None) Up AppDial((Outgoing Line))
2 active channels
1 active calls
4012 calls processed
Cette commande permet de lister les appels en cours. Elle précise également le nombre d'appels passés depuis le démarrage du service Asterisk. Dans notre exemple, on y apprend qu'il y a un appel en cours (1 active calls).
Dans notre cas, l'information que nous cherchons à récupérer est simplement la valeur de la ligne "active calls". Pour cela, nous proposons de passer par un script SHELL :
root@asterisk1:~# asterisk -rx 'core show channels' | grep 'active calls' | cut -f 1 -d ' '
Dans le code ci-dessus, si l'on détaille chaque étape (séparée par un pipe), nous avons :
asterisk -rx 'core show channels'
Exécute la commande "core show channels" et retourne le résultat dans le SHELL
grep 'active calls'
Ne récupère que la ligne comportant la mention "active calls" (c'est uniquement elle qui nous intéresse).
cut -f 1 -d ' '
Permet de découper l'affichage en prenant les espaces comme marque de délimitation (option -d ' ') et de n'afficher que le premier segment (option -f 1).
Pour reprendre notre exemple, le résultat de la commande sera alors :
root@asterisk1:~# asterisk -rx 'core show channels' | grep 'active calls' | cut -f 1 -d ' '
1
Nombre d'appels simultanés sur une période donnée
Pour obtenir le nombre d'appels simultanés sur une période de temps donnée, nous proposons d'utiliser la ligne de commande fournie par Jean du forum asterifk-france.org.
La commande est la suivante :
awk 'BEGIN{FS=",\""} /ANSWERED/{split($11, a, "\""); split($12, b, "\"");printf ("%s,1\n%s,-1\n", a[1],b[1]); }' /var/log/asterisk/cdr-csv/Master.csv | sort | awk -F , '{cpt=cpt+$2; printf ("%s %03d\n", $1, cpt);}'
Cette commande filtre le contenu du fichier Master.csv sur chaque changement du nombre d'appels simultanés. Le résultat est affiché dans la console. Il est de la forme suivante :
2015-06-11 08:38:19 004
2015-06-11 08:38:30 005
2015-06-11 08:38:55 004
2015-06-11 08:39:10 003
2015-06-11 08:39:13 004
2015-06-11 08:39:42 003
2015-06-11 08:41:42 002
2015-06-11 08:42:35 001
2015-06-11 08:42:46 002
2015-06-11 08:43:50 001
Le premier champ indique la date, le second l'horaire auquel le changement du nombre d'appels simultanés a eu lieu et le troisième le nombre d'appels simultanés.
Limiter le résultat à un contexte
Si l'on souhaite, nous pouvons également limiter le résultat à un contexte en particulier. Exemple :
awk 'BEGIN{FS=",\""} /monContexte/*/ANSWERED/{split($11, a, "\""); split($12, b, "\"");printf ("%s,1\n%s,-1\n", a[1],b[1]); }' /var/log/asterisk/cdr-csv/Master.csv | sort | awk -F , '{cpt=cpt+$2; printf ("%s;%03d\n", $1, cpt);}'
Le décompte ne se fera alors que sur le nombre d'appels simultanés du contexte "monContexte".
Écrire le résultat dans un fichier pour l'exploiter
Plutôt que d'afficher les résultats à l'écran, nous les écrivons dans un fichier texte :
awk 'BEGIN{FS=",\""} /ANSWERED/{split($11, a, "\""); split($12, b, "\"");printf ("%s,1\n%s,-1\n", a[1],b[1]); }' /var/log/asterisk/cdr-csv/Master.csv | sort | awk -F , '{cpt=cpt+$2; printf ("%s %03d\n", $1, cpt);}' > monFichier.csv
Ce fichier peut ensuite être importé dans un tableur type LibreOffice ou Excel, en précisant que la séparation des champs se fait sur les espaces :
Dans LibreOffice :
Dans Excel :
On peut ensuite faire des tris ou appliquer des filtres sur ces données !
Pour aller plus loin
[Asterisk] Les commandes utiles pour Asterisk
[Asterisk] Mettre à jour son serveur Asterisk
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un support professionnel ? Alors contactez-nous.
Découvrez nos firewall SSD pour pfSense, assemblés en France, garantis 3 ans
store.provya.fr
Tags de l'article : asterisknombre d'appels simultanés