Menu Zavrieť

Zabezpečenie SIP prostredníctvom TLS – Asterisk

 

 Úvod

Pre úspešné implementovanie zabezpečenia TLS na protokol SIP je nutné aby pri kom-

pilácii bol zahrnutý aj modul res crypto. Práve tento modul nám zabezpečuje kryp-

tografické funkcie a metódy. Nasledovné postupy sú testované na servery asterisk 1.8.0 a

debian-like systémy. Samotné nastavenie pozostáva z 3 častí:

 

  1. Vytvorenie certifikátu
  2. Nastavenie asterisku na TLS
  3. Nastavenie samotných klientov

 

Vytvorenie certifikátu

Na vytvorenie certifikátu budeme potrebovať nástroj ”openssl”. Budeme používať tzv.

self-signed certifikát, teda podpíšeme si ho samy.

K vytvoreniu samotného certifikátu budeme potrebovať privátny kľúč pre náš server.

Odporúčam si v zložke /etc/asterisk vytvoriť ďalšiu zložku ”cert”, ktorá bude obsahovať

naše kľúče a samotný certifikát

  • cd /etc/asterisk
  • mkdir cert1
  • cd /etc/asterisk/cert

Na vytvorenie daného kľúča použijeme príkaz:

  • openssl genrsa -out key.pem 1024

Na terminály by sa mala objaviť správa typu ”Generating RSA private key, 1024 bit long

modulus”. Overenie, či sa daný kľúč ozaj vytvorený je možné pomocou príkazu ls, kedy

by sme mali dostať výpis podobný nasledovnému:

  • -rw-r–r– 1 root root 887 2010-08-30 14:39 key.pem

Tento kľúč key.pem nie je však náš certifikát, ale je to náš serverovský kľúč. Mal by byť

v zálohovaný na CD, alebo USB disku.

Ak máme svoj vlastný kľúč môžme vytvoriť certifikačnú žiadosť príkazom:

  • openssl req -new -key key.pem -out request.pem

Pre vytvorenie treba zadať nasledovné údaje:

Country Name – Dva špeciálne znaky pre danú krajinu ( napr. SK )

State or Province Name – Možnosť vložiť provinciu ( môže ostať prázdne)

Locality Name – Mesto ( napr. Zilina)

Organization Name – Meno spoločnosti ( napr. ZU FRI)

Organizational Unit Name – Oddelenie v rámci spoločnosti ( napr. KIS )

Common name – JE NUTNÉ ABY TO BOLO FQDN DANÉHO SERVERA ( asterisk.nieco.sk, IP adresa)

Email Address – e-mail

A challenge password – nie je nutné zadať

An optional company name – nie je nutné zadať

V tejto chvíli by sme mali mať vytvorený kľúč pre server a našu certifikačnú žiadosť. Po

zadaní príkazu ls by sa mali na terminály zobraziť podobné výpisy:

  • -rw-r–r– 1 root root 887 2010-08-30 14:39 key.pem
  • -rw-r–r– 1 root root 639 2010-08-30 14:49 request.pem

Ak by sme chceli mať náš certifikát podpísaný od skutočnej certifikačnej autority ( ďalej

len CA ), tak práve request.pem by sme poslali danej CA na podpísanie. My však použí-

vame self-signed a preto si ho podpíšeme samy nasledovným príkazom:

  • openssl x509 -req -days 3650 -in request.pem -signkey key.pem -out certificate.pem

Práve týmto príkazom sme vytvorili certifikát pre náš server, ktorého platnosť vyprší za

10 rokov.

 

 

Nastavenie asterisku na TLS

Ak máme všetky potrebné kľúče ( key.pem a certificate.pem ), môžme pristúpiť ku nas-

taveniu asterisku, aby používal TLS.

Asterisk vyžaduje aby oba tieto súbory bol v jednom súbore. Pre tento účel vytvoríme

ďalší súbor asterisk.pem, ktorý bude obsahovať oba tieto súbory.

  • cp certificate.pem asterisk.pem
  • cat key.pem >> asterisk.pem

Na strane servera už potom stačí editovať sip.conf, ktorý sa nachádza v zložke /etc/asterisk/.

Do daného konf. súboru do sekcie ”general” stačí pridať nasledovné riadky:

 

tlsenable=yes ;zapnutie tls

tlsbindaddr=0.0.0.0 ;nacuvanie na all interaface

tlscertfile=/etc/asterisk/cert/asterisk.pem

tlsdontverifyserver=no ;overovanie ak asterisk vystupuje ako klient

tlscipher=DES-CBC3-SHA ;sifrovaci algoritmus

tlsclientmethod=tlsv1 ;verzia TLS/SSL

 

Do sekcie jednotlivých užívateľov stačí treba pridať:

transport=tls;

K overeniu môže poslúžiť príkaz sip show setting, v konzole asteriska. Avšak príkazom

netstat -ln | grep 5061 zistíme, či nám server načúva na porte 5061, teda či je pripravený

prijať tls spojenie.

 

 

Nastavenie samotných klientov

Na strane klientov je nastavenie veľmi jednoduché a grafické. Stačí transport nastaviť na tls.

Testované na klientoch sip-communicator a eyebeam. Pri klientovi eyebeam však treba certifikát

servera nahrať do dôveryhodných certifikátov. Internet explorer – nastavenia – obsah – ssl certifikáty – importovať.

Treba ho pridať ku ''Dôveryhodným koreňovým certifikátom''.

 

Ukážka TLS komunikácie

Nasledovné obrázky popisujú úspešné registrovanie na server prostredníctvom tls. V daných obrázkoch si môžme všimnúť najmä:

  1. Klasický TCP handshake pri nadviazaní spojenia
  2. TLS handhake pri dohadovaní parametrov TLS
  3. Žiadne SIP správy, sú skryté v tele TLS

ZABEZPEČENIE SIP PROTOKOLU VŠAK NECHRÁNI VOIP DÁTOVÝ TOK!!!

 

Rate this post

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.