JTC 2024 La relance de la filière de la viande de chevreau.pdf
Securisation de la VoIP sous Asterisk: solution avec Asterisk, OpenVPN et OpenSSL
1. UNIVERSITE DAKAR BOURGUIBA
SECURITE RESEAUX ET SYSTEMES
VULNERABILITE
SOLUTION: OPENVPN, SSL
Réalisé par:
Mr. ALPHA CIRE
Mr. Justin AGENORWOTH ACIRA
Mr. SALAMA MBALU Stephen
Dirigé par:
Mr. Youssef Khlil
Master 1: Genie Informatique: Système Réseaux Télécoms
mamaducirejalloh64@gmail.com, djaarucb1@gmail.com, stephensalama2@gmail.com
3. INTRODUCTION
• Depuis les années 1990, Internet a été utilisé afin de diminuer les
coûts des communications téléphoniques. Les communications ainsi
établies coûtent seulement le prix de deux communications locales
(une communication locale à chaque extrémité).
• Toutefois, les enjeux de la voix sur IP sont aussi techniques et
dépassent la simple idée de la communication téléphonique à
moindre coût. Du fait de la convergence voix, données et images, il
devient plus facile de gérer un support de transmission unique pour
l'ensemble des services (tout sur IP).
4. II. GENERALITES
C’est quoi la VoIP ?
• La voix sur IP, pour Voice over IP, est une technique qui permet de
communiquer par la voix (audio ou/et vidéo) sur des réseaux compatibles IP,
qu'il s'agisse de réseaux privés ou d'Internet.
• Elle désigne l’ensemble des technologies permettant de communiquer
oralement via un réseau utilisant le protocole IP. Le terme "VoIP" est en
général utilisé pour décrire des communications "Point à Point". Pour la
diffusion du son sur IP en multipoints, on parlera plutôt de streaming (comme
les radios sur Internet, par exemple).
• Cette technologie est complémentaire de la téléphonie sur IP (« ToIP » pour
Telephony over Internet Protocol).
5. • Divers protocoles peuvent être utilisés pour acheminer les informations
au(x) destinataire(s) parmi lesquels RTP, Real-time Transport Protocol, qui
est un protocole basé sur UDP/IP.
• Il est important de noter que certaines fonctions de liaison entre postes,
nécessaires dans certains cas au fonctionnement opérationnel des services
utilisateurs, peuvent présenter un risque potentiel de malveillance et de
vulnérabilité.
Les protocoles
• Les logiciels de Voix sur IP utilisent en général SIP qui est un protocole
symétrique. Historiquement le protocole H.323 ayant été développé et
adopté massivement en premier lieu, il reste très présent mais sur le
déclin. On peut identifier certains acteurs historiques se lançant dans
l'aventure VoIP au moyen de protocoles plus anciens (H323) et les
nouveaux arrivés utilisant les derniers protocoles (SIP par exemple).
6. Voici quelques protocoles utilisés :
SIP (Session Initiation Protocol)
Ce qui nous intéresse beaucoup, c’est ce protocole de signalisation de
vidéo et voix sur IP, SIP est un protocole développé par l'Internet
Engineering Task Force (IETF) et il permet la négociation et
l'établissement de sessions VoIP. Il est un protocole de couche 5
(couche Session) du modèle OSI. Il s'appuie généralement sur une
couche de transport UDP, bien qu'il soit possible d'augmenter sa
fiabilité en l'appliquant sur du TCP. Le port par défaut de SIP est le
5060. SIP ne traite que l'établissement de session. Il ne transporte pas
les données échangées pendant la communication, ce rôle étant joué
par RTP (Real-time Transport Protocol).
7. RTP (Real-time Transport Protocol)
• RTP est à l'heure actuelle principalement utilisé comme transport de
média pour les services de la voix sur IP ou de vidéo conférence, voire
de streaming. En mode unidirectionnel, il est toujours associé avec un
autre protocole de signalisation qui gère l'établissement de session et
permet l'échange du numéro de port utilisé par les deux extrémités.
• Le but de RTP est de fournir un moyen uniforme de transmettre sur IP
des données soumises à des contraintes de temps réel (audio, vidéo,
... ). Le rôle principal de RTP consiste à mettre en œuvre des numéros
de séquence de paquets IP pour reconstituer les informations de voix
ou vidéo même si le réseau sous-jacent change l'ordre des paquets.
8. Plus généralement, RTP permet :
• d'identifier le type d'information transportée,
• d'ajouter des marqueurs temporels et des numéros de séquence ;
• de contrôler l'arrivée à destination des paquets.
De plus, RTP peut être véhiculé par des paquets multicast afin
d'acheminer des conversations vers des destinataires multiples.
9. RTCP (Real-time Transfert Control Protocol)
• Le protocole réseau RTCP (Real-time Transport Control Protocol)
repose sur des transmissions périodiques de paquets de contrôle par
tous les participants dans la session.
• C'est un protocole de contrôle des flux RTP, permettant de véhiculer
des informations basiques sur les participants d'une session, et sur la
qualité de service.
• Le RTCP est un protocole couplé au RTP (Real-time Transport
Protocol). Ses fonctionnalités de base et sa structure des paquets sont
définis dans la spécification RFC 3550 RTP, remplaçant sa
standardisation originale datant de 1996 (RFC 1889).
10. RTCP fournit les statistiques de bandes passantes et des informations
de contrôle pour un flux RTP. Il est couplé aux paquets RTP, mais ne
transporte aucune information relative au média lui-même.
Typiquement RTP sera envoyé sur un port UDP (User Datagram
Protocol) de numéro pair ; le message RTCP couplé sera envoyé sur le
port impair suivant. La fonction principale du RTCP est de fournir des
informations sur la qualité de service (QoS) dans la distribution des
médias en envoyant périodiquement des informations statistiques pour
les participants à une session de flux multimédia (audio ou vidéo).
11. PABX (Private Automatic Branch eXchange)
• Un PABX est un autocommutateur téléphonique privé destiné à
alimenter et à mettre en relation une certaine quantité de postes
téléphoniques internes dans une entreprise ou dans une
administration.
En d'autres termes, il représente l'élément central qui :
1) distribue les appels téléphoniques arrivés ;
2) autorise les appels téléphoniques départs (vers un ou plusieurs
opérateurs de télécommunications, suivant les droits) ;
3) gère les terminaux téléphoniques (ainsi que les appels internes), qui
peuvent être des postes numériques ou analogiques ;
4) gère toutes les autres fonctionnalités ou options (Comme la taxation
par exemple).
12. • Il permet, entre autres, la messagerie vocale, les files d'attente, les
agents d'appels, les musiques d'attente et les mises en garde
d'appels, la distribution des appels. Il est possible également
d'ajouter l'utilisation des conférences par le biais de l'installation de
modules supplémentaires
Figure : PABX et ses Fonctionnalités
13. Securité de la VoIP :
La sécurité de la téléphonie est souvent restée un sujet à part dans l’entreprise.
Pour l’entreprise et les opérateurs ce facteur « coût de la communication » est
important, mais le déploiement de réseaux privés virtuels MPLS, l'introduction de
la qualité de service dans les réseaux (QoS), la convergence voix-données (CTI), les
divers projets de consolidation des deux dernières années, l'arrivée des
autocommutateurs IP, la disponibilité de postes téléphoniques intégrant des
fonctionnalités de plus en plus avancées sont des facteurs tout au moins aussi
déterminants. Des études récentes montrent que la sécurité de la VoIP est un
élément clé pour les décideurs, mais les déploiements observés ont
malheureusement tendance à montrer le contraire.
14. Après avoir présenté les principaux protocoles liés à la voix sur IP
et avoir présenté les rudiments de la sécurisation des différents
équipements nous allons détailler différentes attaques et quels « ajouts
» sécurité peuvent limiter leur impact. Pour finir nous discuterons de
l’interception de trafic et présenterons deux évolutions récentes de la
VoIP.
15. III. Présentation des Outils Utilisés
Pour implémenter la solution VoIP nous utiliserons un serveur Linux Ubuntu
sur lequel sera installé le logiciel Asterisk, deux machines clientes Windows
pour les deux téléphones (Clients SIP) et un sniffer qui sera installé sur l’une
des machines clientes. (Cain & Abel ou Wireshark).
Asterisk : est un autocommutateur téléphonique privé (PABX: Private
Automatic Branch eXchange) open source et propriétaire (publié sous
licence GPL et licence propriétaire) pour systèmes GNU/LINUX.
Asterisk est donc un IP-PBX qui transforme un ordinateur en «centrale
téléphonique ».
16. Clients SIP
Les logiciels SIP sont des logiciels qui utilisent SIP comme protocole
de voix sur réseau IP (téléphonie sur Internet). Certains permettent
également la visioconférence.
Pour notre travail, nous avons testé avec les softphones qui sont entre
autre X-Lite et Zoiper.
17. IV. CONFIGURATION
• Preparation de l’installation d’Asterisk
Il est toujours important de mettre à jour la distribution pour avoir les
nouvelles fonctionnalités recentes;
# apt-get update
Deuxiemement, nous installons les dependances necessaires à la
compilation d’Asterisk
#apt-get install build-essential libxml2-dev libncurses5-dev linux-
headers-’uname –r’ libsqlite3-dev libssl-dev
18. • On cree un dossier ou nous allons mettre les sources d’Asterisk /usr/src
# mkdir /usr/src/asterisk
On accede dans le repertoire crée ci haut pour lancer l’installation
# /usr/src/asterisk#
• Finalement, on lance l’installation de l’Asterisk et nous avons choisi la
version 11 pour notre travail:
:/usr/src/asterisk# wget
http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-
current.tar.gz
• On extrait le fichier telecharger:
:/usr/src/asterisk# tar -xvzt asterisk-11-current.tar.gz
:/usr/src/asterisk# cd asterisk-11.10.0
19. Installation d’Asterisk (suite)
• On construit un nouveau fichier makefile qui contient les instructions à
executer à partir des commandes, ./configure, make, make install, make
config,…
:/usr/src/asterisk/asterisk-11.10.0#./configure
• La commande make menuselect permet d’installer des modules
supplementaires
• :/usr/src/asterisk/asterisk-11.10.0#make manuselect
21. La configuration d’Asterisk s’articule sur les fichiers de configuration suivants:
/etc/asterisk/sip.conf : configuration globale d’Asterisk
/etc/asterisk/users.conf : configurations des utilisateurs
/etc/asterisk/extensions.conf : configuration du Diaplan
1. Nano /etc/asterisk/sip.conf
On modifie la ligne pour parametrer les sons en Francais
;language=en : default language setting for all users/peers
Et cela devient:
language=fr : default language setting for all users/peers
26. OpenVPN n’est pas un VPN IPSec, c’est un VPN SSL se basant sur la creation
d’un tunnel IP (UDP ou TCP au choix) authentifé et chiffré avec la
bibliotheque OpenSSL.
La configuration OpenVPN est d’etablir une ICP (Infrastructure de Clé
Publiques), elle fonctionne grace à:
- Une clé publique pour le serveur et une clé privée pour chacun des clients.
- Un certificat de l’autorité de certification et des clés qui sont utilisées pour
identifier chaque certificat serveur et clients.
Quelques avantages des tunnels VPN SSL:
- Faciliter pour passer les reseaux NATés (pas de configuration à faire)
- Logiciel client disponible sur GNU/Linux, Windows, Max OS X, actuellement
sous Android
VI.SECURISATION
27. Taper la commande suivante pour installer openvpn:
Generer le certificat et la clé de l’Autorité de Certification maître:
Premierement, on cree un dossier “easy-rsa”
Copier tous les fichiers de configurations dans le dossier créé ci-haut,
puis modifier le fichier “vars”
28. Editer le fichier “vars” selon les informations données ci après (en
mettant vos propres infos bien entendu ! ):
29. A ce stade, on lance la séquence qui va générer les clés (.key) et les certificats
(.crt)
30. Ensuite, on copie tout ce que l’on a généré dans le répertoire
/etc/openvpn
# cp keys/ca.crt keys/ta.key keys/server.crt
keys/server.key /etc/openvpn
3. On accède dans le fichier de configuration du serveur
openvnp: server.conf et les lignes à decommenter et
commenté sont les suivantes:
32. Pour vérifier si les configurations marchent, on vérifier s’il va s’afficher
un bouton vert après la commande suivante :
33. CONFIGURATION SUR UN CLIENT WINDOWS
Après avoir importé les clés et les certificats du client, on les copie dans
le répertoire C:Program FilesOpenVPNconfig(Dans notre cas il s’agit
d’un client XP) :
34. CONFIGURATION SUR UN CLIENT WINDOWS
Pour editer le fichier de configuration, il faut faire clique droit sur
openvpn et cliquer sur editer la configuration
Et suivre cette configuration
35. Pour se rassurer que les configurations sont bien faites au niveau
du client, et si le client est connecté l’icone sera en vert:
38. Vu que la sécurisation est établie, wireshark ne capte rien du tout !
39. VII. CONCLUSION
L'explosion de la VoIP pousse les différentes entreprises de
communications à améliorer les moyens mise en place. Grâce à cela la VoIP
est l'avenir de la téléphonie.
Il se pose néanmoins un grand problème de sécurité dans la VoIP et dans
beaucoup de cas ce problème est souvent ignoré par les décideurs au niveau
des entreprises ou même par les techniciens.
Une sécurisation de la VoIP en utilisant un canal sécurisé vient palier à ce
grand problème de sécurité ci-haut souligné. C’est ainsi que nous avons mis
en place un canal VPN en nous servant de la solution OPENVPN sur linux
(Ubuntu).
Désormais tout client non authentifié ne sera pas en mesure d’utiliser
notre service de téléphonie; et ainsi on diminue sensiblement les risques
d’attaques par les pirates.