L'apertura del protocollo SIP ad internet senza nessun tipo di crittografia o precauzione, tipo una vpn, porta inevitabilmente ad esporre i servizi a tentativi di accesso che prima o poi porteranno a problemi.

E' possibile invece consentire un accesso SIP con crittografia TLS che permette di non esporre il servizio SIP in chiaro se è necessario avere un client che si colleghi al NethVoice senza la sicurezza di una vpn.



MOLTO IMPORTANTE: al NethVoice devono essere rigirate la porta 5061 TCP, e TUTTO l'intervallo da 10000 a 20000 UDP.



L'interno da utilizzare potrà essere usato solo in questa modalità e dovrà avere queste opzioni rispetto al default:




Port :5061

Trasport: Solo TLS


E' consigliabile anche usare una password non semplice.


Per attivare il servizio SIP TLS che utilizza la porta 5061 eseguire i seguenti comandi:


 


 

config set asteriskcloud service TCPPorts 5061 UDPPorts 10000-20000 access public status enabled
signal-event firewall-adjust 

 

 

 

 

E' necessario un certificato per il servizio SIP in TLS da indicare ad Asterisk in modo che accetti le connessioni:


cp /etc/pki/tls/private/NSRV.key /etc/asterisk/cert/
cp /etc/pki/tls/certs/NSRV.crt /etc/asterisk/cert/
cat /etc/asterisk/cert/NSRV.key /etc/asterisk/cert/NSRV.crt > /etc/asterisk/cert/NSRV.pem

 


Collegarsi all'interfaccia di NethVoice -> Impostazioni SIP e configurare delle Impostazioni SIP come mostrato



sip_tls.png




 

 

tcpenable=yes
tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/cert/NSRV.pem
tlscafile=/etc/asterisk/cert/NSRV.crt

 

 

NB: in caso di NethVoice dietro NAT, quindi senza ip pubblico direttamente configurato in una scheda di rete, sarà necessario in Configurazione IP selezionare IP Statico e configurare Ip Esterno e Reti Locali (usare la configurazione automatica)


Fatto questo, riavviare Asterisk (comporterà la caduta di tutte le chiamate) con il comando asterisk -rx "core restart now"


Questa configurazione è sufficiente per collegarsi con client che non richiedono l'importazione del certificato come ad esempio Zoiper su dispositivi mobile.


Configurazione di Client SIP Zoiper




Screenshot (29 lug 2016 17:04:48)



Scegliere Manual Configuration
Scegliere Protocollo SIP e compilare campi evidenziati con i valori del proprio NethVoice e interno  




Prima di salvare impostare TLS come Transport Type nel Network Settings




Se da errore certificato, dire continua comunque.


Per client che invece richiedono l'importazione del certificato, come ad esempio client installati su PC, è necessario creare un certificato.


Installare il modulo VPN su NethServer, creare un account VPN e scaricare:



Rinominare il file ca.crt in ca.pem

I due certificati serviranno per la configurazione del client sip.


Ecco un esempio di Zoiper su client pc










Configurazione per telefono Fisico Sangoma


Per fare in modo di registrare i telefoni Sangoma utilizzando SIP TLS è necessario importare i certificati precedentemente scaricati dal server, sul telefono, quindi per la creazione dei certificati seguire la seguente procedura:


Installare il modulo VPN su NethServer, creare un account VPN e scaricare:


A questo punto si disporrà di 2 file certificato: ca.crt e <nomeaccountVPN>.pem


Importare quindi il file ca.crt sul telefono accedendo al menù Management->TrustedCA ed importando il file dalla apposita sezione come mostrato in figura seguente:


Ricordare anche di impostare il flag Trusted Certificates sul Valore Custom Certificates come mostrato


A questo punto importare dal menù Management-> Server CA il file con estensione .pem che è stato precedentemente scaricato ed impostare il valore Device Certificates su Custom certificates come mostrato in figura seguente:




a questo punto sono stati caricati i certificati per poter stabilire una connessione SIP sicura.

Ora bisogna configurare i parametri di registrazione SIP relativi all'interno nella sezione menù Account->Basic facendo attenzione di impostare alcuni parametri specifici oltre a quelli standard.

I parametri da configurare sono i seguenti:


Lasciare La Porta SIP Locale con valore 5060


Impostare il valore Primary SIP server utilizzando il dominio o l'IP del Nethvoice su cui si andranno a registrare i telefoni inserendo dopo il nome la porta 5061 come mostrato in figura seguente:



Impostare inoltre il flag relativo al SIP Transport sul valore TLS come mostrato in figura seguente




a questo punto salvare le modifiche e riavviare il telefono.


Dopo aver effettuato queste configurazioni il telefono sarà registrato e starà utilizzando il TLS sulla segnalazione SIP.



Configurazione per telefono fisico Yealink


Anche per i telefono Yealink sarà necessario importere sul telefono stesso i file di certificato scaricati dal server con la stessa procedura illustrata di seguito:


Installare il modulo VPN su NethServer, creare un account VPN e scaricare:


A questo punto si disporrà di 2 file certificato: ca.crt e <nomeaccountVPN>.pem


Dopo aver scaricato i due file certificato caricarli sul telefono Yealink tramite l'interfaccia web.

Dal Menù Security->Trusted certificates ed importare ill file ca.crt utilizzando la sezione Import Trusted Certificates.

Configurare inoltre la voce CA Certificate impostando il valore All Certificate come mostrato in figura seguente.


 

come si può vedere nella lista dei certificati sarà presente il file precedentemente caricato.


Il prossimo passo è quello di importare il certificato del server sul telefono.

Questo è possibile dal menù Security->Server Certificates importando il file avente formato .pem come mostrato in figura seguente.

Impostare anche il valore Device Certificates su Custom Certificates



Una volta inseriti i certificati per consentire al telefono Yealink di utilizzarli sarà necessario un riavvio che il telefono dovrebbe eseguire in maniera automatica.


A questo punto quello che manca è la configurazione standard utilizzata nell'account SIP a cui bisogna aggiungere i seguenti valori per consentire al telefono di registrarsi verso il Nethvoice: