scieee Open visual document viewer

Creació d'un equip de seguretat perimetral per VoIP mitjançant el proxy SIP OpenSIPS

Fregola Escribano, Estela

Abstract

The main objective of the project is to develop a security equipment for VoIP telephony (Voice over IP) with the help of a SIP proxy, which will increase the security level of the VoIP network. The resource openSIPs, an Open Source for GNU/Linux system, has been used to develop the proxy and later it has been implemented in a Raspberry Pi 3.

Full text

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