Instalación Elastix en Rasperry PI

uelastix

Para los que no lo saben, existe una distribución de Elastix especifica para dispositivos Rasperry  y se llama “uelastix” http://uelastix.com  , ahora veremos como instalarlo.

uelastix

1.- Descargar Uelastix.

Primero necesitamos descargar el tar.gz para Rasperry de la pagina de Uelastix : http://uelastix.com/

Luego descomprimir el archivo creará una carpeta “elastix-arm-2014-01-30″ con los archivos necesarios para la instalación de la siguiente forma :

uelastix

2.-  Iniciando el particionado

Necesitamos una memoria SD al menos de 4GB ..  en esta instalación yo uso una de 8GB.

primera partición deberá ser de tipo FAT y de tamaño al menos 256  MB.
La segunda partición deberá ser de tipo EXT3 de al menos 1.6 GB.
La tercera partición puede ocupar el resto del espacio per debe ser de al menos 1 GB.

#fdisk -l

uleastix

Comenzando el particionado

uelastix

Una vez finalizado el particionado debería debería quedar de esta forma.

uleastix

Creamos los sistemas de archivos que son obligatorios para cada partición.

#mkfs.vfat -n ‘/BOOT’ /dev/mmcblk0p1
#mkfs.ext3 -L ‘/usr’ /dev/mmcblk0p2
#mkfs.ext3 -L ‘/’ /dev/mmcblk0p3

3.- Copiando los archivos

Ahora copiamos los archivos para cada partición montada.

#mount /dev/mmcblk0p1 /mnt/
#tar -C /mnt/ -xzf BOOT.tar.gz
#umount /dev/mmcblk0p1
#mount /dev/mmcblk0p2 /mnt/
#tar -C /mnt/ -xzf usr.tar.gz
#umount /dev/mmcblk0p2
#mount /dev/mmcblk0p3 /mnt/
#tar -C /mnt/ -xzf root.tar.gz
#umount /dev/mmcblk0p3

4.- Probando Uelastix

Una vez que esté desmontado ingresar la tarjeta SD al Rasperry  , la IP por defecto es 192.168.1.251 el usuario “admin” y la contraseña “palosanto”

uelastix

Referencias :

– El archivo README.es que viene a la hora de descomprimir.
Probando uElastix (1era Parte)

Espero les sirva
Juan Oliva
@jroliva

 

 

 

GHOST , Vulnerabilidad fantasma en glibc Linux

ghost

Hace unos días,  fue anunciada una nueva vulnerabilidad que afecta a sistemas Linux, la cual se ha detectado en la biblioteca glibc Linux y nombrado esta vulnerabilidad como “FANTASMA”  o “GHOST”

La libreria GNU C Library (glibc) es una implementación de la biblioteca estándar de C y una parte central del sistema operativo Linux,

La vulnerabilidad ha sido etiquetada con el código CVE-2015-0235  .la cual fue descubierta  por  investigadores de seguridad de la empresa Qualys .

GHOST es un error de tipo  ‘buffer overflow’ que afecta un par de funciones llamadas gethostbyname () y gethostbyname2 () residentes en la biblioteca glibc.

Esta vulnerabilidad permite a un atacante remoto que es capaz de hacer una llamada de solicitud de cualquiera de estas funciones para ejecutar código arbitrario con los permisos del usuario que ejecuta la aplicación.

A la fecha, existen dos exploit P.O.C. en concreto para explotar la vulnerabilidad, uno es para EXIM y otro para WordPress, pero no se descarta que mas adelante se desarrollen para otros programas o servicios.

Por lo tanto, es mas que recomendable actualizar los sistemas, a continuación veremos si somos vulnerables en un sistema Centos 5.X,  mediante el uso de un script desarrollado por la gente de Redhat , que valida la versión de de GLIBC  instalada.

El script se puede descargar desde aqui

1. Copiar el script en el sistema Linux a evaluar con el nombre ghost.sh

Ghost

2.-Brindarle permisos de ejecución

#chmod +x ghost.sh

3.- Ejecutar y probar si es vulnerable.

ghost

4.- Parchando
Para corregir y parchar el sistema, es necesario ejecutar el comando :

#yum update glibc

ghost

5.- Verificar el parche

ghost

Aquí los enlaces informativos de las distribuciones afectadas:

RedHat: https://rhn.redhat.com/errata/RHSA-2015-0090.html

Ubuntu: https://launchpad.net/ubuntu/+source/eglibc

Debian: https://security-tracker.debian.org/tracker/CVE-2015-0235

Oracle Enterprise Linux: https://oss.oracle.com/pipermail/el-errata/2015-January/004810.html CentOS: http://lists.centos.org/pipermail/centos-announce/2015-January/020906.html

OpenSUSE: http://lists.opensuse.org/opensuse-updates/2015-01/msg00085.html GNU C Library: http://www.gnu.org/software/libc/

Espero les sirva
Saludos
Juan Oliva
@jroliva

 

 

 

 

 

Elastix Developer addon – Desarrollo de formulario para ingreso de datos en Mysql

Elastixdeveloper

Como sabrán durante el 2014 se vinieron organizando los llamados “Elastixwebinarwednesdays”  , los cuales eran charlas sobre algún tema en particular del ecosistema de Elastix, de todos los realizados hubieron 3 que me llamaron mucho la atención:

Construyendo un Addon Elastix: Avanzado – Juan Pablo Romero
Construyendo un Addon Elastix Elementos Básicos  – Juan Pablo Romero
Pasos esenciales para generar el RPM de tu Elastix Addon – Luis Abarca

Desde hace tiempo, que quería organizar mi tiempo para poder entender adecuadamente el proceso de creación de un addon en Elastix, por un lado mi alma de programador me lo pedía, y por otro lado el que poder incorporar aplicaciones dentro del esquema de Elastix , brinda una gama muy interesante de posibilidades, por ejemplo agregar un reporte tipo grid de los formularios para el modulo de callcenter, solo por citar un ejemplo.

Así que me puse a revisar los vídeos y puse manos a las obra, para el siguiente ejemplo voy a tomar como base y referencia, el vídeo y material que Juan Pablo Romero tuvo la gentileza de subir a la red los ejemplos (aquí lo pueden ver ) que desarrollo en el webinar “Construyendo un Addon Elastix Elementos Básicos”  así que les recomiendo primero darse el tiempo de verlo para poder no solo desarrollar el addon, si no también entender conceptos como MVC , Smarty y la estructura de archivos y funcionamiento del Developer.

Vamos a crear un módulo llamado “producto_ingreso” que tenga 3 campos de entrada (codigo,nombre,descripcion) la cual permita guardar la información en la base de datos Mysql local del servidor.

1.- Setup de la base de datos

Descargar el archivo “webinar.sql” desde aquí y cargar la información a la base de datos de la siguiente forma:

#mysql -u root -p 123456 < webinar.sql

2.- Creación del módulo desde el Developer

Ingresar al Build Module y configurarlo de la siguiente forma :

Module Name: producto_ingreso
Your Name : tu nombre
Your e-mail : tu email
Module Level : Level 3
Leve 1 Parent Exist : No
Level 1 Parent Name : Sistema
Level 2 Parent Name : mantenimiento
Module Type: Form
Field Name : codigo,nombre,descripcion
Type Filed: Type Text

Una vez configurado hacer clic en el botón “Save”

Elastix_Developer

Cuando el Developer crea el modulo se verá de la siguiente forma.

Elastix_Developer

El Developer internamente habrá creado las siguiente carpetas :

Elastix_Developer

3.- Modificar la conexión a la base de datos

Ingresar al archivo “default.conf.php” ubicado en la carpeta “/var/www/html/modules/producto_ingreso/configs”

Cambiar:

$arrConfModule[‘dsn_conn_database’] = ”;

Por :

$arrConfModule[‘dsn_conn_database’] = “mysql://webinar:webinar@localhost/webinar”;

4.- Crear el archivo que corresponde al idioma español

– Desde la consola, crear el archivo es.lang en la carpeta lang del modulo de la siguiente forma:

#touch /var/www/html/modules/producto_ingreso/lang/es.lang

– Copiar el contenido desde la siguiente url https://github.com/jprb79/webinar_addons/blob/master/modules/producto_lista/lang/es.lang y copiarlo al archivo es.lang previamente creado.

Elastix_developer

5.- Modificar el archivo “paloSantoproducto_ingreso.class.php” ubicado en /var/www/html/modules/producto_ingreso/libs/ el cual que corresponde a la  clase del módulo

– Desactivar/comentar las funciones “getproducto_ingreso” y “getproducto_ingresoById” de la siguiente forma:

Elastix_Developer

– Luego agregar la función “saveNew” de la siguiente forma:

Elasltix_Developer

6.- Modificar el controlador “index.php” ubicado en la ubicación “/var/www/html/modules/producto_ingreso/”

– Linea 61 aproximadamente, Modificar la cadena de conexión

$pDB = “”;

por

$pDB = new paloDB($arrConf[‘dsn_conn_database’]);
– Linea 139 aproximadamente, identificar la función “saveNewproducto_ingreso” luego de la condicional “else”

Elastix_Developer
Cambiar/agregar la condicional de la siguiente forma:

Elastix_Developer
– Linea 160 aproximadamente, en la función “createFieldForm” cambiar la siguientes lineas

“codigo”   => array(      “LABEL”                  => _tr(“codigo”),

Por:

“codigo”   => array(      “LABEL”                  => _tr(“Product code”),

“nombre”   => array(      “LABEL”                  => _tr(“nombre”),

Por:

“nombre”   => array(      “LABEL”                  => _tr(“Name”),

“descripcion”   => array(      “LABEL”                  => _tr(“descripcion”),

Por:

“descripcion”   => array(      “LABEL”                  => _tr(“Description”),

 

La cual quedará de la siguiente forma:

Elastix_Developer

– Linea 202 aproximadamente, luego de la función “getAction” agregar la nueva función “_pre” como se muestra a continuación:

Elastix_Developer

7.- Pruebas al módulo

Una vez que hemos culminado con la programación del modulo, ingresamos ingresamos información y hacemos clic en el boton “Save”

Elastix_Developer

Si todo esta correcto , nos mostrará un mensaje que indica que el producto se ha guardado correctamente, como se muestra a continuación :

Elastix_Developer

Para poder validar que los datos están correctamente grabados en la base de datos, podemos realizar la consulta directa como se muestra a continuación.

Elastix_Developer

En caso de tener errores, o que no funcione el modulo, el archivo a consultar es :

/var/log/httpd/ssl_error_log

En el próximo post desarrollaremos el módulo para listar los registros ingresados.

Saludos
Juan Oliva
@jroliva

 

Appliance UTM Pfsense ALIX

pfsense

En la pasada edición de Elastix Be Free en México, tuve la oportunidad de encontrarme nuevamente con mi gran amigo y compatriota radicado en tierras mexicanas Daniel Guevara , me comentaba que en la empresa CLEARCOM donde dirige los proyectos de ingeniería , estaban usando un modelo de Appliance pequeño, pero bastante potente, en donde instalaban Pfsense, para brindar seguridad a sus clientes, por si no lo saben Pfsense es un distribución de UTM (firewall, antivirus, ids, ips) muy muy interesante basada en sistema operativo FreeBsd.

Tanto conversamos del tema, que Daniel tuvo la cordialidad de proveerme un equipo para mirarlo y darle mi opinión.

1.- Hardware

El equipo tiene las siguientes especificaciones de hardware.

Placa Mainboard : ALIX BOARD
Procesador : AMD
Memoria : 2GB  DDR3 1066 DRAM
Interfases de red : 3x Realtek Gigabit Ethernet ports
Disco duro : SanDisk 8GB SDHC Card
Fuente de alimentación : External 100~240 VAC In, 12 VDC/2A/24W Out

 

pfsense

 

pfsense

 

2.- Software

pfsense

PfSense es una distribución libre, de código abierto personalizada de FreeBSD adaptada para su uso como un firewall y router, Además de ser un potente cortafuegos, flexible y una plataforma de enrutamiento, incluye una larga lista de características relacionadas como :

Stateful packet filtering firewall or pure router
Routing policy per gateway and per-rule for multiple WAN, failover, load balancing
Transparent layer 2 firewall
Support for IPV6, NAT, BGP
Captive portal with MAC filtering, RADIUS support, etc
VPN: IPsec, OpenVPN, PPTP
Dynamic DNS client
DHCP Server and Relay functions
PPPoE Server
Reporting and monitoring features with real-time information

 

pfsense

Como ven la potencia de la solución radica en el S.O.

3.- Posicionamiento.

El equipo trabaja tradicionalmente detrás del router, ya sea con una dirección IP publica o con una red Lan en modo nat.

pfsense

4.- Conclusiones

El equipo es perfecto para protección, de hasta de 100 equipos aproximadamente, ya que tiene que ver, si se usa balanceo o vpn.

Por otro lado en un mundo donde las pequeñas, medianas empresas, inclusive redes de hogar, son las preferidas de los virus, botnets y routers a los cuales les descubren cada vez mas vulnerabilidades, contar con este tipo de Appliance compactos, son una alternativa muy buena para la protección de la información.

 

Saludos
Juan Oliva
@jroliva

 

 

 

 

 

 

Elastix SIP Firewall Overview

sipfirewall

Como ya es una costumbre, en las ediciones de ELastixWorld siempre es aprovechado para realizar anuncios y lanzamientos,  en este caso, algo que no paso desapercibido en Chile, fue la presentación en sociedad de un nuevo producto denominado Elastix SIP Firewall.

Elastix SIP Firewall

Definitivamente debido a que es un producto relacionado a seguridad, de inmediato llamo mi atención, y gracias a la confianza existente por parte del team de Elastix pude acceder a un equipo, a continuación un pequeño overview del mismo.

sipfirewall

En primera instancia, como todo lo que diseña Elastix,  tiene un concepto innovador, no solo por su tamaño, que ya es bastante compacto, si no también por su modo de empleo.

Según como está definido, el dispositivo es un equipo de frontera para brindar protección a una Central PBX IP que use el protocolo SIP.

sipfirewall

1.- Modos de trabajo

La forma como puede se puede integrar a una PBX IP para brindar seguridad es bastante simple, ya que opera a nivel de capa 2 , así que no es necesario realizar cambios o configuración adicional en la PBX IP , puede trabajar bajo estos escenarios de uso:

Escenario 1
Cuando la central IP esta conectada directamente hacia internet.

sipfirewall

 

Escenario 2
Cuando la central IP esta protegida por un Firewall de datos tradicional.

sipfirewall

Escenario 3
Protegiendo un conjunto de Centrales IP simultáneamente.

sipfirewall

Este ultimo escenario,  tal vez es el mas interesante por que permite proteger a mas de una plataforma, particularmente, las pruebas que realicé, fueron de esta forma:

sipfirewall

El escenario que implementé fue similar al 1 y 2 inclusive.

 

2.- Protección

A nivel de protección el equipo cubre todos los tipos de ataques conocidos, brindando protección en modo pro activo, una lista de algunos de los ataques de los cuales protege son los siguientes:

  • Reconocimiento de ataques (Fingerprinting de dispositivos SIP, enumeración de usuarios, Intento de obtención de contraseñas o password crackging)
  • Ataques DoS
  • Ataques basados en SIP Cross Site Scripting
  • Ataques basados en anomalías SIP
  • Detección y prevención de fraude telefónico
  • Protección contra el Spam VOIP y War dialing
  • Respuesta a un ataque incluyendo la opción de disminución silenciosa de paquetes para prevenir ataques continuos
  • Servicio de actualización de lista negra dinámica para amenazas VoIP y de PBX/Gateways SIP
  • Capacidad de configuración de reglas de Blacklist/Whitelist/Firewall
  • Soporte para el bloqueo basado en la ubicación geográfica

 

3.- Conclusiones

– Equipo compacto y de poco consumo eléctrico.

– La integración con la central IP es prácticamente transparente y sin configuraciones adicionales.

– Brinda protección pro activa de los principales ataques VoIP en la actualidad , lo cual puedo asegurar :D

– Motor de actualización de reglas ante nuevos ataques que vallan apareciendo en el tiempo.

Para mas información sobre el equipo pueden visitar la pagina:
http://www.elastix.com/portfolio-item/sip-firewall/

Uso y configuración pueden revisar la guía de instalación rápida la cual pueden descargar desde aquí :
http://www.elastix.com/wp-content/uploads/2014/11/SIP-Firewall-Quick-Installation-Guide.pdf

 

Saludos
Juan Oliva
@jroliva

 

 

 

 

Instalando OpenVAS en Ubuntu 14.04

openvas

Ahora que Nessus (El analizador de Vulnerabilidades mas usado en en el mundo de Pentesting) se ha puesto un poco mas rígido en sus términos de uso, es hora de ir probando otras herramientas para Análisis de Vulnerabilidades, en este caso va ser OpenVAS, desde hace ya un tiempo, he venido escuchando mucho de este software, pero no había tenido la oportunidad de probarlo, en este caso vamos a ver el proceso de instalación en un sistema Ubuntu 14.04

1.- Instalar dependencias

#apt-get install build-essential bison flex cmake pkg-config  libglib2.0-dev libgnutls-dev  libpcap0.8-dev libgpgme11 libgpgme11-dev doxygen libuuid1 uuid-dev sqlfairy xmltoman sqlite3 libxml2-dev libxslt1.1 libxslt1-dev xsltproc libmicrohttpd-dev libsqlite3-dev

2.- Descargar y descomprimir OpenVAS

#mkdir openvas-src
#cd openvas-src/
#wget http://wald.intevation.org/frs/download.php/1638/openvas-libraries-7.0.1.tar.gz
#wget http://wald.intevation.org/frs/download.php/1640/openvas-scanner-4.0.1.tar.gz
#wget http://wald.intevation.org/frs/download.php/1637/openvas-manager-5.0.0.tar.gz
#wget http://wald.intevation.org/frs/download.php/1639/greenbone-security-assistant-5.0.0.tar.gz
#wget http://wald.intevation.org/frs/download.php/1633/openvas-cli-1.3.0.tar.gz
#tar xvfz  openvas-libraries-7.0.1.tar.gz
#tar xvfz  openvas-scanner-4.0.1.tar.gz
#tar xvfz  openvas-manager-5.0.0.tar.gz
#tar xvfz  openvas-cli-1.3.0.tar.gz

3.- Compilar e instalar OpenVAS

#cd openvas-libraries-7.0.1/
#mkdir source
#cd source
#cmake ..
#make
#make install

#cd openvas-scanner-4.0.1/
#mkdir source
#cd source
#cmake ..
#make
#make install

#cd openvas-manager-5.0.0/
#mkdir source
#cd source
#cmake ..
#make
#make install

#cd openvas-cli-1.3.0/
#mkdir source
#cd source
#cmake ..
#make
#make install

#cd greenbone-security-assistant-5.0.0/
#mkdir source
#cd source
#cmake ..
#make
#make install

4.- Creación de certificado e inicio de servicio

#openvas-mkcert
#ldconfig
#openvassd

Tendremos que verificar que el servicio aya iniciado con

#ps -ef | grep openvas

Y veremos el siguiente resultado:

openvas

Con este resultado, estamos seguro que tenemos un proceso de OpenVAS ejecutándose

 

5.- Descarga de Firmas de Vulnerabilidades

#openvas-nvt-sync
#openvas-scapdata-sync
#openvas-certdata-sync

6.- Recargar procesos y finalizar configuración.

#openvas-mkcert-client -n -i
#openvasmd –rebuild –progress
#openvasmd
#gsad

Verificar que OpenVAS este funcionando:

openvas

7.- Crear el usuario de administración.

openvas

Con la instalación finalizada, podremos ingresar a la interfase web: https://DIRECCIONIP

Ingresaremos con el usuario “admin” y la contraseña generada en el paso anterior.

openvasEn otro post explicaremos como configurar OpenVAS para hacer una análisis de vulnerabilidades

Saludos
@jroliva

 

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 106 seguidores