Interconnexion de serveurs Asterisk avec IAX



Documents pareils
Cahier de TP Asterisk Module 2

TP Voix sur IP SIP et Asterisk

SSH, le shell sécurisé

TP N 1 : Installer un serveur trixbox.

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Configuration d'un Réseau Privé Virtuel (RPV ) communément appelé VPN

Les protocoles de VoIP tels H323 ou SIP encouragent l'emploi de noms d'extensions alphanumériques ou adresses de messagerie.

EGGACOM. Manuel d'utilisation (version beta) Nano et Master VoIP 1.0

Documentation support technique

1 INTRODUCTION 2 2 PRE-REQUIS Export du certificat du serveur Date et heure du système Téléchargement du logiciel du terminal 2

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

TP Sur SSH. I. Introduction à SSH. I.1. Putty

Les différentes méthodes pour se connecter

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Administration Switch (HP et autres)

Les clés d un réseau privé virtuel (VPN) fonctionnel

Expérience pilote de ToIP sur RAP

par Tarik Fdil

Trixbox: Asterisk packagé. Unité Réseaux du CNRS

Les commandes relatives aux réseaux

Voix sur IP. Sébastien BAUDRAND Laurent LEGAZ Mathieu LOSLIER ESIPE-MLV 18/10/2013

Table des matières Hakim Benameurlaine 1

Procédure d installation Trixbox - A2Billing

Mise en place d un système de Téléphonie sur IP basé sur le logiciel Asterisk

Asterisk QuickRecord. ANTOINE MANSUY IUT DE COLMAR

Configuration du driver SIP dans ALERT. V2

La sécurité avec SSH. Atelier cctld Dakar, Sénégal. Hervey Allen

Installation et mise en œuvre de OpenSSH sous AIX 5L

Manuel de l utilisateur. Soft-phone - Client VoIP 3CX Version 6.0

Installation d'un serveur RADIUS

Configurer la supervision pour une base MS SQL Server Viadéis Services

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

TAGREROUT Seyf Allah TMRIM

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

MS 2615 Implémentation et support Microsoft Windows XP Professionnel

Manuel des logiciels de transferts de fichiers File Delivery Services

2X ThinClientServer Guide d utilisation

II- Préparation du serveur et installation d OpenVpn :

Installation d'un serveur sftp avec connexion par login et clé rsa.

SEN-TR Asterisk - page 1 /18

Devoir Surveillé de Sécurité des Réseaux

Téléphonie Cisco. - CME Manager Express = Logiciel dans un routeur, version simplifiée du call manager.

Restriction sur matériels d impression

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Accès aux ressources informatiques de l ENSEEIHT à distance

Sauvegardes par Internet avec Rsync

Microsoft Windows NT Server

Les messages d erreur d'applidis Client

Couche application. La couche application est la plus élevée du modèle de référence.

JESSY ZANGANI Stage Mairie De La Seyne Jessyzangani.wordpress.com

CONVERTISSEUR RS 232/485 NOTICE

Administration du WG302 en SSH par Magicsam

ftp & sftp : transférer des fichiers

LINUX REMPLAÇANT WINDOWS NT

VoIP et "NAT" VoIP et "NAT" 1/ La Traduction d'adresse réseau. 1/ La traduction d'adresse réseau. 1/ La traduction d'adresse réseau

Configuration d un firewall pour sécuriser un serveur WEB

Table des matières Nouveau Plan d adressage... 3

Chapitre 3 Configuration et maintenance

NTP (Network Time Protocol)

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H.

VoIP - TPs Etude et implémentation

Asterisk Use cases. Interconnexion avec un central propriétaire Multi-site. Linuxdays Genève, 24 mars

Installation et configuration de Vulture Lundi 2 février 2009

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Configuration de routeur D-Link Par G225

Installation de serveurs DNS, WINS et DHCP sous Windows Server 2003

M2-RADIS Rezo TP13 : VPN

Installer un domaine DNS

Architecture de la plateforme SBC

Direction des Systèmes d'information

Tous les logiciels cités dans ce document sont des marques déposées de leurs propriétaires respectifs

Installation de Vmware serveur Windows

TP 1 : LES COMMANDES RESEAUX Matière: RESEAUX LOCAUX

WGW PBX. Guide de démarrage rapide


(1) Network Camera

Prérequis. Résolution des problèmes WMI. Date 03/30/2010 Version 1.0 Référence 001 Auteur Antoine CRUE

Guide de démarrage du système modulaire Sun Blade 6000

Transmission de données

VoIP Sniffing IHSEN BEN SALAH (GL 3) MAHMOUD MAHDI (GL 3) MARIEM JBELI (RT 2) SAFA GALLAH (RT 3) SALAH KHEMIRI (RT 3) YOUSSEF BEN DHIAF (GL 3)

Gestion des certificats en Internet Explorer

Mise en place d un service de voix sur IP

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

Mise en oeuvre d un Serveur de CD AXIS StorPoint

Anas Abou El Kalam Sécurité SSH SSH

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Configuration de l'accès distant

Travaux pratiques : dépannage de la configuration et du placement des listes de contrôle d'accès Topologie

Procédure d installation de la Sauvegarde de Windows Server

Les techniques de la télémaintenance

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

TP Linux : Firewall. Conditions de réalisation : travail en binôme. Fonctionnement du parefeu Netfilter. I Qu est ce qu'un firewall?

Transcription:

Interconnexion de serveurs Asterisk avec IAX Page 1 sur 18

1.0. Table des matières 1.0. Table des matières...2 2.0. Préface...3 3.0. Prés-requis...3 4.0. Sécurité de l'authentification...4 5.0. Création d'un mot de passe crypté en md5...5 6.0. Génération de clés RSA...6 7.0. Configuration des paramètres IAX sur chaque serveur...9 7.1. Configuration du fichier iax.conf pour le serveur voip1.domaine.com... 12 7.2. Configuration du fichier iax.conf pour le serveur voip2.domaine.com... 12 8.0. Configuration du "dialplan" dans le fichier extensions.conf... 13 8.1. Définition du "diaplan" pour les appels entrants.... 13 8.2. Définition du "diaplan" pour les appels sortants.... 14 9.0. Vérification des liens IAX avec la console d'asterisk... 15 9.1. Connexion à la console d'asterisk... 15 9.2. Vérification de l'état des liens IAX... 15 9.3. Affichage des informations d'un lien IAX en cours d'utilisation... 16 9.4. Affichage des statistiques d'un lien IAX en cours d'utilisation... 16 10.0. Remerciements... 17 11.0. Annexes... 17 11.1. Bibliographie... 17 11.1.1. Sites Internet... 17 11.1.2. Livres... 17 11.2. Listes des commandes IAX de la console d'asterisk (en anglais)... 18 Page 2 sur 18

2.0. Préface Cette procédure vous permettra de connecté les "dialplan" de plusieurs serveurs Asterisk Dès qu'un utilisateur du serveur voip1 composera un numéro entre 200 et 299 Il sera directement redirigé vers le serveur voip2 via le protocole IAX Dès qu'un utilisateur du serveur voip2 composera un numéro entre 100 et 199 Il sera directement redirigé vers le serveur voip1 via le protocole IAX. Note: Je tiens à préciser que la version actuelle de IAX est la version 2 (IAX2). Par conséquent nous emploierons le terme IAX dans notre document. 3.0. Prés-requis - Minimum deux serveurs Asterisk déjà configuré - Le port TCP/IP 4569 doit être redirigé sur chacun des serveurs ASTERISK - Des connaissances sur l'édition des fichiers sous Linux - Un accès "root" sur les serveurs Asterisk - Openssl installé - Savoir configurer son "Dialplan" dans Asterisk Page 3 sur 18

4.0. Sécurité de l'authentification Le protocole IAX permet 3 types de mots de passe pour l'authentification des clients / serveurs Il n'est pas possible de crypter les données transmises via le protocole IAX, seul l'authentification permet plusieurs types de mots de passes plus ou moins sécurisés. - Plain text Cette méthode est déconseillée, car les mots de passe sont écrits en clair dans les fichiers de configuration. - MD5 Les mots de passe sont écrits cryptés à l'aide de la méthode MD5 dans les fichiers de configurations, donc difficilement décryptables (difficile mais pas impossible) - RSA L'authentification RSA utilise deux clés partagées, une clé publique ainsi qu'une clé privée Dans ce document nous n'utiliserons que l'authentification RSA Page 4 sur 18

5.0. Création d'un mot de passe crypté en md5 Il suffit d'utiliser les commandes "echo" et "md5sum" pour encrypter un mot de passe en md5. echo -n "<user>:<realm>:<secret>" md5sum <user> => le nom d'utilisateur <realm> => asterisk <secret> => le mots de passe en claire Exemple: echo -n "nom_utilisateur:asterisk:mots_de_passe" md5sum Cette commande retourne simplement le mot de passe crypter en md5 (ne pas récupérer le "-" à la fin ) Il suffira de la recopier dans le fichier "iax.conf" 1cd57e42c215f05e06c5b5b0ec683575 Page 5 sur 18

6.0. Génération de clés RSA Pour générer des clés de cryptage RSA, ASTERISK nous fourni un utilitaire: "astgenkey". Les clés RSA doivent se trouver dans le répertoire /var/lib/asterisk/keys. L'utilitaire "astgenkey" génère deux clés, une clé publique à mettre sur le(s) poste(s) client(s) et une clé privée à garder sur le serveur. Note: Il est important que la clé privée ne soit accessible que par Asterisk, car si quelqu'un arrive à prendre cette clé il pourra décrypter la clé plus facilement. Pour générer une clé il suffit de se déplacer dans le répertoire de stockage des clés d'asterisk et de lancer l'application "astgenkey" cd /var/lib/asterisk/keys Lorsque nous lançons astgenkey nous mettons le paramètres '-n' car par défaut "astgenkey" demande une "passphrase" à chaque démarrage d'asterisk. Avec le paramètres '-n' il enregistre la clé sans "passphrase" astgenkey -n Page 6 sur 18

This script generates an RSA private and public key pair in PEM format for use by Asterisk. You will be asked to enter a passcode for your key multiple times. Please enter the same code each time. The resulting files will need to be moved to /var/lib/asterisk/keys if you want to use them, and any private keys (.key files) will need to be initialized at runtime either by running Asterisk with the '-i' option, or with the 'init keys' command once Asterisk is running. Press ENTER to continue or ^C to cancel. Appuyez sur <ENTER> et tapez le nom de la clé que vous voulez créer (test_iax" dans notre exemple. Enter key name: test_iax Une fois les clés générées il affiche le résultat: Generating SSL key 'test_iax': Generating RSA private key, 1024 bit long modulus...++++++...++++++ e is 65537 (0x10001) writing RSA key Key creation successful. Public key: test_iax.pub Private key: test_iax.key La clé.pub est la clé publique et la clé.key et la clé privée. Pour transférer la clé publique sur notre serveur "client" il suffit juste de la copier dans le répertoire /var/lib/asterisk/keys Page 7 sur 18

Note: Etant donné que dans notre exemple nous allons créer une interconnexion bidirectionnelle, il faudra générer 2 paires de clés de nom différent sur les deux serveurs. Ensuite il faudra copier la clé publique de chaque machine sur le serveur opposé dans le répertoire /var/lib/asterisk/keys Page 8 sur 18

7.0. Configuration des paramètres IAX sur chaque serveur La configuration des paramètres IAX se fait dans le fichier iax.conf se trouvant dans le répertoire /etc/asterisk/ Sur chaque serveur nous allons configurer un utilisateur IAX qui servira à l'authentification avec le serveur opposé. Explication des paramètres utilisés pour configurer les utilisateurs IAX [VOIP1] et [VOIP2] Le nom d'utilisateur utilisé dans le fichier extensions.conf pour créer le "dialplan" est écris entre crochet "[ ]" type= Avec les comptes SIP ou IAX il existe trois sortes d'utilisateurs - peer Pour désigner un utilisateur qui pourra s'authentifier que vers un autre serveur - user Pour désigné un utilisateur qui pourra être authentifié que depuis un autre serveur ou téléphone compatible IAX - friend Un utilisateur qui pourra être authentifié vers ou depuis un autre serveur Dans notre cas nous allons créer un utilisateur de type "friend" se qui nous permettra de configurer qu'un seul utilisateur par serveur En général les comptes de type "user" ou "peer" ne sont utilisé que pour les liens mono directionnels Page 9 sur 18

host= Le paramètre host désigne l'adresse IP ou le nom de domaine de l'utilisateur distant, ce qui permet de s'authentifier vers le serveur opposé. Nous pouvons aussi mettre host=dynamic dans le cas ou on ne connais pas l'adresse du serveur distant, mais dans ce cas l'utilisateur distant devra s'authentifier vers notre serveur. En cas d'utilisation d'un nom de domaine mis a jour dynamiquement comme dyndns.org il faudra modifier le fichier dnsmgr.conf pour qu'asterisk vérifie les entrées DNS du serveur distant à intervalles réguliers. Définition du type d'authentification Voir chapitre 4.0. Lorsque nous utilisons une clé partagée de type RSA - auth=rsa - inkey=clés publiques distantes - outkey=clé privé locale Lorsque nous utilisons un mot de passe de type MD5 - username= nom d'utilisateur - md5secret= mot de passe crypter en MD5 Lorsque nous utilisons un mot de passe de type "plain text" - username= nom d'utilisateur - secret= mot de passe non crypté Page 10 sur 18

context= Défini le contexte dans lequel les appels distants arrivent trunk= Le paramètre trunk défini si nous voulons créer un "trunk" avec le serveur distant Un "trunk" est une façon de limiter la bande passante utilisée par le protocole IAX vers un serveur distant. Si vous avez 10 communications IAX simultanées vers le même serveur avec le protocole Ulaw, le total de bande passante ne sera pas 10 X 64Kb/s. En effet, le trunk va permettre de regrouper les paquets tcp pour consommer moins de bande passante qualify= Le paramètre qualify=yes ou qualify=<milisecondes> permet de savoir si le serveur distant est toujours joignable. Par défaut Asterisk envoie des requêtes ping toutes les 2000ms pour savoir si le serveur distant répond. Se paramètres permet aussi à certaines applications de gestion d'asterisk de savoir si le lien est connecté ou mort Page 11 sur 18

7.1. Configuration du fichier iax.conf pour le serveur voip1.domaine.com [VOIP2] type=friend host=voip2.domaine.com auth=rsa inkey=voip1 outkey=voip2 context=from_voip2 qualify=yes trunk=yes 7.2. Configuration du fichier iax.conf pour le serveur voip2.domaine.com [VOIP1] type=friend host=voip1.domaine.com auth=rsa inkey=voip2 outkey=voip1 context=from_voip1 qualify=yes trunk=yes Page 12 sur 18

8.0. Configuration du "dialplan" dans le fichier extensions.conf Nous allons configurer le dialplan de chaque serveur Asterisk pour que les appels passent d'un serveur à l'autre. 8.1. Définition du "diaplan" pour les appels entrants. Dans les fichiers de configuration iax.conf au chapitre 7 nous avons définit le context pour les appels entrants depuis l'autre serveur. Nous devons créer le même context dans le fichier extensions.conf Exemple pour le "dialplan" du serveur voip1.domaine.com: [FROM_VOIP2] include => VOIP1 [VOIP1] exten => 1XX,1,Dial(${EXTEN}) ; notre context local Exemple pour le "dialplan" du serveur voip2.domaine.com: [FROM_VOIP1] include => VOIP2 [VOIP2] exten => 2XX,1,Dial(${EXTEN}) ; notre context local Page 13 sur 18

8.2. Définition du "diaplan" pour les appels sortants. Pour configurer les appels sortants nous allons simplement créer une extension qui inclut toutes les extensions qui se trouve sur le serveur opposé. Nous allons passer le protocole IAX2 ainsi que l'utilisateur IAX à la commande Dial. Exemple pour le "dialplan" du serveur voip1.domaine.com: [FROM_VOIP2] include => VOIP1 [VOIP1] exten => 1XX,1,Dial(${EXTEN}) ; notre context local exten => 2XX,1,Dial(IAX2/VOIP2/${EXTEN}) Exemple pour le "dialplan" du serveur voip2.domaine.com: [FROM_VOIP1] include => VOIP2 [VOIP2] exten => 2XX,1,Dial(${EXTEN}) ; notre context local exten => 1XX,1,Dial(IAX2/VOIP1/${EXTEN}) Page 14 sur 18

9.0. Vérification des liens IAX avec la console d'asterisk 9.1. Connexion à la console d'asterisk [root@asterisk ~]# asterisk -r Asterisk SVN-trunk-r7230, Copyright (C) 1999-2005 Digium. Written by Mark Spencer markster@digium.com ================================================ Connected to Asterisk SVN-trunk-r7230 currently running on mercure (pid = 16791 Verbosity is at least 2147483647 -- Remote UNIX connection asterisk*cli> 9.2. Vérification de l'état des liens IAX asterisk*cli> iax2 show peers Name/Username Host Mask Port Status VOIP1 XXX.XXX.XX.XX (S) 255.255.255.255 4569 (T) OK (25 ms ) 1 iax2 peers [1 online, 0 offline, 0 unmonitored] Explication des colonnes: Name/Username: affiche le nom de la connexion Host: affiche l'adresse IP de l'utilisateur (S): affiche si l'adresse IP de l'utilisateur est statique (D): affiche si l'adresse IP de l'utilisateur est dynamique Mask: affiche le masque de sous réseau Port: affiche le port IAX utilisé (T): affiche si le lien est un "trunk" Status: affiche si le lien est OK avec les [ms] de lag affiche UNREACHABLE si le status du lien est mort affiche UNMONITORED si le status du lien n'est pas monitorer ou inconnu Page 15 sur 18

9.3. Affichage des informations d'un lien IAX en cours d'utilisation asterisk*cli> iax2 show channels Channel Peer UsernameID (Lo/Rem)Seq (Tx/Rx) Lag Jitter JitBuf Format IAX2/VOIP1-16385 XXX.XXX.XX.XX VOIP1 16385/16385 00007/00004 00000ms -0001ms 0000ms ulaw 1 active IAX channel Explications des colonnes: Channel: Peer: UsernameID: (Lo/Rem)Seq: (Tx/Rx): Lag: Jitter: JitBuf: Format: identification du channel adresse IP de l'utilisateur IAX nom d'utilisateur IAX nombres de paquets envoyés LAG du lien IAX codec utilisé 9.4. Affichage des statistiques d'un lien IAX en cours d'utilisation asterisk*cli> iax2 show netstats -------- LOCAL --------------------- -------- REMOTE -------------------- Channel RTT Jit Del Lost % Drop OOO Kpkts Jit Del Lost % Drop OOO Kpkts IAX2/VOIP1-16384 88-1 0-1 -1 0-1 0 0 40 0 0 0 0 0 1 active IAX channel Page 16 sur 18

10.0. Remerciements Je tiens à remercier les personnes suivantes: - Cyril Mandrilly - Vincent Renaville pour avoir testé ainsi que corrigé cette procédure. 11.0. Annexes 11.1. Bibliographie 11.1.1. Sites Internet http://www.voip-info.org/wiki/index.php?page=asterisk+iax+rsa+auth 11.1.2. Livres Titre: Asterisk, The Future of Telephony Editeur: Oreilly Langue: anglais ISBN: 0-596-00962-3 Titre: Bulding Telephony Systems with Asterisk Editeur: PACKT Publishing Langue: angais ISBN: 1-904811-15-9 Page 17 sur 18

11.2. Listes des commandes IAX de la console d'asterisk (en anglais) iax2 debug Enable IAX debugging iax2 jb debug Enable IAX jitterbuffer debugging iax2 no debug Disable IAX debugging iax2 no jb debug Disable IAX jitterbuffer debugging iax2 no trunk debug Disable IAX trunk debugging iax2 provision Provision an IAX device iax2 prune realtime Prune a cached realtime lookup iax2 reload Reload IAX configuration iax2 set jitter Sets IAX jitter buffer iax2 show cache Display IAX cached dialplan iax2 show channels Show active IAX channels iax2 show firmware Show available IAX firmwares iax2 show netstats Show active IAX channel netstats iax2 show peer Show details on specific IAX peer iax2 show peers Show defined IAX peers iax2 show provisioning Show iax provisioning iax2 show registry Show IAX registration status iax2 show stats Display IAX statistics iax2 show users Show defined IAX users iax2 test losspct Set IAX2 incoming frame loss percentage iax2 trunk debug Enable IAX trunk debugging Page 18 sur 18