Kamailio 5.1.X y el cifrado de la señalización SIP en CentOS 7.X

Como cada marca/modelo de Softphone gestiona el cifrado de la señalización SIP de manera muy distinta (si lo soporta) los certificados se instalarán y utilizarán solamente desde el lado de Kamailio y para volver más real la configuración, se utilizarán certificados creados con Let’s Encrypt.

Lo pasos a seguir son:

  • creación de los certificados

  • configuración de Kamailio

Empezando con el primer punto, se crearán los certificados. Primero se instala la utilidad que permite utilizar Let’s Encrypt para la generación de los certificados. Estos certificados normalmente se utilizan para servidores Web pero esto no impide que se puedan utilizar con el Proxy SIP. Se instala la aplicación:

yum install certbot -y

Luego se modifica la configuración del cortafuegos para permitir el trafico sobre el puerto 80 TCP, utilizado por Let’s Encrypt para la generación de los certificados y el puerto 5061 TCP que luego se utilizará para la configuración del cifrado de la señalización SIP en Kamailio:

nano /etc/sysconfig/iptables

después de esta linea:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

se añade:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

y después de esta linea:

-A INPUT -p udp -m udp --dport 5060 -j ACCEPT

se añade:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 5061 -j ACCEPT

Se guardan los cambios y se reinicia IPtables:

systemctl restart iptables

Se pasa a la creación de los certificados con el comando:

certbot certonly --standalone

Primero nos solicitará un correo electrónico:

Luego aceptar los términos de la licencia:

Decidir si recibir o no noticias/novedades por parte de EFF (Electronic Frontier Foundation):

Los dominios/sub dominios por los cuales se quiere generar el certificado; se indican los dos asignados al servidor separados por una coma (PERSONALIZAR):

Si todo sale bien, recibiremos este tipo de respuesta:

En este caso los certificados estarán presentes en la siguiente carpeta:

/etc/letsencrypt/live/sip10.voztovoice.org/

Para que Kamailio pueda leer los certificados que se acaban de crear, como Kamailio normalmente arranca con usuario y grupo kamailio, hay que modificar los permisos asociados a los archivos relacionados con los certificados. Esto se realiza con el siguiente comando:

chown -Rf kamailio:kamailio /etc/letsencrypt

Terminada esta parte se pasa a la configuración de Kamailio; la configuración se basa en el archivo predefinido de configuración de Kamailio. Se abre el archivo de configuración:

nano /etc/kamailio/kamailio.cfg

después de esta linea:

#!define WITH_VOICEMAIL

se añade:

#!define WITH_TLS

luego se activa la escucha sobre el puerto 5061TCP añadiendo después de esta linea:

listen=udp:IPPublica:5060

la que sigue:

listen=tls:IPPublica:5061

modificar IPPublica con la IP publica de su servidor. La sentencia WITH_TLS activará los siguientes bloques:

#!ifdef WITH_TLS

enable_tls=yes

#!endif

para activar el soporte TLS;

#!ifdef WITH_TLS

loadmodule "tls.so"

#!endif

para cargar el modulo TLS;

#!ifdef WITH_TLS

# ----- tls params -----

modparam("tls", "config", "//etc/kamailio/tls.cfg")

#!endif

para indicar donde se encuentra el archivo de configuración del modulo TLS para lo que tiene que ver con el tipo de protocolo y la configuración lado servidor y lado cliente. Se guardan los cambios y se pasa al archivo tls.cfg indicado como parámetro del modulo TLS. Se mueve el archivo predefinido:

cd /etc/kamailio

mv tls.cfg tls.cfg.old

Se crea uno nuevo:

nano tls.cfg

donde se copian las siguientes lineas:

[server:default]

method = TLSv1

verify_certificate = no

require_certificate = no

private_key = /etc/letsencrypt/live/sip10.voztovoice.org/privkey.pem

certificate = /etc/letsencrypt/live/sip10.voztovoice.org/fullchain.pem

Una explicación:

  • en la primera linea se indica que tipo de configuración se va a realizar; en este caso lado servidor, configuración predefinida

  • el la segunda linea se indica el protocolo de cifrado que se utilizará (TLS versión 1)

  • en la tercera linea se indica que el certificado no tiene que ser verificado en las solicitudes enviadas por kamailio

  • en la cuarta linea se indica que no se requiere que el cliente envíe su certificado para que el cifrado de la señalización SIP pueda utilizarse. Esto evita configuraciones complejas de los dispositivos SIP pero permite a cualquiera utilizar el cifrado con el Proxy SIP (seguridad)

  • en la quinta y sexta linea se indica la ubicación de la clave privada del certificado y el certificado mismo respectivamente.

Se guardan lo cambios y se reinicia Kamailio:

systemctl restart kamailio

si todo sale bien en el archivo de LOG aparecerán las lineas a seguir:

Ahora puede conectar un Softphone, como por ejemplo Linphone, utilizando el cifrado de laseñalización SIP.

Me comentan

Vota el Articulo: 

No votes yet
Evalúa la calidad del articulo
Subscribe to Comments for "Kamailio 5.1.X y el cifrado de la señalización SIP en CentOS 7.X" Subscribe to VozToVoice - All comments