- RedHat 6.3
- certified-asterisk-11.6-cert9
PASO 1
- certified-asterisk-11.6-cert9
PASO 1
El
protocolo XMPP permite conexiones seguras entre cliente y servidor utilizando
el protocolo TLS; para ese efecto se instala, antes de IKSEMEL, las respectivas librerías:
yum install gnutls gnutls-devel
gnutls-utils
se
continua con IKSEMEL:
cd /usr/src
wget
http://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
tar -xf iksemel-1.4.tar.gz
cd iksemel-1.4
./configure --prefix=/usr
make
Antes
de la instalación se ejecuta un test para averiguar que la compilación haya
tenido éxito:
make check
PASS: tst-ikstack
PASS: tst-iks
PASS: tst-sax
PASS: tst-dom
PASS: tst-sha
PASS: tst-md5
PASS: tst-filter
PASS: tst-jid
==================
All 8 tests passed
==================
Ya
que todo está bien, se puede instalar:
make install
Por
último la librería LIBSRTP que permite implementar el cifrado del flujo media
en Asterisk a través del protocolo SRTP (RFC3711):
cd /usr/src
wget http://downloads.sourceforge.net/project/srtp/srtp/1.4.4/srtp-1.4.4.tgz
tar -xf srtp-1.4.4.tgz
cd srtp
./configure --prefix=/usr
CFLAGS=-fPIC
make
Antes
de lanzar el make runtest, para que tenga éxito, hay que modificar una línea en
el archivo que ejecuta el test:
vim test/rtpw_test.sh
Cambiar
esta línea:
RTPW=rtpw
Para
que quede:
RTPW=./rtpw
Se
continúa con el test:
make runtest
make install
Nota:
En la instalación de Asterisk incluir res_srtp.
PASO 2
Se
verá como configurar una conexión SIP entre un Asterisk y un Usuario SIP utilizando el protocolo TLS para la señalización SIP y el cifrado media con el protocolo
SRTP.
Primero
hay que crear los certificados de nuestro servidor. Esto se hace
con una utilidad presente en las fuentes de Asterisk. Desde el servidor:
mkdir /etc/asterisk/keys
Primero
se crea el certificado CA y el certificado para el servidor:
cd /usr/src/certified-asterisk-11.6-cert9/
cd contrib/scripts
./ast_tls_cert -C 192.168.1.40 –O "pbx-asterisk" -d
/etc/asterisk/keys/
- La
opción “C” se utiliza para definir nuestro host.
- La
opción " -O " define el nombre de nuestra organización.
- La
opción " -d " es el directorio de salida de las llaves.
- Se
le pedirá que introduzca una frase de acceso /etc/asterisk/keys/ca.key, ésta frase tendrá que recordarla. Se creará el archivo/etc/asterisk/keys/ca.crt
- Se
le pedirá que introduzca la frase de nuevo, y entonces se creará el archivo /etc/asterisk/keys/asterisk.key
- El
archivo /etc/asterisk/keys/asterisk.crt se generará automáticamente.
- Se
le pedirá que introduzca la frase de paso por tercera vez, y se creará el /etc/asterisk/keys/asterisk.pem, una combinación de los archivos asterisk.key y
asterisk.crt.
Segundo creamos la clave del teléfono utilizando la misma autoridad de
certificación.
./ast_tls_cert -m client -c /etc/asterisk/keys/ca.crt -k
/etc/asterisk/keys/ca.key -C 192.168.1.100 -O "pbx-asterisk" -d
/etc/asterisk/keys -o TEL-YEALINK-100
- Con la opción -m se indica el tipo de certificado. En este caso un certificado cliente
- Con la opción -c se indica la ruta del certificado de la autoridad de certificación
- Con la opción -k se indica la ruta de la clave del certificado de la autoridad de certificación.
- Con -C se indica el nombre de dominio o la IP de donde se conectará el teléfono.
- Con la opción -O se indica el nombre de la empresa o de la institución
- Con la opción -d se indica la ruta donde se guardarán los certificados
- Con la opción –o indicamos el nombre de generación de los archivos.
PASO 3
Configuramos
el sip.conf agregando las siguientes líneas.
tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlscapath=/etc/asterisk/keys
tlsdontverifyserver=yes
Configuramos
nuestro usuario SIP.
[1000]
type=friend
accountcode=1000
language=es
secret=12345
qualify=yes
mailbox=1000@default
host=dynamic
dtmfmode=rfc2833
context=test-srtp
directmedia=no
callerid=Anexo 1000 <1000>
callgroup=1
pickupgroup=1
disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=h263
cc_agent_policy=generic
cc_monitor_policy=generic
transport=tls
encryption=yes
Hay que
trasferir los certificados y copiarlos en algún directorio de nuestra PC.
ca.crt
CONFIGURANDO TLS-SRTP EN TELEFONOS
YEALINK
Configuramos
nuestro Teléfono Yealink Como sigue:
Nota: El
puerto del SIP Server es el 5061
En Avanzado seleccionamos en Encripción RTP (SRTP) -> Compulsory
Luego vamos a la pestaña Seguridad -> Certificados Confiados
Cargamos nuestro ca.crt
-> Upload -> Confirmar.
CONFIGURANDO TLS-SRTP EN TELEFONOS SNOM
Creamos siguiendo los mismos pasos que en Yealink.
./ast_tls_cert -m client -c /etc/asterisk/keys/ca.crt -k /etc/asterisk/keys/ca.key -C 192.168.1.110 -O "pbx-asterisk" -d /etc/asterisk/keys -o TEL-SNOM-110
Configuramos nuestro teléfono Snom como sigue.
./ast_tls_cert -m client -c /etc/asterisk/keys/ca.crt -k /etc/asterisk/keys/ca.key -C 192.168.1.110 -O "pbx-asterisk" -d /etc/asterisk/keys -o TEL-SNOM-110
Configuramos nuestro teléfono Snom como sigue.
Nos vamos a la pestaña SIP
Apply
Seguidamente vamos a la
pestaña RTP
RTP -> RTP Encryption:
on
RTP -> SRTP Auth-tag:
AES-32
RTP -> Media Transport
Offer: UDP
Apply
Cargamos nuestro
Certificado en:
Cerficates:
Nota: Si al subir el certificado
(ca.crt) nos sale el siguiente mensaje:
Le damos Add Exception y
verificamos en Server Certificates:
Verificamos que se ha registrado el Anexo con éxito.
Fuente de apoyo: https://www.voztovoice.org/
Fuente de apoyo: https://www.voztovoice.org/








