Vous ne supportez pas de devoir stocker les secrets de vos utilisateurs en clair dans vos fichiers sip.conf sous asterisk?

Pas de soucis, il est en effet possible de stocker les secrets au format MD5. En effet, SIP prévoit que l’on puisse effectuer une authentification de type Digest similaire à celle présente dans HTTP.

Cependant, n’oubliez pas de bien tester la compatibilité avec les clients de votre parc avant d’effectuer un déploiement complet: bien que l’authentification par Digest soit présente dans la spécification de SIP (RFC 3261), on n’est jamais à l’abri de surprises.

Dans un premier temps, il faut définir le realm qui va servir pendant l’authentification. Le realm doit être globalement unique, selon la RFC 3261. Pour la suite de l’exemple, je vais supposer que le realm est siptests.

Dans le fichier sip.conf, allez dans la section [global] décommentez et éditez (ou ajoutez le cas échéant) la ligne avec realm pour y mettre le realm que vous avez choisi:

[global]
...
realm=siptests

Ensuite, rendez vous dans la section où sont stockés vos utilisateurs.

Une entrée d’utilisateur va ressembler plus ou moins à la structure proposée ci-dessous:

[1337](default-phone)
    callerid=Leet user <1337>
    mailbox=1337
    secret=pastressecret
    username=1337

La forme en clair du hash à stocker est la suivante: <username>:<realm>:<secret> soit pour mon cas d’exemple 1337:siptests:pastressecret . Sous linux, vous pouvez générer très simplement le hash grace à la commande suivante:

$ echo -n "1337:siptests:pastressecret" | md5sum
bac2cb492e4eb751544add8b5a2a3d24  -
$

Veillez bien à ne pas oublier le paramètre -n pour ne pas ajouter un retour à la ligne. Dans le cas contraire, le hash calculé serait invalide.

Maintentant que vous avez votre hash, supprimez la ligne secret du profil et ajoutez la ligne md5secret comme suit:

[1337](default-phone)
    callerid=Leet user <1337>
    mailbox=1337
    md5secret=bac2cb492e4eb751544add8b5a2a3d24
    username=1337

Il ne vous reste plus qu’a recharger asterisk et vérifier que le client se connecte bien.

Publicités