PDA

Voir la version complète : Trixbox + TLS + SRTP



kmta
07/04/2011, 10h54
Bonjour,

J'ai installé la version 1.8.3.2 sur la distribution Trixbox 2.8. J'ai tous reconfiguré comme précédement (extensions, TLS, enregistrement OVH ect...)

Comme cette version d'Astérisk gère en natif le SRTP, j'ai décidé de le configurer avec les différentes informations que j'ai pu trouvé :

http://www.remiphilippe.fr/2011/01/16/asterisk-srtp-with-1-8/

http://blog.voz-ip.com/2011/tlssrtp-en-asterisk-1-8/

http://forum.snom.com/index.php?showtopic=5013


Mais dans les logs de mon serveur j'ai ce message d'erreur lorsque je tente d'établir la communication entre 2 softphones PhonerLite 1.86 qui gère le TLS et le SRTP :



We are requesting SRTP, but they responded without it



Le module res_srtp.so et bien installé et chargé. Voici ma config :

SIP.conf


[general]
encryption=yes

[dans mes comptes sip]
port=5129 (que j'ai configuré TLS fonctionne)
transport=tls,udp
encryption=yes


extensions.conf


[local]
(différents tests avec l'agent echo)
;exten => s,1,Set{_SIP_SRTP_SDES=1}
;exten => s,2,Set{_SIPSRTP=1}


exten => 100,1,Set(_SIPSRTP_CRYPTO=enable)
exten => 100,2,Dial(SIP/${EXTEN})

exten => 101,1,Set(_SIPSRTP_CRYPTO=enable)
exten => 101,2,Dial(SIP/${EXTEN})

exten => 600,1,NoOp( start)
exten => 600,n,NOOp( SECURE SIGNALING ${CHANNEL(secure_signaling)})
exten => 600,n,NOOp( SECURE media ${CHANNEL(secure_media)})
exten => 600,n,Answer()
exten => 600,n,Playback(demo-echotest)
exten => 600,n,Echo()



Est-ce que quelqu'un à déjà rencontré ce problème ?

Merci

kmta
11/04/2011, 11h40
J'ai réussi à mettre en place le cryptage de mes appels avec SRTP mais seulement en désactivant le cryptage TLS des paquets SIP de signalisation.

La conbinaison des deux (TLS+SRTP) me mets toujours l'erreur citée ci-dessus. Les appels entre sofphones et les appels entrants sont bien cryptés. Pour les appels sortant, il faut que le téléphone de l'appelé gère le SRTP, sinon communication impossible.

Avec une capture de trame Wireshark, l'appel est bien détecté mais impossible de reconstituer la conversation.

voici mes fichiers extensions.conf et SIP.conf :



exten => 10X,1,Set(_SIP_SRTP_SDES=1)
exten => 10X,2,Set(_SIPSRTP=1)
exten => 10X,3,Set(_SIPSRTP_CRYPTO=enable)
exten => 10X,4,Dial(SIP/${EXTEN})


exten => 100,1,Dial(SIP/100)
exten => 101,1,Dial(SIP/101)
exten => 102,1,Dial(SIP/102)
exten => _9.,1,Dial(SIP/${EXTEN:1}@XXXXXX) ; pour passer des appels sortants






[general]
...

tlsenable=yes
tlsbindaddr=adresse d'astérisk:port tls
tlsprivatekey=/var/lib/asterisk/keys/key.pem
tlscertfile=/var/lib/asterisk/keys/astcertssl.pem
tlscafile=/var/lib/asterisk/keys/certificate.pem

tlsclientmethod=tlsv1

et toutes mes extensions :

...
transport=tls,udp
encryption=yes





Voyez-vous où se trouve le probleme quand j'active le TLS et SRTP ?

merci

kmta
11/04/2011, 17h50
Après beaucoup de recherches, j'ai trouvé la solution mais pourquoi sa marche depuis je ne saurai dire :pt1cable:

Dans le sofphone que j'utilise (phonerLite 1.86), il y a l'option SAVP (secure audio video profile) qui est accessible une fois le STRP activé. J'ai donc tenté de l'activer et de retenter mes tests et sa marche.

Appels entrants/sortants et entre softphones tout est cryptés et les appels sont indétectables par wireshark.

Ma configuration de mon astérisk était bonne en fin de compte. Pourquoi SAVP fait marcher le TLS+SRTP ? je ne sais pas très peu d'informations sur le sujet.

Si quelqu'un en aurait je suis preneur pour compléter mes connaissances en Astérisk merci.

En tout cas le problème est résolu.

fouz
08/07/2011, 12h35
Salut

je veux securiser mon VOIP à l'aide du TLS et SRTP , j'utilise un server Elastix (version beta) avec asterisk 1.8 et pour les sophtfot j'utiluse les phonerlite (beta9.1).

j'arrive a faire des appells entre les phonerlite avec UDP mais lorsque je passe au TLS ça fonctione plus .

voila ma démarche :

j'ai installé le fichier res_srtp à l'aide de ce doc ( http://www.remiphilippe.fr/2011/01/16/asterisk-srtp-with-1-8/ )

dans sip.conf j'ai ajouté :

[general]

tlsenable=yes
tlsbindaddr=192.168.3.126:5061
tlsprivatekey=/usr/lib/openssl/pki/server.key
tlscertfile=/usr/lib/openssl/pki/server.pem
tlscafile=/usr/lib/openssl/pki/ca.pem
tlscipher=ALL
tlsclientmethod=tlsv1

dans extensions.conf:


[internal]
exten => 10X,1,Set(_SIP_SRTP_SDES=1)
exten => 10X,2,Set(_SIPSRTP=1)
exten => 10X,3,Set(_SIPSRTP_CRYPTO=enable)
exten => 10X,4,Dial(SIP/${EXTEN})


exten => 100,1,Dial(SIP/100)
exten => 101,1,Dial(SIP/101)
exten => 102,1,Dial(SIP/102)
exten => _9.,1,Dial(SIP/${EXTEN:1}@XXXXXX)

mes extensions sont :


[100]
deny=0.0.0.0/0.0.0.0
secret=100
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
type=friend
nat=no
port=5061
encryption=yes
transport=tls,udp
qualify=yes
callgroup=
pickupgroup=
dial=SIP/100
mailbox=100@device
permit=0.0.0.0/0.0.0.0
callerid=device <100>
callcounter=yes
faxdetect=no

[101]
deny=0.0.0.0/0.0.0.0
secret=101
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
type=friend
nat=yes
port=5061
encryption=yes
transport=tls,udp
qualify=yes
callgroup=
pickupgroup=
dial=SIP/101
mailbox=101@device
permit=0.0.0.0/0.0.0.0
callerid=device <101>
callcounter=yes
faxdetect=no


pour le debug du phonerlite :

10:26:33,187: Connect Request: 30 00 01 00 02 80 0C 00 01 00 00 00 01 00 04 80 31 30 31 05 00 80 31 30 30 00 00 09 01 00 01 00 00 00 00 00 00 00 00 02 91 81 05 00 00 00 00 00
10:26:33,187: Connect Request: 100 to 101
10:26:33,196: Connect Confirm: 0E 00 01 00 02 81 0C 00 01 01 00 00 00 00
10:26:33,196: Connect Confirm
-------------------------------------------
10:26:33,212: R: open UDP port (RTP): 5062

-------------------------------------------
10:26:33,213: R: open UDP port (RTCP): 5063

-------------------------------------------
10:26:33,215: T: 192.168.3.126:5061 (TLS)
INVITE sip:101@192.168.3.126;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.3.123:51252;branch=z9hG4bK8092796bbaa7e011 b7f6005056c00001;rport;alias
From: "PhonerLite" <sip:100@192.168.3.126>;tag=2777164675
To: <sip:101@192.168.3.126;transport=tls>
Call-ID: 8092796B-BAA7-E011-B7F5-005056C00001@192.168.3.123
CSeq: 7 INVITE
Contact: <sip:100@192.168.3.123:51252;transport=tls>
Content-Type: application/sdp
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Max-Forwards: 70
Supported: 100rel, replaces, from-change
User-Agent: SIPPER for PhonerLite
P-Preferred-Identity: <sip:100@192.168.3.126>
Content-Length: 504

v=0
o=- 789765595 0 IN IP4 192.168.3.123
s=SIPPER for PhonerLite
c=IN IP4 192.168.3.123
t=0 0
m=audio 5062 RTP/SAVP 8 0 2 3 97 110 111 9 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:3 GSM/8000
a=rtpmap:97 iLBC/8000
a=rtpmap:110 speex/8000
a=rtpmap:111 speex/16000
a=rtpmap:9 G722/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:QAjWTzwlL3KmBZ30sAXL3cB/Ja/GtbKAXW1ipbcx
a=encryption:optional
a=sendrecv

-------------------------------------------
10:26:33,227: R: 192.168.3.126:5061 (TLS)
SIP/2.0 401 Unauthorized
Via: SIP/2.0/TLS 192.168.3.123:51252;branch=z9hG4bK80a6184abaa7e011 b7f3005056c00001;alias;received=192.168.3.123;rpor t=51252
From: "PhonerLite" <sip:100@192.168.3.126>;tag=290672552
To: <sip:100@192.168.3.126>;tag=as5bf2d662
Call-ID: 8079E748-BAA7-E011-B7F0-005056C00001@192.168.3.123
CSeq: 5 SUBSCRIBE
Server: FPBX-2.8.0(1.8.4)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="20bcf4b5", stale=true
Content-Length: 0


10:27:05,239: Disconnect Indication: 0E 00 01 00 04 82 60 00 01 01 00 00 92 38
10:27:05,240: Disconnect Indication: 18:No user responding
10:27:05,243: Disconnect Response: 0C 00 01 00 04 83 60 00 01 01 00 00
10:27:05,243: Disconnect Response
-------------------------------------------
10:27:05,240: T: 192.168.3.123:5061 (TLS)
ACK sip:101@192.168.3.123:5061;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.3.123:51252;branch=z9hG4bK80628c7ebaa7e011 b7f7005056c00001;rport;alias
From: "PhonerLite" <sip:100@192.168.3.126>;tag=2777164675
To: <sip:101@192.168.3.126;transport=tls>;tag=80628c7ebaa7e011b7f6005056c00001
Call-ID: 8092796B-BAA7-E011-B7F5-005056C00001@192.168.3.123
CSeq: 7 ACK
Contact: <sip:100@192.168.3.123:51252;transport=tls>
Max-Forwards: 70
Content-Length: 0


-------------------------------------------
10:27:05,247: R: close UDP port (RTP): 5062

-------------------------------------------
10:27:05,247: R: close UDP port (RTCP): 5063

-------------------------------------------
10:27:05,309: R: 192.168.3.126:5061 (TLS)
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.3.123:51252;branch=z9hG4bK80a6184abaa7e011 b7f4005056c00001;alias;received=192.168.3.123;rpor t=51252
From: "PhonerLite" <sip:100@192.168.3.126>;tag=290672552
To: <sip:100@192.168.3.126>;tag=as5bf2d662
Call-ID: 8079E748-BAA7-E011-B7F0-005056C00001@192.168.3.123
CSeq: 6 SUBSCRIBE
Server: FPBX-2.8.0(1.8.4)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Expires: 1800
Contact: <sip:100@192.168.3.126:5061;transport=TLS>;expires=1800
Content-Length: 0


merci d'avance :gratgrat:

fouz
11/07/2011, 13h24
salut

j'ai le meme probleme avec elastix , tout fonctionne bien , mais quand je lance l'appel d'un phonerlite vers un autre phonerlite il me donne rien .


je travaille sur elastix beta , avec asterisk 1.8

voila ce que j'ai fait
j'ai installé libsrtp et le fichier res_srtp.so est bien activé

j'ai généré toutes les cert necessaires

dans sip.conf j'ai ajouté:

[general]

tlsenable=yes
tlsbindaddr=192.168.3.126:5061
tlsprivatekey=/usr/lib/openssl/pki/server.key
tlscertfile=/usr/lib/openssl/pki/server.pem
tlscafile=/usr/lib/openssl/pki/ca.pem
tlscipher=ALL
tlsclientmethod=tlsv3

dans exten.conf : (en bas du fichier )

[local]


exten => 10X,1,Set(_SIPSRTP_CRYPTO=enable)
exten => 10X,2,Dial(SIP/${EXTEN})

exten => 10X,1,Set(_SIPSRTP_CRYPTO=enable)
exten => 10X,2,Dial(SIP/${EXTEN})

exten => 600,1,NoOp( start)
exten => 600,n,NOOp( SECURE SIGNALING ${CHANNEL(secure_signaling)})
exten => 600,n,NOOp( SECURE media ${CHANNEL(secure_media)})
exten => 600,n,Answer()
exten => 600,n,Playback(demo-echotest)
exten => 600,n,Echo()


mes extensions:
[100]
deny=0.0.0.0/0.0.0.0
secret=100
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
type=friend
nat=no
port=5060
encryption=yes
transport=tls,udp
port=5061
qualify=yes
callgroup=
pickupgroup=
dial=SIP/100
mailbox=100@device
permit=0.0.0.0/0.0.0.0
callerid=device <100>
callcounter=yes
faxdetect=no

[101]
deny=0.0.0.0/0.0.0.0
secret=101
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
type=friend
nat=yes
port=5060
port=5061
encryption=yes
transport=tls,udp
qualify=yes
callgroup=
pickupgroup=
dial=SIP/101
mailbox=101@device
permit=0.0.0.0/0.0.0.0
callerid=device <101>
callcounter=yes
faxdetect=no


et voila le debug qui me donne le phonerlite quand je lance un appel

12:33:38,860: Connect Request: 30 00 01 00 02 80 5C 09 01 00 00 00 01 00 04 80 31 30 31 05 00 80 31 30 30 00 00 09 01 00 01 00 00 00 00 00 00 00 00 02 91 81 05 00 00 00 00 00
12:33:38,860: Connect Request: 100 to 101
12:33:38,876: Connect Confirm: 0E 00 01 00 02 81 5C 09 01 01 00 00 00 00
12:33:38,876: Connect Confirm
-------------------------------------------
12:33:39,267: R: open UDP port (RTP): 5063

-------------------------------------------
12:33:39,267: R: open UDP port (RTCP): 5064

-------------------------------------------
12:33:39,282: T: 192.168.3.126:5061 (TLS)
INVITE sip:101@192.168.3.126;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.3.122:1213;branch=z9hG4bK0015cd491faae011a ee6000c297d5528;rport;alias
From: "100" <sip:100@192.168.3.126>;tag=196537779
To: <sip:101@192.168.3.126;transport=tls>
Call-ID: 0015CD49-1FAA-E011-AEE5-000C297D5528@192.168.3.122
CSeq: 7 INVITE
Contact: <sip:100@192.168.3.122:1213;transport=tls>
Content-Type: application/sdp
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Max-Forwards: 70
Supported: 100rel, replaces, from-change
User-Agent: SIPPER for PhonerLite
P-Preferred-Identity: <sip:100@192.168.3.126>
Content-Length: 505

v=0
o=- 3207015708 0 IN IP4 192.168.3.122
s=SIPPER for PhonerLite
c=IN IP4 192.168.3.122
t=0 0
m=audio 5063 RTP/SAVP 8 0 2 3 97 110 111 9 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:3 GSM/8000
a=rtpmap:97 iLBC/8000
a=rtpmap:110 speex/8000
a=rtpmap:111 speex/16000
a=rtpmap:9 G722/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:a755cuh7q1axffyfX4Ps8O2mLa11UX+FIQMJCsOb
a=encryption:optional
a=sendrecv

-------------------------------------------
12:33:39,282: R: 192.168.3.126:5061 (TLS)
SIP/2.0 401 Unauthorized
Via: SIP/2.0/TLS 192.168.3.122:1213;branch=z9hG4bK00b3bb171faae011a ee2000c297d5528;alias;received=192.168.3.122;rport =1213
From: "100" <sip:100@192.168.3.126>;tag=257910827
To: <sip:100@192.168.3.126>;tag=as4a0c2e1f
Call-ID: 80EFF115-1FAA-E011-AEDF-000C297D5528@192.168.3.122
CSeq: 5 SUBSCRIBE
Server: FPBX-2.8.0(1.8.4)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="30e66be0", stale=true
Content-Length: 0


12:34:11,298: Disconnect Indication: 0E 00 01 00 04 82 5E 00 01 01 00 00 92 38
12:34:11,298: Disconnect Indication: 18:No user responding
12:34:11,298: Disconnect Response: 0C 00 01 00 04 83 5E 00 01 01 00 00
12:34:11,298: Disconnect Response
-------------------------------------------
12:34:11,313: T: 192.168.3.122:5062 (TLS)
ACK sip:101@192.168.3.122:5062;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.3.122:1213;branch=z9hG4bK807b785d1faae011a ee7000c297d5528;rport;alias
From: "100" <sip:100@192.168.3.126>;tag=196537779
To: <sip:101@192.168.3.126;transport=tls>;tag=807b785d1faae011aee6000c297d5528
Call-ID: 0015CD49-1FAA-E011-AEE5-000C297D5528@192.168.3.122
CSeq: 7 ACK
Contact: <sip:100@192.168.3.122:1213;transport=tls>
Max-Forwards: 70
Content-Length: 0


-------------------------------------------
12:34:11,313: R: close UDP port (RTP): 5063

-------------------------------------------
12:34:11,329: R: close UDP port (RTCP): 5064

-------------------------------------------
12:34:11,360: R: 192.168.3.126:5061 (TLS)
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.3.122:1213;branch=z9hG4bK00b3bb171faae011a ee3000c297d5528;alias;received=192.168.3.122;rport =1213
From: "100" <sip:100@192.168.3.126>;tag=257910827
To: <sip:100@192.168.3.126>;tag=as4a0c2e1f
Call-ID: 80EFF115-1FAA-E011-AEDF-000C297D5528@192.168.3.122
CSeq: 6 SUBSCRIBE
Server: FPBX-2.8.0(1.8.4)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Expires: 1800
Contact: <sip:100@192.168.3.126:5061;transport=TLS>;expires=1800
Content-Length: 0


qlq'un peut m'aider svp
:gratgrat: