Enviado por admin el
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
Comentarios recientes