Archive

Archive for the ‘Voip’ Category

Sicurezza VoIP: come proteggersi con fail2ban

November 5th, 2010 No comments

Negli ultimi due/tre anni sono aumentati vertiginosamente gli attacchi verso i centralini VoIP. Il tipo di attacco più frequente è quello di eseguire uno scanning della rete per trovare i server in ascolto sulla porta di segnalazione del protocollo sip (cioè UDP 5060) e provare un l’accesso con valori di utenza e password pseudo casuali fino a trovare la combinazione corretta.

La soluzione principale è quindi quella di utilizzare delle password sicure e magari modificare la porta di ascolto su una non standard.

Per rendere il nostro centralino ancora più sicuro e quindi proteggerlo da attacchi di tipo bruteforce menzionati sopra, possiamo utilizzare fail2ban. La guida che segue è specifica per OpenSIPs e Asterisk

Che cosa è fail2ban?

E’ un applicativo che esamina i file di log relativi al servizio che vogliamo proteggere (ssh, http, sip ecc..) e nel caso in cui riscontri più di un determinato numero di tentativi falliti in un certo intervallo di tempo (configurabile)  blocca temporaneamente (tramite iptables)  l’IP che sta tentando l’accesso.

Configurazione base fail2ban

Una volta installato (“sudo apt-get install fail2ban ” su macchine Ubuntu e Debian) troviamo i file di configurazione sotto la cartella /etc/fail2ban.

In particolare nel file /etc/fail2ban/jail.local sono presenti le regole di ban per i diversi servizi. Ciascuna regola è identificata dal nome tra parentesi quadre. Read more…

Telecom Italia e l’interconnessione con i numeri nomadici (55)

October 22nd, 2010 3 comments

Dopo lunghe trattative al tavolo dell’AGCOM dal 15 luglio 2010 Telecom Italia permette le chiamate verso le nuove numerazioni nomadiche, quelle cioè con prefisso 55.

Ma che sono e a cosa servono i numeri nomadici?

Molti operatori telefonici forniscono all’utente, attraverso il VoIP, una numerazione geografica relativa al distretto di appartenenza dell’utente stesso. Una volta ottenute le credenziali del proprio account VoIP quindi, sarebbe possibile chiamare, tramite appositi client, da qualsiasi parte di Italia (e del mondo). Il problema è che la legislazione Italiana vieta l’utilizzo di un numero geografico VoIP fuori dal distretto di appartenenza di quel numero.

Il divieto normativo si spiega con la circostanza che l’utilizzo di una numerazione geografica (06,02., etc…) al di fuori del relativo distretto (Roma, Milano, etc…) potrebbe creare problemi nel caso in cui l’utente si trovasse a chiamare un numero di emergenza: la chiamata verrebbe infatti instradata alla centrale di emergenza di competenza del distretto originario e facente capo al numero assegnato.

La soluzione proposta (se non ricordo male nel lontano 2006) è stata quella di introdurre una nuova numerazione nazionale finalizzata appunto alla fornitura del servizio di telefonia IP in modalità “nomadica”.

Il primo operatore che ha spinto fortemente all’interconnessione della numerazione nomadica con la PSTN (rete telefonica tradizionale) è stato Tiscali che già nel settembre del 2009 ha lanciato l’offerta wiPhone. Non a caso infatti – ad oggi – le uniche numerazioni che si possono chiamare dalla rete Telecom (fissa e mobile) sono proprio quelle dell’operatore sardo.

Altri operatori hanno già chiesto a Telecom l’interconnessione con le proprie numerazioni nomadiche e presto sarà possibile ottenere ed utilizzare queste numerazioni da tutti i provider telefonici.

Da rete fissa
Read more…

Categories: Internet, Notizie, Voip Tags: ,

Asterisk – Connettività digitale e analogica [decima parte]

October 6th, 2010 7 comments

Linea analogica (RTG)

Nella telefonia analogica ci sono due tipi di interfacce (e due tipi di segnalazioni): FXS e FXO

– FXS (Foreign eXchange Station) è la porta che consegna la linea analogica all’utente (la presa sul muro che fornisce il segnale dalla centrale) e quindi prodice il dial-tone.

– FXO (Foreign eXchange Office) è la porta che riceve la linea analogica (la presa sull’apparecchio telefonico) e quindi riceve il dial-tone.

E’ possibile utilizzare la linea analogica che abbiamo a casa con il nostro centralino Asterisk sfruttando una scheda Digium TDM410 (o analoghe) mostrata in figura

Questo tipo di scheda prevede l’espandibilità fino a 4 linee FXS o FXO. In particolare questa ha montato un modulo FXO (colore rosso) sulla porta 4 e un modulo FXS (colore verde) sulla porta 1.

Dalle cose dette prima quindi, sul modulo FXS (verde) che invia il dial-tone, va attaccato un apparato con porta FXO che riceve il dial-tone (telefono, fax, etc), mentre la porta FXO (rossa) va attaccata sulla presa FXS da cui arriva il segnale della centrale (presa muro).

Linea digitale ISDN (BRI/PRI)

Una linea ISDN (Integrated Services Digital Network) viene fornita all’utenza mediante due tipi di connessione verso la centrale pubblica: Basic Rate Interface (BRI) e Primary Rate Interface (PRI). Entrambi Primary Rate Interface e Basic Rate Interface sono costituiti da un certo numero di canali B e D canali. B Channel o il Canale Portatore è utilizzato per la trasmissione dei dati, tra cui voce e il canale D è destinato per la segnalazione e controllo. LA differenza Read more…

Categories: Articolo Tecnico, Voip Tags: ,

Tariffe VoIP Betamax & Co

September 6th, 2010 No comments

Esistono oramai da diversi anni innumerevoli servizi VoIP che offrono chiamate a basso costo soprattutto per destinazioni internazionali. Uno dei Provider più attivi che troviamo su Internet è sicuramente Betamax, un azienda tedesca fondata nel 2005.  I Provider VoIP che fanno riferimento a Betamax ad oggi sono circa 33 (12voip, actionvoip, budgetsip, calleasy, callingcredit, cheapvoip, dialnow, freecall, freevoipdeal, internetcalls, intervoip, jumblo, justvoip, lowratevoip, netappel, nonoh, poivy, powervoip, rynga, sipdiscount, smartvoip, smsdiscount, smslisto, sparvoip, telbo, voipblast, voipbuster, voipbusterpro, voipcheap com, voipcheap uk, voipdiscount, voipgain, voiplip, voipraider, voipstunt, voipwise, voipzoom e webcalldirect ). Orientarsi quindi con le tariffe di tutti questi provider è un po complicato ma per fortuna ci sono alcuni siti (tipo progx.ch) che permettono di confrontare le varie offerte.

Molti dei siti sopra elencati, con una ricarica di circa 10 €, permettono di avere 3 o 4 mesi di chiamate gratuite verso numeri fissi internazionali (Italia compresa), con il limite di 300 minuti a settimana (5 ore). Finiti i free days, si può o consumare il credito della ricarica fatta o ricaricare altri 10 € per avere altri 120 giorni di chiamate gratuite. Con il credito “accumulato” si possono chiamare tutte le altre destinazioni che non fanno parte dell’offerta pseudo-flat come per esempio i cellulari. I costi verso verso gli operatori telefonici mobili sono in molti casi parecchio vantaggiose.

Facciamo qualche esempio… Read more…

Categories: Internet, Utilità, Voip Tags:

INUM: un numero VoIP internazionale

August 27th, 2010 2 comments

Che cos’è? Come si usa?  INUM sta per “International Number” ed è  un esperimento (nato nel 2006 e attivo dal 2008) per la creazione di un numero di telefono globale  non legato alla territorietalità.

Grazie ad INUM, infatti, potremo finalmente disporre di un unico piano di numerazione a 12 cifre (+883 123 456 789 123) accessibile da qualunque parte del mondo. ll prefisso +883 infatti, è ufficialmente riconosciuto dall’ ITU e non è legato ad alcuna nazione. Possiamo quindi definire INUM come un “numero VoIP nomadico internazionale“: non essendo legato ad alcuna realtà territoriale viene superato il concetto di telefonata internazionale, nazionale o locale.

Cerchiamo di capirne ora l’utilità…

Le chiamate VoIP tra due generici provider, tecnicamente potrebbero essere gratuite. Quasi tutti i provider però inibiscono la possibilità di fare chiamate dirette ad altri provider e obbligano a passare, a  pagamento, dalla PSTN. Con INUM questo problema viene superato rendendo possibile chiamare numeri INUM di operatori diversi a costo zero. INUM, inoltre (e questo è il punto di forza) permette l’integrazioni tra reti PSTN e VoIP.

Attualmente in Italia è possibile chiamare direttamente un numero INUM solo dalla rete Fastweb. E’ possibile però, per chi è legato ad altri operatori , chiamare un utenza INUM utilizzando un gateway di accesso, al costo di una telefonata verso un numero fisso nazionale. In Italia esiste (per ora) un solo gateway INUM che si trova a Roma ed ha il numero 06 62207777.

Naturalmente tutte le nazioni principali hanno almeno un gateway di accesso su una numerazione fissa quindi per chiamare un numero INUM  è sufficiente Read more…

Categories: Internet, Voip Tags:

Asterisk – Sicurezza [nona parte]

August 17th, 2010 2 comments

Ci sono degli accorgimenti molto importanti affinché il nostro PBX non venga utilizzato per fare qualche migliaio di € di telefonate a scrocco! Negli  ultimi due anni infatti sono stati migliaia i Soft PBX sfruttati per fini illeciti come descritto anche in questo articolo. Di seguito cercheremo di illustrare le principali cose da fare…

– allowguest (sip.conf)

Il file di configurazione sip.conf  che si ottiene dopo l’installazione del sistema contiene la direttiva “allowguest” che di default (complimenti a quelli della digium 😐 ) permette di fare le chiamate senza autenticazione (quindi inventando direttamente lo username…). Questo può avviene quando si utilizza unicamente il contesto di default. Settare quindi il parametro allowguest=no.

– i contesti (sip.conf, extension.conf e chan_dahdi.conf)

E’ importante capire come funzionano i contesti di ingresso e di uscita e fare in modo che siano assolutamente isolati tra loro. La cosa fondamentale è che in un contesto di ingresso delle chiamate non ci sia la possibilità di farne in uscita. Verificare quindi che il contesto di default sia sicuro e non permettere agli utenti non autenticati (nel caso ci sia allowguest=yes) di raggiungere contesti in cui sono permesse chiamate a pagamento.

– alwaysauthreject (sip.conf)

Impostando alwaysauthreject = yes quando qualcuno cerca di connettersi a un interno esistente sbagliando la password non verrà comunicata se l’interno esiste o no e la risposta sarà la stessa usata per un interno inesistente.

– password

Utilizzare password complesse per le utenze SIP. E’ sempre consigliabile usare un mix di simboli, numeri, lettere maiuscole  e lettere minuscole.

– limit-call

Impostare su ciascuna utenza SIP il numero massimo di chiamate contemporanee che l’utente può  fare (se non ci sono particolari esigenze si può impostare limit-call=1)
Read more…

Gizmo Call

April 2nd, 2009 No comments

Un semplice client che ti permette di chiamare gratuitamente qualsiasi utenza SIP


download

Categories: Utilità, Voip Tags:

Asterisk – Configurare i Provider Voip [settima parte]

February 18th, 2009 1 comment

SIP Service Provider Account

[AGGIORNATO CON ALTRO ESEMPIO]

Si trovano su Internet moltissimi siti che offrono servizio di VoIP Provider.
E’ possibile utilizzare Asterisk sia per quei provider che forniscono solo un numero entrante, sia per quelli che permettono chiamate in uscita e naturalmente per quelli che ti danno entrambe questi servizi.

Asterisk distingue nella configurazione del file sip.conf l’attivazione dei tre tipi di servizi sopra indicati in modo differente.

type=peer –> può solo inviare chiamate

type=user –> può solo ricevere chiamate

type=friend –> può inviare e ricevere

user e peer hanno delle opzioni specifiche che hanno funzionalità differenti, il friend le eredita entrambe. In generale utilizziamo il friend quando uno user agent (per es. un soft phone) si registra ad asterisk, usiamo un peer quando è asterisk che si registra a qualcuno e gestisce le chiamate in uscita, useremo uno user quando dobbiamo ricevere delle chiamate da qualcuno esternamente quando è sempre asterisk che si registra (o quando vogliamo che l’user agnt possa sopo ricevere). In pratica quelli che si comportano come interni saranno dei friend, i trunk saranno dei peer/user.

PEER

Quando si definisce un peer tra [  ] si dovrà mettere un nome che è puramente indicativo e non indica il suo username; il campo host ha lo scopo di specificare dove inviare le chiamate (sarà sempre l’ip del Provider e non sarà dynamic poichè è lui che deve registrare). A differenza dell’ “user” il “peer” non prevederebbe il context, che definisce l’arrivo delle chiamate, visto che può solo uscire. E qui le cose si complicano perchè invece si può utilizzare poichè c’è un’eccezione gestita da asterisk, dove, se non vede uno user abbinato al peer usa il context definito dal peer stesso. Questo molto spesso ci evita di definire lo user e di usare il peer per gestire entrambe le cose, anche se può portare confusione

(I peers) hanno invece il campo “host” per specificare dove inviare le chiamate.

Il “peer” ha un campo username e password dove viene definito lo username e la password che permettono l’autenticazione con il peer remoto. (Nota che quando definisci uno user lo username va dentro le parentesi quadre, mentre quando definisci un peer lo username va messo nel campo username)

Per inviare le chiamate al peer SIP si possono  usare le seguente sintassi:

Dial(SIP/extension@peername) <– il peername è quello tra parentesi quadre:

o

Dial(SIP/peername/extension) <– l’extension è il numero che voglio chiamare

Per inviare le chiamate al peer IAX si può  usare solo al seguente sintassi:

Dial(IAX2/peername/extension)

La registrazione

Se il tuo IP è dinamico o il tuo provider non conosce il tuo indirizzo IP, è necessario registrarsi periodicamente con il server in modo tale che il tuo provider possa sempre conoscere l’indirizzo a cui inviare le chiamate. Per fare questa cosa si deve utilizzare (sia in sip.conf che in iax.conf) il comando “register”

Sintassi:

register => user[:secret]@host[:port][/extension]

Esempio register => nome:password@voipprovider.com

USER

Esempio base:

[test] <– sezione
type=user
secret=password
context=incoming
<– Quando arriva la chiamata per l’utente “test” la chiamata viene inviata nel contesto specificato (in questo caso incoming)

network options: E’ possibile permettere o bloccare un range di IP con i comandi “permit” e deny”:

[test]
type=user
secret=password
context=incoming
deny=0.0.0.0/0
permit=192.168.1.5
permit=192.168.2.100
permit=10.16.5.0/24
permit=172.16.100.0/255.255.255.0

codec options: E’ possibile specificare quali e in quale ordine usare determinati codec

[test]
type=user
secret=password
context=incoming
disallow=all
allow=gsm
allow=ulaw

FRIENDS

Un friend è sia un user che un peer

I friends sono una semplice scorciatoia per configurare degli endpoint (telefoni IP). Sono anche utilizzati per i più comuni sip provider (sipgate, sipcall, Gizmo, messagnet)

Altri SIP Provider (come per esempio Eutelia) vogliono come configurazione user e peer separati

Per uno user, Asterisk non richiede l’autenticazione username/password se non è presente la voce “secret=”. Per un friend generalmente dobbiamo specificare una “secret” per le nostre connessioni in uscita. Se il friend è un Provider Voip questo prima di instaurare la connessione manda un invite ad Asterisk il quale a questo punto si aspetta un autenticazione da parte del provider per poter terminare la sissione SIP. Chiaramente nessun provider invia questa informazione. Per questo motivo è possibilie utilizzare il seguente comando per saltare l’autenticazione:

insecure=invite,port (vedi anche questo link)

Esempio TRUNK SIP

Vediamo come configurare i trunk SIP. E’ importante ricordarsi che la registrazione va fatta alla fine del contesto [general]

sip.conf

;*******************************************
;*** GLOBAL SETTING

[general]
;context=default

context=from_outside ; –questo è il context che sta in extensions.conf vale solo per le  chiamate sip in ingresso a meno che non sia specificato un context nel peer o nello user –;
realm=class.digium.com
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
disallow=all
allow=ulaw
allow=gsm
language=en

;*******************************************
;*** REGISTER STATEMENTS

register => training1:training@192.168.1.100

;*******************************************
;*** FRIENDS, USER AND PEERS…

[6001]
type=friend
host=dynamic
secret=zoiper
context=users
mailbox=6001@default

[6002]
type=friend
host=dynamic
secret=polycom
context=users
mailbox=6002@default

[to_sipprovider]
type=peer
username=training1
fromuser=training1
fromdomain=example.com
secret=training
canreinvite=no
insecure=invite,port
host=192.168.1.100
deny=0.0.0.0/0
permit=192.168.1.100
disallow=all
allow=gsm
allow=ulaw
allow=alaw
qualify=yes
nat=no

NB: il comando insecure=invite,port viene utilizzato perchè Asterisk generalmete richiede la peer di inviargli le credenziali per poter accettare la chiamata ma non tutti i provider mandano tali informazioni. Con questo comando si dice ad Asterisk di non fare tali richieste ed accettare le chiamate in ingresso.

extension.conf


;*******************************************
;*** GLOBAL SETTING FOR EXTENSION

[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no

;*******************************************
;*** GLOBAL SETTING FOR variables

[globals]

;*******************************************
;*** EXTENSION CONTEXT

[from_outside]
include => inside

[users]
include => inside
include => features

[inside]
exten => 6001,1,Dial(SIP/6001,20)
exten => 6001,n,VoiceMail(6001@default)

exten => 6002,1,Dial(SIP/6002,20)
exten => 6002,n,VoiceMail(6002@default)

[features]
exten => 6599,1,Answer()
exten => 6599,n,Playback(hello-world)
exten => 6599,n,wait(2)
exten => 6599,n,Playback(good-evening)
exten => 6599,n,Hangup()
exten => 6598,1,Goto(demo-menu,s,1)

exten => 6601,1,Goto(day-menu,s,1)

;per ascoltare i messaggi
exten => 6500,1,Answer()
exten => 6500,n,VoiceMailMain(@default)

;Outbound extension
exten => 6700,1,Dial(SIP/6000@to_sipprovider)

;Record The Day Menu
exten => 6600,1,Answer()
exten => 6600,n,Wait(0,5)
exten => 6600,n,Record(day-menu.gsm)
exten => 6600,n,Wait(1)
exten => 6600,n,Playback(day-menu)

[demo-menu]

[day-menu]

IAX2 ITSP Account

Nel file iax.conf aggiungere (dove sono già esistenti e commentati gli esempi di register) la seguente riga:


register => training1:training@192.168.1.100

Per quanto riguarda l’inserimento dell’user account utilizziamo (invece del friend) due utenze separate per chiamate in uscita (peer) e chiamate in ingresso (user):


[to_iaxprovider]
username=training1
secret=training
type=peer
auth=md5
transfer=no
host=192.168.1.100
disallow=all
allow=gsm
allow=ulaw
allow=alaw
qualify=yes
trunk=yes

[training1]
type=user
auth=md5
transfer=no
disallow=all
allow=gsm
allow=ulaw
allow=alaw
secret=training
context=from_outside

In extensions.conf aggiungiamo la chiamata verso il provider IAX


[features]
...
;Outbound extension
exten => 6700,1,Dial(SIP/6000@to_sipprovider)
exten => 6701,1,Dial(IAX2/to_iaxprovider/6000)
...

[AGGIORNAMENTO]

Vediamo un altro esempio in cui il nostro Provider ci fornisce un account voip basato sul proxy sip OpenSER

Dati forniti dal Provider


username: 655
password: pwd655
sip proxy: sip.provider.net

configurazione sip.conf

[general]
language=it
registerattempts=0
registertimeout=80

context=default                 ; Default context for incoming calls

register => 633:pwd633@sip.provider.net/633

[6001]
;type=user
type=friend
host=dynamic
secret=zoiper
context=supercall

[to_sip]
type=peer
context=from_provider_voip ;per le chiamate in ingresso
username=633
fromuser=633 ;serve per sovrascrivere lo username (qui sarebbe 6001)
secret=pwd633
host=sip.provider.net
fromdomain=sip.provider.net
qualify=yes
insecure=invite,port

se non viene indicato il context allora verrà considerato quello indicato nella sezione general (in questo caso quello di default)

configurazione extension.conf

Vogliamo che le chiamate entranti dall’account VoIP vengano inoltrate sull’interno 6001 e che solo quest’ultimo possa utlizzare il provider in uscita mettendo come prefisso 88

[local]
exten => _600X,1,Dial(SIP/${EXTEN},20)


[to_provider_voip]
exten => _88X.,1,Dial(SIP/${EXTEN:2}@to_sip)

[from_provider_voip]
exten => 633,1,Dial(SIP/6001,20)

[supercall]

include => local
include => to_provider_voip

Categories: Articolo Tecnico, Voip Tags:

Asterisk – VoiceMail e Directory [sesta parte]

February 16th, 2009 No comments

L’applicazione VoiceMail()

Una delle funzioni più interessanti di Asterisk è quella della VoiceMail. Grazie a questa applicazione ogni utente può avere la propria segreteria telefonica a cui può accedere secondo le specifiche stabilite.

Inoltre è possibile settare Asterisk in modo tale da far inviare alla caselle di posta un email con l’allegato wave del messaggio lasciato in segreteria. Vediamo come implementare tutto questo.

Aggiungiamo la VoiceMail agli interni Read more…

Categories: Articolo Tecnico, Voip Tags:

Asterisk – Un Dialplan interattivo (IVR) [quinta parte]

February 15th, 2009 No comments

Un IVR non è nient’altro che un risponditore automatico che agisce in base ai toni DTMF che riceve in ingresso

L’applicazione del Dialplan che svolge questo ruolo è Background() (simile all’applicazione Palyback con la differenza che si interrompe quando riceve i DTMF). Vediamo un esempio:

[incoming]

exten => 123,1,Answer()

exten => 123,2,Background(menu)

exten => 1,1,Playback(digits/1)

exten => 2,1,Playback(digits/2)

Dopo la risposta se il chiamante premerà 2 sentirà il Palyback di 2…Alla pressione di un tasto Asterisk aspetta un paio di secondi per essere sicuro dell’azione da eseguire (1 e 123 iniziano con lo stesso numero…)

I Timeout della funzione Background()

Response Timout : tempo di attesa prima che venga inserita la prima cifra (default=10 sec)

Digit Timeout: tempo di attesa tra una cifra e l’altra (default 5 sec)

La funzione WaitExten() permette di modificare “in corsa” il RESPONSE TIMOUT Read more…

Categories: Articolo Tecnico, Voip Tags: