1. République du Sénégal
Un peuple - un but - une foi
Master 2 SRT
Année 2017 - 2018
Voip Trunk Asterisk
Sécurité avec
StrongSwan et OpenVpn
Professeur : M. Massamba LO
Septembre 2018
3. 3
D. Application
1. Telechargement D’asterisk
2. Installation d’asterisk
3. Configuration d’asterisk
4.Configuration client asterisk1
5.Configuration du trunk
6.configuration client asterisk2
7.Capture du traffic avec wireshark
PLAN
4. 4
8.Sécurisation
8. 1. Utilisation de Strongswan entre les deux
sites
8. 2. Utilisation d’openvpn comme serveur pour
l’authentification des clients
a installation openvpn server
b configuration openvpn server
c configuration client avec openvpnGui
9. Illustration finale
Conclusion
PLAN
5. INTRODUCTION
5
VoIP est l’abréviation anglaise de Voice over Internet Protocol le
protocole de Voix sur IP (VoIP) qui offre la possibilité de
transmettre des appels vocaux via Internet et des réseaux de
données basés sur IP, est devenu une technologie éprouvée.
Une technique qui permet d’intégrer la voix aux données transmises
par paquets sur un réseau utilisant le protocole IP. la voix sur IP
permet le transport de la voix comme n’importe quel genre de
données sur l'ensemble du réseau qui accepte le protocole IP, tels
que l’Internet publique, le réseau d’entreprise/privé ou bien une
combinaison des deux
6. A. RISQUE DE SECURITE
6
-Ecoute:
la captation d’informations de session (qui appelle qui, pendant combien de temps,
pour faire quoi: voix, messagerie instantanée, visioconférence…)
Usurpation d'identité :
L’usurpation d’identité consiste pour un individu, à l’intérieur ou à l’extérieur de
l’entreprise à se faire passer pour quelqu’un d’autre
-Spam / Scam :
Le Scam est l’équivalent pour la ToIP du Spam pour l’email
Obstruction :
L’obstruction consiste pour un pirate à empêcher un appel entrant ou sortant
d’aboutir
-Virus
-Vol d'informations confidentielles
-Saturation du réseau:
Blocage de l'ensemble des appels
7. B. SOLUTIONS
7
Solution Voip : Asterisk
Solution Sécurité Site to Site : StrongSwan
Solution Sécurité Host to site : OpenVpn
Nous allons Déployer ces logiciels ci-dessous conformément
à nos besoins :
8. 8
1.ASTERISK
Asterisk est un autocommutateur téléphonique privé (PABX) libre et propriétaire (publié
sous licence GPL et licence propriétaire) pour systèmes GNU/Linux. 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 et la
recompilation des binaires.
Asterisk implémente les protocoles H.320, H.323 et SIP, ainsi qu'un protocole spécifique
nommé IAX (Inter-Asterisk eXchange). Ce protocole IAX permet la communication entre
deux serveurs Asterisk ainsi qu'entre client et serveur Asterisk. Asterisk peut également
jouer le rôle de registrar et passerelle avec les réseaux publics (RTC, GSM, etc.) Asterisk
est extensible par des scripts ou des modules en langage Perl, C, Python, PHP, et Ruby.
C.INFORMATION
9. 9
Un VPN est un réseau privé virtuel permettant de connecter plusieurs réseaux
distants de manière sécurisée a travers un tunnel via une connexion non sécurisée Ex:
Internet
L'utilisation de ce système va donc nous permettre d'accéder à tous les ordinateurs
connectés sur le même VPN et de ce fait avoir un accès au réseau interne (de votre
domicile ou encore de votre entreprise)
2.VPN
INFORMATION
10. 10
3.StrongSwan
Lors de la mise à niveau de Debian 6 vers Debian 8, le softwarestack IPSEC
passe de Openswan à Strongswan. StrongSwan est donc une implémentation
IPsec multiplateforme. Elle permet de créer un tunnel Ipsec, donc de
réaliser un VPN entre deux sites. Elle chiffre et authentifie les données. Elle
fonctionne en utilisant des certificats ou une clé partagée (c'est ce que nous
allons utiliser).
INFORMATION
11. 11
OpenVPN est un serveur open source permettant d’authentifier
-Deux sites distants
-Des clients auprès d’un serveur
au travers d’un tunnel sécurisé
ceci par :
Une clé privée partagé à l’avancé
Des certificats électroniques ;
Authentification username/password
4.OpenVpn
INFORMATION
12. D. APPLICATIONS
1. Telechargement d’asterisk
En tant que root, exécuter ces commandes pour faire une mise à jour et une mise à
niveau :
#apt-get update
#apt-get upgrade
Ensuite, installer les dépendances nécessaires à la bonne marche d’asterisk.
#apt-get install build-essential libncurse-5-dev linux-headers-$(uname –r)
libsqlite3-dev libssl-dev uuid
Après, créer le dossier asterisk dans le repertoire /usr/src/ et y télécharger le
package compressé d’astérisk (de préférence la dernière version).
#cd /usr/src/
#mkdir asterisk
#cd asterisk/
#wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15.6.0.tar.gz
12
13. APPLICATIONS
2.Installation d’asterisk
En outre, décompresser asterisk et se placer dans le répertoire décompressé.
#tar xvzf asterisk-15.6.0.tar.gz
#cd asterisk-15.6.0/
Enfin, exécuter cette commande et saisir au moment venu l’indicatif du pays (224 pour
la Guinée ou 221 pour le Sénégal).
#contrib/scripts/install_prereq install
13
15. APPLICATIONS
Installation d’asterisk
Choisir ces options pour les différents modules et quitter en enregistrant :
15
Les sections Core Sound Packages et Extras Sound Packages permettent d’ajouter les sons en français
20. APPLICATIONS
3. Configuration d’asterisk
20
Lancer un nouveau terminal afin de vider et personnaliser comme suit les fichiers sip.conf,
users.conf, voicemail.conf et extensons.conf se trouvant dans le repertore /etc/asterisk
21. APPLICATIONS
Configuration d’asterisk
21
Permet d’émettre et recevoir un appel
Permet la connexion à partir de n’importe quel poste
Fréquence digitale
Désactiver tous les codecs
Activer le codec ulaw
L’utilisateur possède un compte sip
L’utilisateur possède un compte iax
L’utilisateur peut mettre un appel en attente
L’utilisateur peut transférer des appels
L’utilisateur possède une boite vocale
L’utilisateur peut mettre des appels dans le parking
L’utilisateur peut faire la conférence
L’utilisateur peut renvoyer des appels
Le groupe d’appel (varie de 0 à 63)
Permettre un utilisateur du groupe 1 prendre l’appel (varie de 0 à 63)
Permet le retour d’appel
Active une forme de mode symmetric RTP et SIP comedia
23. APPLICATIONS
Configuration d’asterisk
23
Dicte le numéro de l’appelant avant de jouer le message laissé
Nombre maximum de messages sur la boite vocale (ici 100)
Durée d’un message vocale. Si =0 alors pas de limite
Durée minimum d’un message vocale
Nombre maximum d’erreurs pour avoir accès à la boite vocale
Permet à l’appelant de réécouter son message avant
0000 correspond au mot de passe de la boite vocale
de l’utilisateur
Il est possible de désactiver l’utilisation du mot de passe en ne spécifiant rien avant la virgule comme suit :
6001 => , Mathos Goumou
25. APPLICATIONS
Configuration d’asterisk
25
Revenir sur l’interface ligne de commande d’asterisk et taper successivement les commande
reload (pour recharger asterisk afin de prendre en compte les modifications) et sip show users
(pour voir les utilisateurs créés)
26. APPLICATIONS
4. Configuration Client asterisk1
26
Configuration des softphones X-Lite : télécharger X-lite (ici on utilisera des clients windows)
et configurer les softphones comme suit afin de pouvoir émettre et recevoir un appel.
29. C. APPLICATIONS
29
NB : L’installation et la configurons d’asterisk doivent être reproduites et adaptées
sur le serveur debian2
30. APPLICATIONS
5. Configuration du trunk
30
Le trunk nous permet d’interconnecter deux asterisk afin de permettre l’appel entre les sites d’extensions
differentes. Nous aurons juste besoin d’éditer les fichiers sip,conf et extensions,conf comme suit :
register : Cette ligne permet au serveur debian1 de
s’enregistrer sur le serveur debian2 (192.168.20.1) avec le
login IPBX60 et le mot de passe.
Ajouter un utilisateur (ici IPBX70) dans le fichier sip.conf
sur le serveur debian1. IPBX70 est un utilisateur du serveur
debian2 qui permettra d’assurer le trunk. Lorsqu’un
utilisateur de debian1 voudra joindre un utilisateur de
debian2, dans un premier temps l’appel est transmis à
IPBX70 qui se chargera de le transférer à son tour à
l’utilisateur visé
32. APPLICATIONS
Configuration du trunk
32
register : Cette ligne permet au serveur debian2 de
s’enregistrer sur le serveur debian1 (192.168.10.1) avec le
login IPBX70 et le mot de passe.
Ajouter un utilisateur (ici IPBX60) dans le fichier sip.conf
sur le serveur debian2. IPBX60 est un utilisateur du serveur
debian1 qui permettra d’assurer le trunk. Lorsqu’un
utilisateur de debian2 voudra joindre un utilisateur de
debian1, dans un premier temps l’appel est transmis à
IPBX60 qui se chargera de le transférer à son tour à
l’utilisateur visé
39. APPLICATIONS
8. Sécurisation
39
Vu la possibilité pour un pirate d’intercepter les appels, il est plus que nécessaire de
sécuriser les appels intra-sites et inter-sites afin de préserver la confidentialité,
l’intégrité et l’intimité des utilisateurs. Pour ce faire nous utiliserons StrongSwan entre les
deux astérisk et openvpn au sein de chaque asterisk. Nous aurons désormais deux cartes
réseau referez vous à notre architecture
ens37
ens33 ens33 ens37
1 2
40. APPLICATIONS
Sécurisation
40
8. 1. Utilisation de StrongSwan entre les deux sites :
Assurez-vous que tous les packages sont opérationnels, puis installer Ipsec et StrongSwan
sur les deux serveurs comme suit :
Sur debian1
Sur debian2
41. APPLICATIONS
Sécurisation
41
Utilisation de StrongSwan entre les deux sites :
Assurez-vous que le trafic UDP est autorisé sur les ports 500 (IKE) et 4500 (pour la traversée IPsecNat) en
exécutant successivement ces lignes de commande sur les deux serveurs :
iptables -t filter -A INPUT -p 50 -j ACCEPT
iptables -t filter -A INPUT -p 51 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 500 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 1701 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 1701 -j ACCEPT
iptables -t filter -A OUTPUT -p 50 -j ACCEPT
iptables -t filter -A OUTPUT -p 51 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 4500 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 500 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 1701 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 1701 -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.10.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 10.10.10.1
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens33 -j MASQUERADE
iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
iptables -A INPUT -p UDP -j DROP
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
NB: Les 5 dernières lignes sont pour OpenVPN que nous
verrons plus tard. Nous les avons exécutées ici afin de
pouvoir les enregistrer une bonne fois pour toutes avec
la ligne de commande suivante :
Faire de même sur debian2
42. APPLICATIONS
Sécurisation
42
Utilisation de StrongSwan entre les deux sites
:
Faire de même sur debian2
Modifier le fichier sysctl.conf afin d’autoriser le routage des paquets IPv4 comme suit en
éditant la seule ligne :
43. APPLICATIONS
Sécurisation
43
Utilisation de StrongSwan entre les deux sites :
Nous pouvons passer à la configuration de StrongSwan. Pour ce faire, on va
utiliser deux fichiers :
/etc/ipsec.conf qui va contenir la configuration de StrongSwan. Attention
ce fichier utilise des tabulations pour différencier les catégories. Il faut
impérativement utiliser des tabulations sous peine de ne pas pouvoir faire
fonctionner IPsec.
/etc/ipsec.secrets qui va simplement contenir la clé pré-partagée qui
permettra de chiffrer les données transmis via le VPN. L'échange de la clé
se fera d'ailleurs via le port 500 en udp tandis ce que les données
transiteront sur le port 4500 toujours en udp.
44. APPLICATIONS
Sécurisation
44
Utilisation de StrongSwan entre les deux sites :
Sur debian1
S'il vous plaît gardez à l'esprit que ici pour
left= vous devez entrer l'adresse IP du
serveur sur lequel vous travaillez
actuellement, dans notre cas, debian1.
Leftsubnet= l’adresse réseau du Site 1.
right= l’adresse du serveur auquel nous
allons nous connecter, dans ce cas,
debian2.
Rightsubnet= l’adresse réseau du Site 2.
46. APPLICATIONS
Sécurisation
46
Utilisation de StrongSwan entre les deux sites :
Sur debian2
S'il vous plaît gardez à l'esprit que ici pour
left= vous devez entrer l'adresse IP du
serveur sur lequel vous travaillez
actuellement, dans notre cas, debian2.
Leftsubnet= l’adresse réseau du Site 2.
right= l’adresse du serveur auquel nous
allons nous connecter, dans ce cas,
debian1.
Rightsubnet= l’adresse réseau du Site 1.
51. APPLICATIONS
Sécurisation
51
Utilisation de StrongSwan entre les deux sites :
Vérification du tunnel Ipsec :
Sans pour autant arrêter le ping précédant, allons sur le serveur debian2 et
vérifions le trafic sur le tunnel. On constate que tout fonctionne bien
52. APPLICATIONS
Sécurisation
52
8. 2. Utilisation d’OpenVPN comme serveur pour
l’authentification des clients :
a- Installation d’openvpn server:
b- Configuration d’openvpn coté serveur :
Dans les lignes qui suivent nous allons créer le répertoire keys dans /etc/openvpn/ (répertoire dans lequel nos
clés seront créées). ensuite copier le répertoire easy-rsa dans openvpn. Enfin nous éditerons le fichier vars.
60. APPLICATIONS
Sécurisation
60
Utilisation d’OpenVPN comme serveur pour
l’authentification des clients :
c- Configuration du client avec openvpnGui :
Coté client (ici un client windows) il faudra tout d’abord télécharger et installer OpenVPN GUI. En suite
installer et configurer ssh sur le server afin de récupérer les clés et certificats suivants : ca.crt, ta.key,
client1.crt, client1.key; et les coller dans le répertoire C:ProgrammesOpenVPNconfig du client windows.
Enfin copier le fichier client du répertoire C:ProgrammesOpenVPNsample-config, coller-le dans le
répertoire C:ProgrammesOpenVPNconfig et le renommer en client1.
Si tout a été bien fait vous devez avoir ces fichiers dans le répertoire suivant :
63. APPLICATIONS
Sécurisation
63
Utilisation d’OpenVPN comme serveur pour
l’authentification des clients :
Connection du client :
Exécuter OpenVPN GUI en tant qu’administrateur le connecter
comme illustrer ci-après.
NB : Les installations ainsi que les configurations que nous venons d’effectuer
doivent être reproduites sur le serveur debian2 ainsi que son client.
64. APPLICATIONS
9. Illustration finale
64
Insérer cette ligne dans le fichier sip.conf des deux serveurs afin d’autoriser les softphones à se
connecter avec l’adresse réseau des clients nomades.
Sur debian1 Sur debian2
Les softphones peuvent être connectés aux serveurs avec ces adresses
65. APPLICATIONS
Illustration finale
65
Les appels peuvent désormais
s’opérer de façon sécurisée sans
risque qu’ils soient écoutés.
Whireshark ne peut plus capter
le trafic du protocole RTP. Il a
désormais à faire au protocole
OpenVPN. D’où la sécurisation.
66. CONCLUSION
66
La téléphonie sur IP est une alternative intéressante et évolutive par le
fait qu’elle permet aux entreprises d’économiser beaucoup et d’amoindrir
les dépenses concernant les appels .
Au cour de nos recherches nous avons pu mettre en place deux serveurs
sécurisés avec deux services ,ce travail est donc nécessaire non
seulement dans ce cadre puis dans des cadres qui ne concernent pas
forcement la TOIP si nos différents serveurs octroient d’autre service le
Traffic sera également sécurisé pas le biais de strongswan et d’openvpn