Université de Poitiers Institut Universitaire de Technologie de Châtellerault Département Réseaux et Télécommunications Licence professionnelle Métiers des Réseaux Informatiques et Télécommunications Spécialité Administration des Réseaux Multimédia Présenté par : Baptiste MOINE Promotion 2016-2017 Apprenti au Centre Hospitalier Henri LABORIT Sujet du rapport : Projet Asterisk – Installation et configuration de l’IPBX Asterisk Sauf mention contraire, ce rapport est mis à disposition selon les termes de la licence https://creativecommons.org/licenses/by-nc-sa/4.0/ RAPPORT D’INSTALLATION
37
Embed
Université de Poitiers Institut Universitaire de ... · • Prise de main SSH depuis l’informatique OK (on passe par le SNS qui connaît la route). Serveur DHCP : tout est configuré
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Université de Poitiers
Institut Universitaire de Technologie de Châtellerault
Département Réseaux et Télécommunications
Licence professionnelle Métiers des Réseaux Informatiques et Télécommunications
Spécialité Administration des Réseaux Multimédia
Présenté par :
Baptiste MOINE
Promotion 2016-2017
Apprenti au Centre Hospitalier Henri LABORIT
Sujet du rapport :
Projet Asterisk – Installation et configuration de l’IPBX Asterisk
Sauf mention contraire, ce rapport est mis à disposition selon les termes de la licencehttps://creativecommons.org/licenses/by-nc-sa/4.0/
RAPPORT D’INSTALLATION
TABLE DES MATIÈRES
Table des matières.................................................................................................................2Infrastructure réseau..............................................................................................................3 Réseau...............................................................................................................................3 Exemple de configuration de port sur sw-admin-a............................................................4Préparation du système.........................................................................................................5 Configuration de l’accès réseau.........................................................................................5Préparation de l’espace de travail (Workbench)..................................................................10 Installation de OpenSSH-Server......................................................................................10Installation d’Asterisk...........................................................................................................18 Installation de la chaîne de compilation...........................................................................18 Installation des dépendances..........................................................................................19 Installation d’Asterisk.......................................................................................................20Configuration d’Asterisk.......................................................................................................22 Configuration des utilisateurs locaux...............................................................................23 Configuration de la messagerie vocale............................................................................25 Configuration du plan de numérotation............................................................................27 Configuration de la QoS...................................................................................................28 Configuration de l’enregistrement SIP d’Asterisk sur IMS (pas utilisé pour le moment).29 Configuration du parking et transfert d’appels.................................................................30 Exécution d’Asterisk en tant qu’utilisateur.......................................................................30 Création d’un message vocal conditionnel de fermeture................................................31 Rechargement des configurations...................................................................................32Tests.....................................................................................................................................33 Installation de X-Lite........................................................................................................33 Configuration de X-Lite....................................................................................................33 Configuration d’un poste Polycom VVX300.....................................................................36
Baptiste MOINE 2 Installation et configuration d’Asterisk
INFRASTRUCTURE RÉSEAU
Réseau
Plan d’adressage : 172.28.128.0/24 pour commencer, mais les autres sous réseau172.28.128.0/18 sont disponibles ;
VLAN : 13, présent uniquement sur le sw-coeur et sw-admin-a ;
La prise A3-0-3 est branchée sur le port g3/0/13 de sw-admin-a ;
Route par défaut : 172.28.128.1 cœur de réseau HP, instance sites-voip :
• Le routage vers l’autocommutateur (appliances A et B) Alcatel (10.16.10.63) estassuré ;
• Le routage vers les sites distants ne fonctionne pas non plus (le routeur Adista neconnaît pas la route vers 172.28.128.0/24) ;
• Prise de main SSH depuis l’informatique OK (on passe par le SNS qui connaît laroute).
Serveur DHCP : tout est configuré sauf le serveur TFTP, les postes téléphoniques sonttous reconnus et déclarés dans le RADIUS. Les postes téléphoniques ont tous démarréssans problèmes.
Baptiste MOINE 3 Installation et configuration d’Asterisk
Suppression de la gestion sudo, l’exécution de commandes d’administrations sensibles neseront possibles que dans un contexte d’exécution privilégié (root) non hérité :
# apt-get purge sudo
OU Ajout de l’utilisateur aux membres du groupe sudo pour l’exécution rapide de tâchesdans un contexte d’exécution privilégié :
# apt-get install sudo
# usermod -aG sudo ${USR}
Baptiste MOINE 9 Installation et configuration d’Asterisk
Génération de nouveaux nombres premiers de 4096 bits pour le Diffie-Hellman GroupExchange (à défaut d’unité de calcul graphique, cette étape est très coûteuse en termesde temps processeur) :
# ssh-keygen -G /tmp/moduli -b 4096
Test de sûreté et validation des nombres premiers et suppression des nombres premiers :
Ajout d’un message d’avertissement pour éviter tout problème en cas de procéduresjudiciaires suite à un potentiel piratage ou autre accès non autorisé :
# cat >/etc/issue <<-EOF
#############################################
# AVERTISSEMENT: L'accès à ce système est #
# restreint au personnel administratif de #
# la direction des systèmes d'information #
# du Centre Hospitalier Henri Laborit #
# #
# Tout accès non autorisé constitue une #
# violation sujette à poursuite judiciaire. #
#############################################
EOF
Baptiste MOINE 11 Installation et configuration d’Asterisk
Configuration du client
Sauvegarde de la configuration d’origine :
# cp /etc/ssh/ssh_config{,.bak}
Création d’une nouvelle configuration pour l’authentification SSH en tant que client :
# cat <<-'EOF' >/etc/ssh/ssh_config
# Configuration par défaut pour l'authentification sur tous les hôtes
Host *
# Pas d'authentification par mot de passe
PasswordAuthentication no
ChallengeResponseAuthentication no
# Authentification par clés publiques
PubkeyAuthentication yes
# Privilégie l'utilisation de EdDSA (Ed25519) à RSA
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_rsa
# Désactive le Roaming (CVE-2016-0777 et CVE-2016-0778)
UseRoaming no
# Variables d'environnement relatives à la langue
SendEnv LANG LC_*
# N'affiche pas les noms d'hôtes en clair
HashKnownHosts yes
# Divers
VisualHostKey yes
EOF
Baptiste MOINE 12 Installation et configuration d’Asterisk
Configuration du service
Sauvegarde de la configuration d’origine :
# cp /etc/ssh/sshd_config{,.bak}
Création d’une nouvelle configuration pour le service SSH :
# cat <<-'EOF' >/etc/ssh/sshd_config
#### Réseau ####
# Port d'écoute du service, non standard conseillé afin d'éviter les scans intempestifs (n’augmente en aucun cas le niveau de sécurité !)
Port 22
# Accélération du processus d’authentification pour les clients n’utilisant pasde paramètres DNS valides
UseDNS no
# Utilisation du protocole SSH-2 uniquement
Protocol 2
# Écoute IPv4 uniquement et sur le réseau d’administration
AddressFamily inet
ListenAddress 0.0.0.0
# Désactivation de la redirection du flux Xorg
X11Forwarding no
X11DisplayOffset 10
# Désactive les messages de type TCPKeepAlive, ces messages ne sont pas diffusés dans le canal chiffré
TCPKeepAlive no
# Alternative chiffrée au TCPKeepAlive, désauthentification après 3 min d’inactivité (3*60sec)
ClientAliveInterval 60
ClientAliveCountMax 3
Baptiste MOINE 13 Installation et configuration d’Asterisk
#### Clés ####
# Clés d’hôte pour le protocole SSH-2
# Privilégie l’utilisation de EdDSA (Ed25519) à RSA
HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key
# Séparation des privilèges, prévient les exploits de type privilege escalation
UsePrivilegeSeparation yes
UseLogin no
# Authentification par clé publique
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
#### Authentification ####
# Whitelist
AllowGroups ssh-users
# 30 secondes pour saisir la passphrase
LoginGraceTime 30
# Interdit l’authentification avec un utilisateur root
PermitRootLogin no
# Vérification des permissions sur les fichiers de clés et les répertoires
StrictModes yes
# N’utilise pas les fichiers ~/.rhosts et ~/.shosts
IgnoreRhosts yes
# Pas d’authentification basée sur l’hôte
HostbasedAuthentication no
Baptiste MOINE 14 Installation et configuration d’Asterisk
# Ne fait pas confiance en ~/.ssh/known_hosts pour l’authentification RhostsRSAAuthentication
IgnoreUserKnownHosts yes
RSAAuthentication yes
RhostsRSAAuthentication no
# Interdit l’authentification sans mot de passe
PermitEmptyPasswords no
# Utilisation de clés publique/privée pour l’authentification
PasswordAuthentication no
# Désactivation du ChallengeResponse (à activer pour une authentification TOTP)
UsePAM no
ChallengeResponseAuthentication no
#### Divers ####
# Journalisation dans /var/log/auth.log
SyslogFacility AUTH
LogLevel INFO
# Affichage de la dernière connexion
PrintLastLog yes
MaxAuthTries 2
MaxStartups 10:30:60
# Affichage d’une bannière de login
Banner /etc/issue
PrintMotd no
# Autorise les clients à passer des variables locales d’environnement
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
EOF
Baptiste MOINE 15 Installation et configuration d’Asterisk
Configuration de l’utilisateur « user »
Création d’un groupe et ajout de l’utilisateur autorisé pour l’authentification sur le serviceSSH (voir Whitelist) :
# groupadd ssh-users
# usermod -aG ssh-users ${USR}
Création des jeux de clés EdDSA (Edwards-curve Digital Signature Algorithm) et RSA(Rivest-Shamir-Addleman) pour l’authentification par clé privée (depuis le serveur) :
FACULTATIF : Création d’un jeu de clés EdDSA et RSA résistant aux attaques de typebruteforce, cette étape est recommandée, mais dans la mesure où elle contraint àl’utilisation d’un client SSH supportant le processus cryptographique de dérivation de clé(« key derivation function » ou KDF), il sera nécessaire d’apprécier les enjeux relatifs àl’utilisation d’un tel jeu de clé, notamment en termes de portabilité et rétrocompatibilité :
# ssh-keygen -t ed25519 -o -a 100 -f /home/${USR}/.ssh/${HOSTNAME}_ed25519
Test et validation de l’authentification par clé publique (depuis le client) :
# ssh asterix.miletrie.chl
Baptiste MOINE 17 Installation et configuration d’Asterisk
INSTALLATION D’ASTERISK
Installation de la chaîne de compilation
Afin de compiler Asterisk et le cas échéant, ses dépendances, il est nécessaire d’installersur le système, une chaîne de compilation.
Analyseurs lexicaux et syntaxiques
Composantes du début de la chaîne de compilation, les analyseurs consistent àdécomposer les chaînes de caractères en entités lexicales (« tokens ») en se basant surdes expressions rationnelles, définissant des séquences de caractères autorisés. Ceprocessus s’appelle la segmentation (« tokenization »). Les plus utilisés sont :
• GNU Bison : Compilateur de compilateur chargé de l’analyse sémantique etsyntaxique ;
• Flex : Analyseur de motifs lexicaux.
Installation
# apt-get -fy install bison flex
Autotools
Autotools désigne un ensemble d’outils de build du projet GNU, parmi lesquels onretrouve :
• GNU Make : Fournit une aide à la compilation et à l’édition de liens par la créationde fichier de description d’installation des dépendances appelés makefile ;
• GNU AutoMake : Permet la génération d’un makefile à partir d’une description deplus haut niveau ;
• GNU AutoConf : Permet la génération d’un script shell de configuration del’environnement de développement « configure » à partir de programmes basés surle préprocesseur GNU M4 ;
• GNU LibTool : Utilisé avec AutoConf et AutoMake afin de simplifier le processus decompilation, indépendamment du système utilisé, par la création de bibliothèquesdynamiques dépendantes au processus d’installation ;
• GNU AutoGen : Fournit une approche similaire à Flex dans la génération defichiers makefile.
Installation
# apt-get -fy install make automake autoconf libtool autogen m4
Baptiste MOINE 18 Installation et configuration d’Asterisk
Compilateur
Le compilateur GCC (« GNU Compiler Collection ») est un ensemble de compilateurnotamment utilisé pour le langage C et C++. En complément de cette bibliothèque decompilation, il est parfois nécessaire d’installer d’autre outils pouvant être utilisées dans lachaîne de compilation :
• GNU BinUtils : Ensemble d’outils permettant la création et la gestion deprogrammes binaires et sources assembleur ;
• GNU Debugger : Fournit une large ensemble d’outils pour tracer ou altérerl’exécution d’un programme (debugging) ;
# systemctl show --property Environment asterisk.service
Baptiste MOINE 22 Installation et configuration d’Asterisk
Configuration des utilisateurs locaux
# cat <<-'EOF' >/etc/asterisk/users.conf
[general]
hasvoicemail=yes ; Les utilisateurs posséderont une boite vocale
hassip=yes ; L’utilisateur possède un compte SIP
hasiax=yes ; L’utilisateur possède un compte IAX
callwaiting=yes ; L’utilisateur peut mettre des appels en attente
threewaycalling=yes
callwaitingcallerid=yes
transfer=yes ; L’utilisateur peut transférer des appels
canpark=yes ; L’utilisateur peut mettre des appels dans le parking
cancallforward=yes
callreturn=yes
callgroup=1
pickupgroup=1
nat=yes ; L'utilisateur se trouve derrière un NAT
canreinvite=yes
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.0
qualify=yes ; Permet le monitoring
[template_local](!)
type=friend ; Type d'objet SIP (friend=utilisateur)
host=dynamic ; L'utilisateur n'est pas associé à une IP fixe
dtmfmode=rfc2833 ; Mode DTMF
disallow=all ; Interdit tous les codecs
allow=g722 ; Autorise le codec g722
allow=g729 ; Autorise le codec g729
allow=alaw ; Autorise le codec alaw
context=local ; Nom du contexte pour ce template
secret=youshallnotpass ; Secret utilisé par défaut pour les utilisateurs du template
[1001](template_local) ; Numéro SIP et template utilisé
fullname=John DOE
username=jodoe
mailbox=1001
Baptiste MOINE 23 Installation et configuration d’Asterisk
[1002](template_local)
fullname=Jane DOE
username=jadoe
mailbox=1002
[1003](template_local)
fullname=John SMITH
username=josmith
mailbox=1003
[1004](template_local)
fullname=Jane SMITH
username=jasmith
mailbox=1004
EOF
Baptiste MOINE 24 Installation et configuration d’Asterisk
Configuration de la messagerie vocale
# cat <<-'EOF' >/etc/asterisk/voicemail.conf
[zonemessages]
european=Europe/Paris|'vm-received' a d b 'digits/at' HM
[general]
tz=european
charset=UTF-8
locale=fr_FR.UTF-8
maxmessage=100 ; Nombre max de message sur la boite de messagerie
maxsecs=0 ; Durée max d'un message
minsecs=0 ; Durée minimum d'un message
maxlogins=3 ; Nombre d'essai maximum pour l'authentification d'un utilisateur sur sa boite vocale
review=yes ; Permet à l'appelant de réécouter son message avant de le transmettre à la boite de messagerie. Accessible en terminant le message par #
saycid=no ; Dicte le numéro de l'appelant avant dejouer le message qu'il a laissé
format=wav49|gsm|wav ; Formats utilisés pour enregistrer les messages vocaux (sauvegarde dans tous les formats indiqués)
[email protected] ; Permet d'identifier la source du serveur mail de notification
fromstring=Messagerie Vocale Asterisk
pagerfromstring=Messagerie Vocale Asterisk
attach=yes ; Permet d'envoyer en pièce jointe un fichier audio comprenant le message vocal
maxsilence=10 ; Temps maximum de silence autorisé avant fin d'appel
silencethreshold=128 ; Seuil de détection du silence
sendvoicemail=yes ; Permet à un utilisateur d'envoyer un message vocal à un autre utilisateur
; Corps du mail
emaildateformat=%A, %d %B %Y à %H:%M:%S
emailsubject=Messagerie Vocale Asterisk - Nouveau message dans la boîte ${VM_MAILBOX}
emailbody=Bonjour${VM_NAME},\n\nLe numéro ${VM_CALLERID} a tenté de vous joindre sans succès le ${VM_DATE}.\nCette personne vous a laissé un message de ${VM_DUR} secondes. Vous pouvez le consulter en appelant votre boîte vocale.\n\nBonne journée !
pagerfromstring=Messagerie Vocale Asterisk
pagersubject=Nouveau message vocal
Baptiste MOINE 25 Installation et configuration d’Asterisk
pagerbody=Nouveau message de ${VM_DUR} secondes dans la boîte ${VM_MAILBOX} laissé le ${VM_DATE} par ${VM_CALLERID}.
# sed -i 's/^#*\(AST_\(\(USER\)\|\(GROUP\)\)\)=".*"$/\1="asterisk"/' /etc/default/asterisk
Baptiste MOINE 30 Installation et configuration d’Asterisk
Création d’un message vocal conditionnel de fermeture
Afin de synthétiser un message vocal, il est possible d’utiliser, par exemple, l’outil AcapelaBox (https://acapela-box.com/AcaBox/index.php) permettant de synthétiser vocalement unmessage textuel en utilisant plusieurs types de voix (ici, nous utilisons Manon). Une fois lasynthèse vocale du message effectuée, il sera possible de télécharger le fichier audiocorrespondant en utilisant, par exemple, le module complémentaire FlashGot.
Envoi du fichier audio sur le serveur IPBX :
# scp ferme.mp3 asterix:/tmp/
Ré-encodage du flux audio en aLaw, 8 kHz 16 bits, 1 canal :
Baptiste MOINE 32 Installation et configuration d’Asterisk
TESTS
Pour tester l’IPBX Asterisk, nous allons commencer par utiliser un softphone, c’est-à-dire,un poste téléphonique SIP logiciel. L’utilisation d’un softphone permettra dans un premiertemps de valider la configuration de l’IPBX en évitant les problèmes éventuellementgénérés par l’utilisation de postes téléphoniques physiques (i.e., poste Polycom).
Installation de X-Lite
Pour installer X-Lite, se rendre sur le site officiel du développeur(http://www.counterpath.com/x-lite/) et télécharger et installer la dernière version stable dusoftphone.
Configuration de X-Lite
L’utilisation de X-Lite est simplifiée à l’extrême et ne nécessite que de très peu deconfigurations pour être exploitable. Dans notre cas, il suffit de modifier les codecs audio àutiliser, c’est-à-dire le A-LAW :
Baptiste MOINE 33 Installation et configuration d’Asterisk
Pour s’authentifier sur le serveur IPBX, le client nécessite tout d’abord de posséder uneconfiguration DNS et IP valide afin d’être en mesure de résoudre le nom DNS attribué àl’IPBX (i.e., asterix.miletrie.chl) et pouvoir initier son authentification au niveau de lacouche IP.
Une fois configuré, il suffit de se rendre dans la configuration pour l’enregistrement SIPdisponible sous l’onglet « Softphone / Account Settings » et spécifier les paramètresd’authentification associés à l’utilisateur :
Note : Le mot de passe et l’identifiant associé à l’utilisateur est décrit dans le fichier deconfiguration « users.conf » de l’IPBX (cf. Configuration des utilisateurs locaux).
Baptiste MOINE 34 Installation et configuration d’Asterisk
Une fois complétés, valider les paramètres de configuration et vérifier que l’enregistrementSIP de l’utilisateur est effectif au niveau du client (voir Illustration 4) et/ou depuis la consoled’administration de l’IPBX :
Pour commencer la configuration du poste téléphonique, il faut tout d’abord procéder à larécupération de son adresse IP en vérifiant, par exemple, les baux DHCP en se référant àl’adresse MAC indiquée dans le manuel ou au dos du poste téléphonique.
Les postes téléphoniques Polycom de la gamme VVX300, VVX400 et VVX500embarquent tous une interface de configuration WEB directement accessible via sonadresse IP (mot passe administrateur par défaut « 456 »).
Configuration des codecs audio
Dans notre cas, nous utilisons le codec A-LAW, il est donc nécessaire de modifier lapriorité des codecs audio via le menu « Configuration / Audio Codec Profiles » (voir Illustration 5: Configuration Polycom VVX300 - Priorité des codecs).
Baptiste MOINE 36 Installation et configuration d’Asterisk
Illustration 5: Configuration Polycom VVX300 - Priorité des codecs
Configuration de l’enregistrement SIP
Les paramètres de configuration standards pour l’enregistrement SIP sont accessibles viale menu « Configuration Simple / Serveur SIP » et « Configuration Simple / Identificationligne SIP » (voir Illustration 6: Configuration Polycom VVX300 - Configuration SIP).
Baptiste MOINE 37 Installation et configuration d’Asterisk