36 0 148KB
Réseaux et Sécurité TP 6
VoIP avec SIP Serveur VoIP: Asterisk L’objectif de ce TP est d’installer et configurer un serveur de VoIP (Asterisk) et plusieurs clients (Twinkle, X-Lite, SJphone, etc.). Ensuite, vous essayer d’analyser le fonctionnement du protocole SIP et la sécurité du protocole RTP. Vous devrez rendre un rapport complet sur ce TP à la fin de la séance (travail en trinôme). La topologie du réseau à installer est la suivante :
`
` Ubuntu Twinkle
Ubuntu Serveur Asterisk
Windows X-Lite
La machine Windows est celle qui héberge la machine virtuelle.
Installation Pour installer "Asterisk" sous Ubuntu (ou Debian) : $apt-get install asterisk Pour vérifier le bon fonctionnement du serveur "Asterisk", utiliser la commande suivante : $/etc/init.d/asterisk stop $asterisk –vvvvc A la fin, une invite de commande doit apparaître dans le terminal : Asterisk Ready *CLI> Entrer la commande ″help″ pour afficher l’aide : *CLI>help Sur une autre machine Ubuntu, installer le softphone Twinkle $apt-get install twinkle Sur la machine windows, télécharger la version gratuite de X-Lite ou de SJphone : X-Lite : http://www.counterpath.com/x-lite.html SJphone : http://www.sjlabs.com/sjp.html PS : n’oublier pas d’installer ″Wireshark″ sur toutes les machines que vous utilisez. 1/3
Réseaux et Sécurité TP 6
Configuration Les fichiers de la configuration du serveur sont dans le répertoire ″/etc/asterisk″. Le fichier ″sip.conf″ permet la déclaration des téléphones. Pour déclarer 2 téléphones : Twinkle et XLite, il faut également ajouter les lignes suivantes à la suite à la fin du fichier ″sip.conf″: [user1] ; nom du téléphone type=friend ; type de téléphone host=dynamic ; enregistrement dynamique de ; l’adresse IP du téléphone username=user1 ; nom d'utilisateur associé secret=user1Password ; mot de passe callerid="user1" ; association user1 et num de tel mailbox=user1@IP_Aster ; Adresse de la boîte vocale [user2] type=friend host=dynamic username=user2 secret=passwduser2 callerid="user2" mailbox=user2@IP_Asterisk Pour forcer le serveur "Asterisk" à lire le fichier de configuration, utiliser la commande suivante: *CLI>sip reload Le fichier "extensions.conf" permet d'associer à chaque numéro de téléphone une suite de commandes. Pour ce faire, il suffit d'ajouter les deux lignes suivantes à la fin de ce fichier (plus exactement à la fin du contexte [default]) : exten => 301,1,Dial(SIP/user1,10,tr) exten => 301,2,Voicemail(301) ;pour la messagerie vocale exten => 302,1,Dial(SIP/user2,10,tr) exten => 302,1,Voicemail(302) exten => 700,1,VoicemailMain Editer le fichier ″/etc/asterisk/voicemail.conf″, et ajouter les deux lignes suivantes: 301 => 301,user1,user1@localhost,,|attach=no|review=yes 302=> 302,user2,user2@localhost,,|attach=no|review=yes Explication : attach=no : cette option permet de ne pas envoyer le message en pièce jointe du mail. review=yes : cette option permet à la personne qui laisse un message de relire ou de réenregistrer son message. Vous pouvez également modifier le texte du mail, qui vous avertit de l'arrivée d'un message vocale, afin de le mettre en français. Pour cela modifiez les paramètres emailsubject et emailbody dans le fichier voicemail.conf Ainsi le téléphone de "user1" pourra être appelé en composant le 301, et au bout de 10 secondes, l'appel passe sur la boite vocale. Pour qu’user2 puisse consulter sa messagerie, il pourra appeler le numéro 700 et il compose son login à 302 et mot de passe à 302.
2/3
Réseaux et Sécurité TP 6 Redémarrer Asterisk Afin que vos modifications sur la configuration d’Asterisk soient effectives, il vous faut redémarrer les services d’Asterisk que vous avez modifiés. Pour cela, dans le terminal de votre serveur, entrez la ligne suivante pour entrer dans la console d'Astersik: $asterisk -r Entrez par la suite les lignes suivantes afin de redémarrer chaque service qui a subi des modifications : *CLI> sip reload *CLI> module reload app_voicemail.so *CLI> dialplan reload Voilà, le serveur Asterisk est maintenant prêt à enregistrer les deux clients Twinkle et X-Lite qui disposent respectivement des numéros de ligne 301 et 302.
Questions 1) Quelle est la commande qui permet d’afficher les clients inscrits sous Asterisk ? 2) Utiliser Wireshark sur une des machines cliente pour capturer toutes les conversations du client avec le serveur durant l’enregistrement, et durant l’appel avec l’autre client (softphone). Donnez les noms des messages échangés avec le serveur Asterisk lors d’une inscription (enregistrement). Est-ce que ces messages sont chiffrés ? pouvezvous déduire le login et le mot de passe à partir du Wireshark ? 3) Pouvez-vous retrouver les messages vu dans le cours de VoIP (REGISTER, INVITE, etc.), pour l’établissement d’une session ? 4) Quel est le protocole de transport utilisé par SIP (TCP ou UDP) ? 5) Quel est le numéro de port utilisé par le protocole SIP ? 6) Quel est le mécanisme d’authentification utilisé (PAP ou CHAP) ? justifier votre réponse. 7) Donner les diagrammes de communications entre le client et le serveur Asterisk (Statistics => Flow Graph) 8) Après la fin de l’appel, rejouer et réécouter la conversation capturée par Wireshark (Telephony => VoIP calls …=> Player => Decode => Play) 9) Enregistrer la conversion audio (Telephony => RTP=> Show all Streams => Analyse => Save Payload …) sur votre machine pour la réécouter plus tard.
3/3