Author: Alejandro M.

FusionPBX 4.4.10

FusionPBX (Debian 9) Upgrade PHP 7.3 & Issues

El día de hoy mientras realizaba una actualización de PHP 7.0 a PHP 7.3 y agregar HTTP/2 y GZIP a mi configuración de Nginx, me encontre que al actualizar Freeswitch de 1.10.0 a 1.10.1, freeswitch ya no quería recibir llamadas, ya que marcaba el siguiente error:

"Failure to connect to CORE_DB pgsql" 

Después de buscar y rebuscar por ahí, encontre los siguientes pasos para hacerlo funcionar, primero debes instalar:

Crear un usuario de solo LECTURA en Postgresql

Primero nos conectamos al postgres como usuario administrador:

ndr=> create user username with password ‘password‘;
CREATE ROLE
ndr=> grant connect on database database_name to username;
GRANT
ndr=> grant usage on schema public to username;
GRANT
ndr=> grant select on all tables in schema public to username;
GRANT
ndr=> alter default privileges in schema public
ndr-> grant select on tables to username;
ALTER DEFAULT PRIVILEGES

Recuerda que lo anterior debe ejecutase en la database a la cual deseas aplicar el usuario de solo lectura

\c database

Eso es todo 😉

Determinando pm.max-children en PHP-FPM

Para determinar el número de procesos de PHP-FPM, debemos tomar en cuenta la memoria total del servidor, restar la memoria reservada que dejaremos para otros procesos en el servidor y el resultado debemos dividirlo entre el promedio de uso de cada ejecución de PHP.

Es decir, por ejemplo, tenemos un servidor con 1GB de memoria y a ese 1GB dejaremos reservado para sistema unos 250MB, por lo que nos quedarían 750MB y en promedio PHP-FPM usa 85MB por “children”.

pm.max-children=750/85=8.8 

Podemos redondear a 9 como max-children.

Para sacar lo que PHP-FPM usa por children, podemos usar estos comandos:

ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' | grep php-fpm

Ajun v1.4 – Descubrimiento de Parametros en HTTP

Guía rápida
git clone https://github.com/s0md3v/Arjun.git
Ejemplo:
python3 arjun.py -u https://www.targetwebapp.mx --get
ó
python3 arjun.py -u https://www.targetwebapp.mx --post

Ajun es una herramienta que te ayuda a buscar los parametros usados en una web/api, ya sea de tipo get,post,json para buscar posibles parametros vulnerables que introduce el usuario.

Más ejemplos de uso:

https://github.com/s0md3v/Arjun/wiki/Usage

Compile and Install OpenVPN 2.4.X on XenServer 6.5

It’s a pain in the ass, but this is the fast recipe, XenServer 6.5 is based on Centos 5.11, so:

Edit CentOS:

sudo nano /etc/yum.repos.d/CentOS-Base.repo

Change ‘baseurl=‘ and comment ‘mirrorlist

CentOS-Base.repo
CentOS-Base.repo

Then downgrade to CentOS packages:

yum downgrade glibc glibc-common glibc-devel glibc-headers

XCP-ng 7.6.0 Local ISO Repository Dom0

Para los que aun no lo saben, XCP-ng es el fork Open Source de XenServer, el cual provee de todas casi todas las características de XenServer de manera gratuita y el sistema de parches es a través de Yum.

He instalado en un servidor XCP-ng para así para probar todas las características que ofrece. Una vez instalado necesitaba instalar mi primer servidor Ubuntu, para eso requería los ISO’s a la mano, ya que no tenía ningún servidor NFS disponible. Lo único que quedaba era crear un repositorio tipo ISO local en Dom0 para montarlo como un SR en XCP-ng.

Python Virtualenv Portable

Para los que no conocen el paquete Virtualenv, es una herramienta para crear ambientes de Python aislados, es decir, crea en un directorio toda la estructura de librerias y directorios para ejecutar un interprete python, ya sea 2.7 o 3 y a su vez instalar librerias o paquetes con PIP sin meterse con las librerías del sistema o externas a este ambiente aislado.

Conociendo Docker – Introducción

Docker es una tecnología que inicio a principios del 2013, que a lo largo de estos años ha madurado y tomado presencia para temas de desarrollo, pruebas y produccion de microservicios.

En si, lo que hace Docker es virtualizar a nivel de sistema operativo en pequeños contenedores (containers) todo un ambiente de ejecución/desarrollo de uno o más paquetes de softwares.

MongoDB Export/Import Pipe

Así rápido para nota mental, este comando lo uso para migrar una DB de un MongoDB a otro sin escribir el backup en el disco y todo se On The Fly.

mongodump -h CfgSrv01 --port 27020 -d database --archive | mongorestore -h CfgSrv01 --port 27021 --ssl -d database --archive

Se puede agregar el argumento –gzip para comprimir el backup y en el MongoDB destino lo descomprima, este flag va en ambos comandos.

mongodump -h CfgSrv01 --port 27020 -d database --gzip --archive | mongorestore -h CfgSrv01 --port 27021 --ssl -d database --gzip --archive

Probado en MongoDB v3.2.20