C eació d'un equip de segu e a
pe ime al pe VoIP mi jançan el
p oxy SIP OpenSIPS
TREBALL DE FI DE GRAU
Enginye ia de ecnologies i se eis de
elecomunicació
Menció de Sis emes Telemà ics
T eball eali za pe :
Es ela F egola Esc ibano
Amb la col·labo ació
del equip ècnic de
l’emp esa
QUAREA ITC
Managemen & Consul i
P ime amen ull dona les g àcies als co-di ec o s d’aques p ojec e, San i An on, de
l’emp esa Qua ea, i Luis J. de la C uz Llopis, del depa amen de Telemà ica de l’Escola
Tècnica Supe io d'Enginye ia de Telecomunicació de Ba celona (ETSETB) de la
Uni e si a Poli ècnica de Ca alunya. Ag ai -los que hagin p oposa aques a idea com a
p ojec e i que hagin comp a amb mi pe du -lo a e me.
Pe la se a paciència i ajuda en e mes ècnics a o el equip de Qua ea ITC
Managemen & Consul ing.
Finalmen , ag ai a amilia s i amics el seu supo a l’ho a de desen olupa aques
p ojec e.
AGRAÏMENTS
4
HISTORIAL DE REVISIÓ
Re isió
Da a
P opòsi
0
3/12/2018
C eació del documen
1
10/01/2019
Re isió del documen
2
18/01/2019
Ap o ació del documen
LLISTAT DE DISTRIBUCIÓ DEL DOCUMENT
Nom
e-mail
Es ela F egola Esc ibano
es elallei[email p o ec ed]
Luis J. de la C uz Llopis
luis.delac [email protected]
Esc i pe :
Re isa i ap o a pe :
Da a
3/12/2018
Da a
18/01/2019
Nom
Es ela F egola
Nom
Luis J. de la C uz Llopis
Posició
Au o a del p ojec e
Posició
Supe iso del p ojec e
5
INDEX
1. INTRODUCCIÓ ................................................................................................................... 7
2. OBJECTIUS ........................................................................................................................ 8
3. CARACTERISTIQUES BASIQUES DEL PROTOCOL SIP........................................ 9
3.1. CONCEPTES GENERALS ........................................................................................... 9
3.2. TIPUS DE MISSATGE .............................................................................................. 9
3.3. PARAMETRES BASICS DE LA TRAMA SIP ..................................................... 10
3.4. TIPUS DE ELEMENTS QUE INTERVENEN EN LA COMUNICACIÓ ............ 11
4. EINA UTILITZADA PER LA IMPLEMENTACIÓ ........................................................ 12
4.1. INTRODUCCIÓ DE L’EINA .................................................................................... 13
4.2. FUNCIONAMENT .................................................................................................... 13
5. DEFINICIÓ DETALLADA DEL ESCENARI BASIC A SOLUCIONAR ................... 14
5.1. POSIBLES SOLUCIONS PER RESOLDRE LA NECESSITAT BASICA ...... 14
5.2. ESPECIFICACIÓNS TECNIQUES DE CADA SOLUCIÓ PROPOSADA ...... 16
5.3. SIMULACIÓ REALITZADA .................................................................................... 23
5.4. RESULTATS OBTINGUTS .................................................................................... 24
5.5. ANALISIS DELS RESULTATS ............................................................................. 31
6. SEGURETAT A NIVELL IP ............................................................................................ 31
6.1. CARACTERISTIEUES DEL MODUL TOPOLOGY HIDEN .............................. 31
6.2. ESPECIFICACIÓS TECNIQUES DE LA IMPLEMENTACIÓ ........................... 32
6.3. ANALISIS DELS RESULTATS OBTINGUTS ..................................................... 32
7. ENCRIPTACIÓ MITJANÇANT EL PROTOCOL TLS ................................................ 32
7.1. ESPECIFICACIÓ TECNICA DE L’APLICACIÓ DEL PROTOCOL EN
OPENSIPS ............................................................................................................................ 32
7.1.1. CARACTERISTIQUES DELS MODULS PROTO_TLS ............................. 33
7.1.2. ESPECIFICACIONS IMPLEMENTACIÓ PROTOCOL TLS ..................... 33
7.1.3. ANALISIS DELS RESULTATS OBTINGUTS ............................................. 34
8. IMPLEMENTACIÓ SIP PROXY A LA RASPBERRY PI 3 ....................................... 36
8.1. PROBLEMES AMB LA VERSIO 2.4 OPENSIPS ............................................... 37
8.2. PROBLEMES CPU .................................................................................................. 37
9. CONCLUSIÓ ..................................................................................................................... 38
10. BIBLIOGRAFIA I REFERÈNCIES ............................................................................ 39
6
11 ANNEX ........................................................................................................................... 40
11.1 INSTAL·LACIÓ A LA RASPBERRY PI 3 ............................................................ 40
11.1.1 INSTAL·LACIÓ SISTEMA OPERATIU (Cen OS 7) .................................. 40
11.1.2 INSTAL·LACIÓ OPENSIPS ........................................................................... 40
11.2 EXEMPLE SCRIPT DE CONFIGURACIÓ ........................................................... 42
7
1. INTRODUCCIÓ
Aques p ojec e ha es a p oposa pe l’equip ècnic de l’emp esa QUAREA ITC
Managemen & Consul i, i ha es a supe isa pe San i An on, i ula en Enginye ia
Supe io en Telecomunicacions.
L’objec iu p incipal del p ojec e és desen olupa un equip de segu e a pe ime al pe la
ele onia en VoIP (Voice o e IP) amb l’ajuda d’un SIP p oxy, el qual pe me à augmen a
el ni ell segu e a de la xa xa de VoIP. Pe al de desen olupa el p oxy he u ili za el
ecu s openSIPS, un Open Sou ce pe sis emes GNU/Linux, i que he implemen a en
una Raspbe y Pi 3.
L’emp esa comp a amb di e en s clien s, els quals enen un se ido As e isk i ual
online, al cloud, i els e minals es an si ua s a les o icines en la xa xa local (LAN).
Aques a cons a únicamen d’un ou e com elemen de p o ecció. El p oblema és que el
ou e és un elemen de ni ell dos i el p o ocol SIP (Session Ini ia ion P o ocol) u ili za
pe la ele onia IP, és de ni ell qua e (Ni ell de Sessió). En conseqüència, el ou e no
e isa la ama SIP del paque .
Cada elè on u ili za un po di e en del ou e pe es abli connexió amb el se ido
p incipal, el qual s’hau à de man eni obe du an un g an pe íode de emps, ja que el
se ido p incipal po en ia in o mació en qualse ol momen . Pe e i a aques
p oblema si ua em el p oxy en e el ou e i els elè ons, de mane a que qualse ol paque
SIP en ia pe un elè on o des de la xa xa publica hau à de se p ocessa pel p oxy.
D’aques a mane a, com que se à el p oxy qui en ia à els paque s cap al se ido , el
ou e únicamen hau à d’ob i un dels po s.
Una al a si uació c í ica so geix quan un e minal en ia un paque al se ido p incipal.
En aques paque hi ha in o mació que un hacke pod ia u ili za pe e -ne un ús
audulen . La unció p incipal del p oxy és il a els paque s SIP pe pe me e únicamen
els que inguin pe o igen del se ido p incipal i emmasca a la in o mació dels e minals
(domini, po , e c.) connec a s a la xa xa in e na.
La idea del p ojec e és es abli es ni ells de segu e a , pe què un usua i ho pugui
con igu a segons les se es necessi a s. Hem de ind e en comp e que més segu e a
suposa un augmen dels ecu sos del p oxy. El p ime ni ell de segu e a , és e i a que
el ou e ob i un po pe cada un dels elè ons in e ns. En el segon ni ell, emmasca a em
la in o mació del paque i en el úl im ni ell el p oxy enc ip a à el paque mi jançan el
p o ocol TLS (T anspo Laye Secu i y).
8
2. OBJECTIUS
L’objec iu p incipal d’aques p ojec e és p o egi i ga an i la segu e a dins una xa xa
local (LAN), de eu IP, que només es à compos a pe un ou e com a elemen de
segu e a . Pe e -ho, dissenya é i implemen a é un SIP p oxy mi jançan openSIPS.
Pe al de compli aques objec iu, el p oxy que és ol desen olupa ha de compli
els següen s equisi s:
1) Fil a els paque s SIP de la xa xa local de ele onia IP. El p oxy solamen ha de
pe me e encamina aquells paque s que inguin com a o igen el se ido
p incipal o els elè ons SIP egis a con a el se ido p incipal.
2) Emmasca a el domini i el po de la ama SIP dels paque s que s’o iginin en els
e minals.
3) El p oxy hau à de se capaç d’enc ip a i desenc ip a els paque s u ili zan el
p o ocol TLS.
Un cop dissenya i desen olupa el p oxy, pe al d’adap a -lo a la xa xa, u ili za é una
Raspbe y Pi. Així doncs, l’úl im objec iu del p ojec e se à ins al·la el sis ema ope a iu
(Cen OS 7) i el so wa e openSIPS ( e sió 2.3) a la Raspbe y Pi 3.
SERVER
Figu a 1: Esquema del p oblema
SIP PROXY SEVER
Figu a 2: Esquema de la solució mi jançan un SIP P oxy
9
3. CARACTERISTIQUES BASIQUES DEL PROTOCOL SIP
3.1. CONCEPTES GENERALS
SIP (Session Ini ia ion P o ocol) és un p o ocol de senyali zació u ili za
majo i à iamen pe Tele onia IP, que a se desen olupa pe el IETF (RFC 3261) [1] i
es anspo a pel po 5060 en UDP o TCP.
La comunicació SIP es eali za en e “Usua is SIP” egis a s con a ”Se ido s de
Regis e”, ambé conegu s com “SIP se e ” i “SIP P oxy”. Una egada que el se ido
e gua dada la locali zació de l’usua i, aques pod à es abli comunicació amb els al es
usua is.
3.2. TIPUS DE MISSATGE
El p o ocol SIP cons a de di e en s missa ges, els dos bàsics pe es abli
comunicació són el REGISTER i INVITE. El p ime ipus pe me al se ido locali za
l’usua i, el qual decideix egis a -se con a el se ido en ian un paque del ipus
REGISTRE. D’aques a mane a in o ma de la se a locali zació al se ido , i si aques
espon amb un 200 OK, old à di que la locali zació s’hau à gua da co ec amen .
Pe al a banda enim l’es ablimen d’una comunicació, pe la qual s’u ili zen
missa ges del ipus INVITE. Si el se ido con i ma la sol·lici ud de comunicació, en ia à
un 200 OK al clien , i en cas con a i en ia à un CANCEL. Si un dels usua is decideix
inali za la comunicació una egada es able a, en ia un BYE, el al e usua i espond à
un 200 OK i la ucada inali za à . A la igu a es mos a un exemple del lux d’una ucada
en e dos usua is egis a s con a el seu espec iu p oxy.
Usua i 1 P oxy 1
INVITE
Usua i 2P oxy 2
INVITE
INVITE
100 T ying
100 T ying
180 Ringing
180 Ringing
180 Ringing 200 OK
200 OK
200 OK
ACK
BYE
200 OK
Media Session (RTP)
Figu a 3: Exemple lux de ucada
16
- Con ac h o ling mode: Pe me edui les axes de ansi en e el p oxy i el
se e .
- AOR h o ling mode: En aques mode el p oxy emmaga zema o es les dades
del con ac e. En cas de eali za una ucada en e dos con ac es
emmaga zema s a la se a memò ia la ucada no se à en iada al se ido
p incipal, el ma eix p oxy la p ocessa à
5.2. ESPECIFICACIÓNS TECNIQUES DE CADA SOLUCIÓ PROPOSADA
A con inuació de alla em les especi icacions ècniques de cada una de les solucions
p oposades.
1) Solució u ili zan sc ip gene a pe el ins al·lado d’openSIPS
En aques a con igu ació el p oxy gua da à la locali zació en memò ia u ili zan el
mòdul Regis a Module. Ens o e eix dos mè odes que ens se eixen pe gua da i
ex eu e la ubicació del elè on.
REGISTER
Quan l’usua i en ia un paque egis e, el p oxy desa la se a locali zació i een ia
el paque al següen se ido que es a indica en la ama SIP. Com el elè on ha
especi ica quin es el se ido de egis e, el p oxy nomes hau à de een ia el paque
cap al se ido p incipal, en el nos e cas és el se ido As e isk. A la igu a 5 és eu
cla amen que la ama SIP d’un paque que a del elè on (172.16.51.24) cap al p oxy
(172.16.54.39), el se ido As e isk (172.16.54.116) com el se ido de egis e. Una
egada el p oxy p ocessi aques paque a egi à la Via, al com s’explica en l’apa a 3.3,
pe què així el paque de espos a conegui la u a de e o n.
Figu a 10: T ama SIP, paque en ia a un elè on
17
INVITE
Com el elè on e con igu a com se ido de egis e el se ido As e isk, la se a u i
se à di e en a la domini del p oxy i pe lo an si ep un paque del ipus in i e l’ha de
een ia di ec amen al se ido As e isk.
U i = @IP
OpenSIPS
Me hod =
INVITE
Package elay
exi
REGISTER
Sa e loca ions
Package elay
FALSE
FALSE
TRUE
Figu a 11: Diag ama de lux REGISTRE i INVITE (Solució 1)
2) Solució implemen an un sc ip p opi
En aques cas o es les dades del elè on es gua da an a la aula, ao _de ails, de la
base de dades. Aques es dades se an necessà ies pe encamina els paque s SIP que
inguin com o igen el domini del se ido d’As e isk.
A con inuació de alla em el lux de cada un dels mè odes basics del p o ocol SIP.
REGISTER
Els paque s egis e ebu s des d’un elè on VoIP in e n de la xa xa del usua i,
s’hau an d’encamina cap el se ido As e isk, can ia em el pa àme e “Domain SIP
Reques URI” del paque SIP, pe el domini del se ido As e isk. Un cop can ia aques
pa àme e es een ia el paque cap al se ido .
Un cop can ia , es comp o a el alo Expi es del paque SIP. Aques ens indica els
segons que un elè on es à egis a al se ido , en cas que aques alo sigui igual a
ze o signi ica que és un “un egis e ”. Segons el ab ican aques alo po es a dins del
camp Con ac o en el camp Expi es encapsula .
S’han eali za p o es amb elè ons de les ma ques Yealink (T23G), Spec alink (IP
DECT Se e 6500), G ands eam i ambé amb so phones com Zoipe i X-Li e. En o s
aques casos el alo expi es es a a en un d’aques dos camps.
Un cop ob ingu aques alo , es comp o a que no sigui igual a ze o. Si el alo es igual
a ze o s’elimina à el con ac e de la aula (ao _de ails) i es een ia à el paque al As e isk.
En cas con a i, es een ia à el paque i s’espe a à una espos a del se ido . Un cop
ebem la espos a del se ido , cal e i ica que és un 200 OK, si és així es gua da à o
modi ica à el alo a la base de dades.
18
Domain SIP Reques =
@IP As e isk
Package elay
Package elay
exi
REGISTER
Expi es = 0 TRUE
FALSE
Wai eply package
DELETE Con ac
om ao _de ails
200 OK INSERT/UPDATE
Con ac
om ao _de ails
exi
TRUE
FALSE
Figu a 12: Diag ama Flux REGISTRE (Solució 2)
INVITE
El p ime pas és e i ica l’o igen del paque , es compa en el om domain amb el
domini del se ido p oxy. L’objec iu és de ec a quins paque s han es a o igina s des
de un dels elè ons egis a s al p oxy i quins p o enen d’un al e se ido . Aques
pa àme e ens p opo ciona el se ido d’o igen del paque , quan un elè on en ia un
in i e aques pa àme e es de ineix com:
<sip:use @se e domain; anspo =UDP/TCP>; ag=@ ag_ide
Alesho es, si compa em el domini del se e amb el del p oxy, sab em si aques paque
s’o igina en un dels elè ons egis a s con a el p oxy o si pe el con a i es ansme des
d’algun al e se ido . Si és el p ime cas, aques es een ia à cap al se ido As e isk,
en cas con a i es e isa à si exis eix en la base de dades i, si exis eix, es een ia à el
paque cap el elè on indica .
19
F om Domain =
@IP openSIPS
INVITE
Domain SIP Reques 's URI =
@IP As e isk Package elay
Domain SIP Reques URI =
@IP Phone
TRUE
FALSE
Figu a 13: Diag ama Flux INVITE (Solució 2)
Un cop es able a la ucada, openSIPS u ili za à les eines explicades an e io men .
OPTIONS
Els paque s op ions en ia s pe el se ido As e isk s’hau an de een ia cap als
elè ons. S’ha plan eja una solució pe què el openSIPS ges ioni la espos a que eb à
del elè on. Pe això, s’han de ini els següen s casos:
- El elè on es a locali zable, o es co ec e i con es a un 200 OK.
- E o quan es een ia el paque cap al elè on, el elè on no con es a pe lo qual
no es een ia à cap paque cap al As e isk. El se ido As e isk ani à in en an
en ian paque s ins que a ibi a un ce nume o de paque s, depend à de la
con igu ació d’aques . Alesho es el p oxy espond à quan l’es a del diàleg sigui
408 (Time ou ), se à lla o s quan elimina à la in o mació de la base de dades.
20
Exis DB
STATUS = 408
exi
OPTIONS
E o o send
package
Package elay o
Phone
DELETE Con ac
om ao _de ails exi
200 OK
Package elay o
As e isk
exi
TRUE
TRUE
TRUE
TRUE
FALSE
FALSE
FALSE
Figu a 14: Diag ama Flux OPTIONS (Solució 2)
PUBLISH,SUBSCRIBE I NOTIFY
Aques ipus de paque s se an ac a s igual que els paque s de es ablimen de
ucada, paque s ipus in i e.
Reques URI =
@IP openSIPS
PUBLISH|SUBSCRIBE|NOTIFY
Domain SIP Reques 's URI =
@IP As e isk Package elay
Domain SIP Reques URI =
@IP Phone
TRUE
FALSE
Add ia wi h iden i ie
Figu a 15: Diag ama PUBLISH, SUBSCRIBE i NOTIFY (Solució 2)
21
3) Solució u ili zan mòdul Mid-Regis a
Mid-Regis a cons a de di e en s mè odes que ens pe me an gua da la locali zació
i ex eu e-la d’una o ma simple:
- mid_ egis a _sa e("loca ion"): Pe me gua da la locali zació del elè on VoIP
a la memò ia del p oxy.
- mid_ egis a _lookup("loca ion"): Pe me ex eu e la locali zació del elè on
VoIP de la memò ia del p oxy. Re i na ue si oba l’usua i, alse en cas con a i.
A con inuació es de alla à el lux pe cada un dels mè odes basics del p o ocol SIP:
REGISTER
Igual que en la solució an e io , els paque s del ipus egis es s’hau an de een ia
cap al se ido , pe pode en ia el paque cap al se ido el p oxy can ia à el pa àme e
“Domain SIP Reques URI”.
REGISTER
mid_ egis a _sa e("loca ion")
exi
Package elay o
As e isk
Figu a 16: Diag ama Flux REGISTER (Solució 3)
INVITE
El SIP p oxy és un simple componen d’encaminamen , pe ò hi ha mol es
uncionali a s i se eis que eque eix que ingui coneixemen del diàleg. Pe això, la
solució que an implemen a els desen olupado s és a egi un camp en la ama
anomena ag. Això pe me a opensips iden i ica el diàleg. És una ca ac e ís ic mol ú il
quan es eali za una ucada, ja que aques s pa àme es agili zen la iden i icació de la
b anca del diàleg.
Un cop a egi s els pa àme es es p ocedeix a iden i ica l’o igen de la ucada, en la qual
es con emplen dos casos. Si e com a o igen el se ido As e isk, en aques cas es
comp o a si cons a en la memò ia, on el mòdul mid_ egis a gua da la in o mació. Si
l’usua i cons a en la memò ia alesho es el p oxy een ia à el paque al elè on. En el
segon cas l’o igen és di e en al se ido d’As e isk, el paque s’o igina en algun elè on,
alesho es és een ia à el paque cap al se ido .
22
INVITE
F om = @Domini
As e isk
mid_ egis a _lo
okup("loca ion") Domain SIP Reques 's
URI = @IP As e isk
exi
Package elay
Reply 404
No Found
TRUE
FALSE
TRUE
FALSE
Figu a 17: Diag ama Flux INVITE (Solució 3)
OPTIONS
Els paque s op ions en ia s pe el se ido As e isk hau an de se encamina s cap
als elè ons. En la igu a següen es mos a el lux del paque op ions. El p oxy comp o a
si exis eix en la se a memò ia en cas que een iï un 200 OK, en cas con a i e o na à
un 480.
OPTIONS
mid_ egis a _lo
okup("loca ion")
Reply 200 OK Reply 480
Reques Timeou
exi
FALSE TRUE
Figu a 18: Diag ama Flux OPTIONS (Solució 3)
23
PUBLISH, SUBSCRIBE I NOTIFY
El ac amen d’aques paque unciona igual que el op ions, amb l’única di e encia que
es e o na un paque espos a amb el codi 503 (Se eix no disponible)
PUBLISH|SUBSCRIBE |NOTIFY
mid_ egis a _lo
okup("loca ion")
Reply 200 OK Reply 503
Se ice Una ailable
exi
FALSE
TRUE
Figu a 19: Diag ama Flux PUBLISH, SUBSCRIBE i NOTIFY (Solució 3)
5.3. SIMULACIÓ REALITZADA
En les p ime es simulacions o es les p o es s’han eali za en un se ido i ual
p opo ciona pe l’emp esa, connec a a un se ido As e isk (A) i als di e en s elè ons.
La in aes uc u a comp a amb es elè ons di e en s, un Yealink (T23G), un e minal
inalàmb ic de la companyia Spec alink i un so phone. També hem c ea un al e
se ido As e isk (B), pe simula ucades en e el se ido A i el B mi jançan un SIP
T unk. En la igu a 15 es mos a la opologia de la xa xa.
As e isk B
openSIPS
VLAN 2:
172.16.50.131
VLAN 1:
172.16.51.24
As e isk A
VLAN 8
172.16.18.247
172.16.54.39
172.16.54.116
SIP TRUNK
Telè on SIP 1
Telè on SIP 2
Telè on SIP 3
TELÈFONS OFICINA SERVIDORS I TELÈFONS
LABORATORI
Figu a 20: Topologia del escena i de simulació
24
Les p o es eali zades són:
- Regis e
- T ucades en e ex ensions in e nes
- T ans e ència de ucada
- T ucades en an s i so in s pel SIP T unk
- Se ei de bús ia de eu, aques a p o a s’ha eali za pe e i ica el co ec e
uncionamen dels paque s del ipus no i y i subsc ibe.
5.4. RESULTATS OBTINGUTS
1) Solució u ili zan sc ip gene a pe el ins al·lado d’openSIPS
Aques a solució es a eali za a inicis del p ojec e i lla o s la IP assignada al p oxy
e a la 172.16.54.140.
REGISTRE
El p ime a eali za és con igu a el elè on SIP de al o ma que encamini els paque s
p ime pe el p oxy i desp és pe el se ido de egis es, el As e isk (172.16.54.116).
Pe això s’ha de con igu a com es mos a a la igu a 17 (si no es con igu a cap po
u ili za à el de de ec e del p o ocol SIP, 5060).
Una egada con igu a el elè on aques en ia el paque Regis e cap al p oxy, en la
igu a 16 es po eu e com emmaga zema la in o mació del e minal en memò ia. Una
egada ha gua da les dades en ia en el paque cap al se ido p incipal i aques
egis a el usua i.
Figu a 22 :Con igu ació ex ensió so phone (Zoipe 5)
Figu a 21: Ex ensions egis ades a OpenSIPS, is a consola
25
Un dels p oblemes d’aques a solució es que en cas de que el elè on ulgui anula el
egis e, el openSIPS no l’elimina de memò ia. Succeeix el ma eix quan l’usua i es
egis a amb una con asenya e ònia i el se ido espon amb un 401 Unau ho ized. El
se ido As e isk no el gua da, pe ò com el p oxy com no comp o a la con asenya, ja
que no és la se a unció i no ho olem, aques el gua da. En la igu a 18 es po eu e
com el se ido e o na un 401 al p oxy.
Figu a 23: Cap u a amb Wi esha k del paque REGISTRE i SUBSCRIBE en ia pe el elè on
En la igu a 18 ambé podem eu e que quan el elè on en ia un subsc ibe el se ido
e o na un 403 “Rely o bidden”. Això succeeix pe què aques a solució és a plan eja
pe eali za les p ime es p o es amb openSIPS i com s’explica à en les conclusions no
e a el objec iu con igu a els elè ons d’aques a o ma. En les al es solucions això s’ha
ingu en comp e i el p oxy encamina co ec amen els paque s d’aque ipus. En els
següen s pun s queda de alla .
TRUCADES ENTRE EXTENSIONS
En la cap u a de la igu a s’obse a una ucada de l’ex ensió 1005
(172.16.51.24) cap a la 1001 (172.16.50.131). Es eu com el à ic es encamina
co ec amen pe el p oxy.
32
ú il si pe exemple ens dos SIP p oxy desen olupa s en openSIPS, com s’han codi ica
amb el ma eix algo i me els dos p oxy pod an descodi ica el domini del Con ac .
Els mè odes a des aca són:
- opology_hiding(): Codi ica els pa àme es especi ica s. Com el conc ac ha
de ind e un domini, openSIPS el subs i ui à pe el seu domini i inco po a à un
camp en el con ac , hin o (domoni_enc ip a ), al com es mos a en la igu a 33.
- opology_hiding_ma ch(): Descodi ica els pa àme es.
6.2. ESPECIFICACIÓS TECNIQUES DE LA IMPLEMENTACIÓ
El objec iu es que codi iqui els pa àme es esmen a s en o s els paque s so in s del
p oxy, pe lo qual ha em d’u ili za el mè ode opology_hiding(), en o s els ipus de
paque s ( egis e, in i e, op ions, subsc ibe...).
6.3. ANALISIS DELS RESULTATS OBTINGUTS
Com s’obse a en les igu es 28 i 29 en els camps de Via i Con ac no apa eix el
domini del usua i 1001 (172.16.50.131). En el cas de la ia elimina la c eada pe el
usua i quan aques gene a el paque i deixa exclusi amen la del p oxy.
Figu a 33 Cap u a Wi esha k paque sense enmasca amen
Figu a 34 Cap u a Wi esha k paque amb enmasca amen
7. ENCRIPTACIÓ MITJANÇANT EL PROTOCOL TLS
7.1. ESPECIFICACIÓ TECNICA DE L’APLICACIÓ DEL PROTOCOL EN
OPENSIPS
L’objec iu és enc ip a o el à ic des de el p oxy ins al se ido As e isk, el p oxy
hau à de se capaç d’enc ip a i desenc ip a el à ic. OpenSIPS ens pe me eballa en
TLS (T anspo Laye Se cu e) en el po 5061, al com es de ineix en el SIP RFC 3261,
33
és una ca ac e ís ica obliga ò ia pe a se ido s in e media is i es po u ili za pe ga an i
la senyali zació SIP en o ma de hop-by-hop.
Telè on VoIP 1 SIP P oxy As e isk
UDP TLS
Figu a 35: Exemple del lux dels p o ocols de anspo en e el Telè on, SIP P oxy i As e isk
Una dels a an a ges de eali za -ho d’aques a mane a es que ens e i em ind e
d’a egi el ce i ica a cada un dels elè ons que és egis en con a el se ido . Cal
des aca ambé que com els elè ons i el p oxy es a an a la ma eixa xa xa LAN, aques a
no e an pe ill que un hacke u ili zi ècniques de “sni e ” i aci un us audulen de la
in o mació ex e a.
7.1.1. CARACTERISTIQUES DELS MODULS PROTO_TLS
OpenSIPS pe me des de la e sió 2.1 implemen a aques anspo de o ma
independen mi jançan el mòdul P o ocol TLS (p o o_ ls). Aques mòdul pe me ob i
qualse ol po , no malmen s’u ili za el 5061, i que el p oxy p ocessi paque s
anspo a s amb TLS.
No obs an , pe pode p ocessa aques paque s el p oxy hau à de ind e el ce i ica i la
key que li pe me in desenc ip a els paque s que s’o igina al se ido As e isk. El mòdul
Managmen TLS (mgm_ ls), pe me la ges ió dels ce i ica s. P opo ciona una in e ície
pe a o s els mòduls que u ili zen el p o ocol TLS.
7.1.2. ESPECIFICACIONS IMPLEMENTACIÓ PROTOCOL TLS
Pe enc ip a els paque s SIP s’ha pa i de la solució “cus om” i s’ha eali za la
con e sió pe què del p oxy al se e es anspo i amb el p o ocol TLS. Alesho es, s’han
de eali za dos con e sions, de UDP a TLS pe els paque s que s’encaminen cap al
se ido As e isk i de TLS cap UDP pe els paque s encamina s del p oxy cap als
elè ons.
Els ce i ica s s’han gene a amb el so wa e SimpleAu ho i y i openssl. Em ingu
d’ins al·la el ce i ica al se ido As e isk i openSIPS.
34
7.1.3. ANALISIS DELS RESULTATS OBTINGUTS
La opologia pe eali za les p o es es la ma eixa que la del apa a 5.3. Reali za em
les ma eixes p o es pe comp o a que o unciona co ec amen .
Uns dels g ans p oblemes que hem ingu es pode desenc ip a els paque s TLS 1 amb
el so wa e “wi esha k”. Es una eina lliu e i en alguns aspec es es a bas an limi ada. Un
dels majo s incon enien s és quan ac em paque s enc ip a s, i es que pe què puguis
desenc ip a necessi a el inici del diàleg del p o ocol TLS ( igu a ) en e el se ido i el
p oxy, i aques es p odueix solamen quan s’execu en les maquines.
Figu a 36 Flux de diàleg inicial en e el se ido i el clien p o ocol SSL
REGISTRE
El usua i 1002 (172.16.50.131) en ia un egis e al p oxy (172.16.54.39) en UDP i
desp és aques el een ia cap al se e (172.16.54.116), al com es mos a en la
cap u a o el à ic en e el se ido i p oxy es en TLS 1, men e que el à ic en e el
usua i i el p oxy es en UDP/SIP. En la igu a 31 es po eu e com el se ido ha
desenc ip a el paque i l’usua i 1002 ha queda egis a co ec amen .
Figu a 37 Cap u a Wi esha k dels paque s de la comunicació Regis es en SIP i TLS 1 del usua i 1002 cap al se ido
35
Figu a 38: Ex ensió 1002 egis ada al As e isk, is a consola
TRUCADES INTERNES ENTRE EXTENSIONS
En aques apa a explica em els esul a s ob ingu s de la ucada en e ex ensions.
En aques cas la ucada la eali za el usua i 1002 (172.16.51.24) cap l’usua i 1001
(172.16.54.131). En la igu a 33 es mos a el lux de la ucada en e el usua i 1003 i el
p oxy en anspo UDP.
Figu a 39 Cap u a Wi esha k d’una ucada en SIP del usua i cap al p oxy
Un dels p oblemes que em ingu es que no hem aconsegui amb el Wi esha k
desenc ip a aques paque s TLS. Alesho es, pe eu e com s’en ien el paque s en e
el p oxy i el se ido em ingu d’u ili za els logs del p oxy i se ido . En la igu a 35 es
eu cla amen com els paque s en e el p oxy i el se ido As e isk es an enc ip a s i
anspo a s amb el p o ocol TLS 1. En el log del p oxy ( igu a 34) podem eu e com el
paque in i e és en ia dos egades cap al p oxy.
El p ime és denega pe que el se ido As e isk, degu a que no con e el camp
Au ho iza ion, on s’especi ica els pa àme es pe què la ucada pugui se cu sada pe el
p oxy.
36
Figu a 40: Pa àme e Au ho iza ion del segon paque INVITE en ia pe el se ido
El segon in i e és accep a i desp és el se ido As e isk een ia el paque cap al
p oxy i aques cap al usua i 1001. El p oblema es que el usua i 1001 es a escol an en
UDP i el p oxy li en ia en TLS, al com es mos a en la línia del log. No em aconsegui
que el p oxy ans o mi el paque enc ip a amb TLS en UDP.
Figu a 41: log OpenSIPS (opensips.log), is a consola
Figu a 42: Cap u a Wi esha k d’una ucada en SIP i TLS 1 del usua i 1002 cap al usua i 1001
8. IMPLEMENTACIÓ SIP PROXY A LA RASPBERRY PI 3
Una egada s’ha dissenya els sc ip s de con igu ació, p ocedi em a implemen a el
p oxy en una Raspbe yPI 3. Pe això segui em el següen p ocedimen :
1. Ins al·lació sis ema ope a iu Cen OS 7, u ili za em la e sió pe Raspbe yPI.
2. Ins al·la OpenSIPS i o es les llib e ies necessà ies.
3. Execu a el sc ip de con igu ació.
En el apa a 10 del annex queda de alla els passos a segui pe eali za la ins al·lació
del sis ema ope a iu i del OpenSIPS.
37
8.1. PROBLEMES AMB LA VERSIO 2.4 OPENSIPS
Un dels p oblemes que ens em oba es que quan s’in en a ins al·la la e sió 2.4
en la Raspbe yPI 3 ens e o na un e o d’ins al·lació, suposem que es un p oblema
de llib e ies, ja que quan em ins al·la aques a e sió al se ido s i uals de l’emp esa
(Cen OS 7 x86_64) no hem ingu e o s d’ins al·lació. Com les llib e ies de cen os pe
la e sió de Raspbe y són di e en s a les al es c eiem que el p oblema po ind e
d’aqui.
Com la e sió 2.3 es ela i amen simila es a p ocedi u ili za aques a i eali za unes
pe i es modi icacions en el sc ip de con igu ació pe què os compa ible.
En un u u em p e is ins al·la la e sió 3 que so i à aques 2019 i eu e si no ens
dona p oblemes en la ins al·lació.
8.2. PROBLEMES CPU
Un dels p oblemes que em ingu quan es gene a a una ucada i e a p ocessada
pe el p oxy, la u ili zació de la CPU augmen a a ins al 100%. Quan execu a es la
comanda op pe eu e en emps eal quin PID es a a causan aque excés de endimen
obse a es que e a jou nalc l. Jou nalc l es una eina dels sis emes GNU/Linux que
pe me isuali za els logs i egis es.
El p oblema és que el log gene a pe openSIPS es i a cap aques a eina, i cada mili
segon so ia un missa ge que posa a que openSIPS no enia su icien memò ia.
Pe soluciona aques p oblema em ingu d’augmen a la memò ia compa ida que pe
de ec e són 64MB. Pe augmen a la memò ia em d’edi a el i xe
/e c/opensips/opensipsc l i en l’ul ima línia a egi :
STARTOPTIONS="-m 3050"
38
9. CONCLUSIÓ
- Fil a els paque s SIP de la xa xa local de ele onia IP. El p oxy solamen ha
de pe me e encamina aquells paque s que inguin com a o igen el se ido
p incipal o els elè ons SIP egis a con a el se ido p incipal.
El p ime objec iu ha es a aconsegui amb èxi , s’han desen olupa dos sc ip s que
ens o e eixen aques a uncionali a . Tal com hem comen a al apa a 5.5, en e la
solució segona i la e ce a l’única di e encia es la o ma d’emmaga zema la in o mació
de les ex ensions. Hau em de alo a si el p océs d’emmaga zema les dades i ex eu e-
les de base de dades, suposa un augmen del emps de p ocessamen del p oxy i pe
lo qual l’es ablimen de la comunicació sigui més len . Em de ind e en comp e que quan
pa lem de VoIP el emps es un ac o mol impo an . L’al a solució com és gua da en
memò ia el emps es mol in e io .
Pe pode acaba de conclou e quina de les dos solucions és p e e ible, es a p e is
eali za un es QoS (Quali y o Se ice), on es mesu a à la la ència, ji e ( luc uació del
e a d) i la pè dua de paque s. Alesho es es alo a à pe quina de les dos opcions ens
decan a em.
Una de les al es coses que hau em de ind e en comp e, és alho a de la se a
implemen ació en una in aes uc u a eal , ja que el p oxy es a à da e a d’un NAT
(Ne wo k Add ess T ansla ion). S’hau à de eu e si causa algun p oblema i si es el cas
hau em de eali za alguns can is al sc ip de con igu ació. No obs an , openSIPS ens
o e eix u ili a s pe pode ac a els paque s si el p oxy es a da e a d’un NAT.
- Emmasca a el domini i el po de la ama SIP dels paque s que s’o iginin en
els e minals.
El segon objec iu ambé s’ha aconsegui emmasca a el domini dels elè ons en la
ama SIP del paque . Amb lo qual aconseguim que si un “hacke ” u ili za un sni e li
sigui impossible ex eu e la opologia de la xa xa in e na. La única IP que pod à ob ind é
un hacke es la IP del p oxy, el qual ja s’enca ega à de il a els paque s i així p o egi
els elè ons de qualse ol a ac.
- El p oxy hau à de se capaç d’enc ip a i desenc ip a els paque s u ili zan el
p o ocol TLS.
El e ce objec iu no s’ha assoli al 100% al com s’explica en l’apa a 7.1.3, no em
assoli la con e sió de UDP a TLS quan el p oxy en ia un in i e al usua i, el ecep o
de la ucada. El p òxim pas se à es udia una solució al e na i a ja que a a ma eix
openSIPS amb les eines que ens o e eix no ens pe me eali za aques a con e sió.
Una al a possible solució se ia que els qui enc ip essin els paque s ossin els
elè ons i o el anspo os en TLS, alesho es el p oxy no hau ia de eali za la
con e sió. No obs an , em de ind e em comp e que s’hau ia d’ins al·la el ce i ica s a
o s els elè ons de l’o icina.
39
10. BIBLIOGRAFIA I REFERÈNCIES
[1] RFC 3261 - SIP: Session Ini ia ion P o ocol - IETF Tools, June 2002,
h ps:// ools.ie .o g/h ml/ c3261
[2] Tech-in i e – SIP RFC 3261, h ps://www. ech-in i e.com/
[2] Blog SinoLogi, A icle: Qué es un SIP P oxy y cual elegi ¿Kamailio u openSIPS?,
h ps://www.sinologic.ne /in oduccion-sip-p oxy.h ml
[3] OpenSIPS P ojec h p://opensips.o g/
[4] Bulding Telephony Sys ems wih OpenSIPS Second Edi ion, Fla io E. Goncal es
Bogdan-And ei lancu. 2016.
[5] OpenSIPS Modules, Admin Guides
mid_ egis a Module, h p://www.opensips.o g/mid_ egis a .h ml, Scaling egis a ions
wi h an OpenSIPS mid- egis a , h ps://www.opensips.o g/Tu o ials-MidRegis a
AVPops Module, h p://www.opensips.o g/a pops.h ml
Topology-Hiding, h p://www.opensips.o g/ opology_hiding.h ml, Tu o ial,
h ps://www.opensips.o g/Tu o ials-Topology-Hiding
P o o_ ls module, h p://www.opensips.o g/p o o_ ls.h ml
TLS_MGM module, h p://www.opensips.o g/ ls_mgm.h ml
[6] Wiki Cen OS Use land a m 7h (Raspbe yPI), h ps://wiki.cen os.o g/
[7] As e isk h ps://www.as e isk.o g/
40
11 ANNEX
11.1 INSTAL·LACIÓ A LA RASPBERRY PI 3
11.1.1 INSTAL·LACIÓ SISTEMA OPERATIU (Cen OS 7)
P e equisi s
Necessi em els p og ames següen s:
• SD Memo y Ca d Fo ma e .
• Ima ge Cen os 7 - use land x86
• Ru us o algun so wa e simila pe c ea uni a s lash en una SD Memo y.
Passos pe al mun a ge
1. Fo ma eja la SD amb el SD Memo y Ca d Fo ma e , asegu a -nos que
es á en Fa 32.
2. Mun a amb Ru us la ima ge en la SD
3. Connec em la SD a la Raspbe yPI i ins al·lem el sis ema ope a iu.
4. Un cop ins al·la eu em que el sis ema no ocupa o el espai
disponible de la Raspbe yPI. Pe econ igu a el espai, hau em
d’execu a la següen comanda:
/us /bin/ oo s-expand
11.1.2 INSTAL·LACIÓ OPENSIPS
1. Disable selinux
Reali za un eboo i eu e si s’ha desac i a selinux.
2. Ins al·lació llib e ies:
3. Desca eguem openSIPS e sió 2.3:
nano /e c/selinux/con ig
## SELINUX=disabled
yum ins all nano mloca e ma iadb ma iadb-de el gcc gcc-c++ bison
lex zlib-de el openssl-de el sub e sion pc e-de el ncu ses-de el
ncu ses gi ng ep json-c-de el libxml2-de el libmic oh pd-de el
ke nel-de el make zlib openssl mysql-se e
41
4. Iniciali zem la base de dades:
5. Ins al·lem openSIPS:
6. Con igu ació base de dades
cd /us /s c
gi clone -b 2.3 h ps://gi hub.com/OpenSIPS/opensips.gi
opensips_2_3
cd opensips_2_3
sys emc l s a ma iadb
sys emc l enable ma iadb
make menucon ig
1. Escollim els mòduls que olem ins al·la
Excluded modules: db_mysql, dialplan, mi_xml pc_ng,
json, h pd
2. Choose P e ix: /
3. Compile and Ins all Opensips
ln -s /us /local/e c/opensips/
/e c/opensips
nano /e c/opensips/opensipsc l c
DBENGINE=MYSQL
DBHOST=localhos
DBNAME=opensips
DBRWUSER=opensips
DBRWPW="opensips w"
ALIASES_TYPE="DB"
OSIPS_FIFO="/ mp/opensips_ i o"
MI_CONNECTOR=FIFO:/ mp/opensips_ i o