terça-feira, 23 de janeiro de 2024

Asterisk FreePBX - Completar ligações VIVO SIP para iPhone

Eu não conseguia completar ligações no SIP da Vivo para celulares iPhone.

Consegui resolver para mim e fiz pull request no projeto oficial.

O problema é o maxptime fixo até o momento em 150 que tem que ser multiplo do tamanho do pacote enviado, normalmente 20ms. Uma outra solução seria reduzir para 10ms

O que sugeri foi alterar o valor para 140ms que é multiplo de 20ms e 10ms



Mas como recompilar o asterisk atual (2023) do freePBX

yum install git


cd /usr/src/

git clone --depth 1 --branch 16.30.0 https://github.com/asterisk/asterisk.git asterisk-16.30.0


vi /usr/src/asterisk-16.30.0/main/codec_builtin.c

Editei todos os valores ".maximum_ms" impar para 10 a menos.

yum install bzip2

yum install openssl

yum install openssl-devel

yum install patch

yum install libedit

yum install libedit-devel

yum install uuid

yum install uuid-devel

yum install libuuid-devel

yum install jansson

yum install jansson-devel

yum install libxml2-devel

yum install libxml2

yum install sqlite

yum install libsqlite3x

yum install libsqlite3x-devel


./configure


make


cp   usr/src/asterisk-16.30.0/main/asterisk /usr/sbin/asterisk

POSTFIX PROXMOX 7.4.1

Como eu configurei meu Proxmox para enviar e-mail

O e-mail de origem é editado em:

Datacenter -> Options -> Email from address


Editar /etc/postfix/main.cf

.
.
.
#relayhost =
.
.
.
#Inserido por Eduardo xx/xx/2024
relayhost = [smtp-server.example.com]:587
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_security_options = noanonymous
# foi necessario instalar pacote: apt install libsasl2-modules

 

Instalar pacote 

apt install libsasl2-modules 

 

Editar /etc/postfix/sasl/sasl_passwd

[smtp-server.example.com]:587 userSMTP:passSMTP


Gerar hash da senha no .db

postmap /etc/postfix/sasl/sasl_passwd

chmod 600 /etc/postfix/sasl/sasl_passwd /etc/postfix/sasl/sasl_passwd.db 


Reiniciar postfix

service postfix restart


Testar

 echo "Corpo do e-mail" | mail -s "Assunto do e-mail" destino@example.com

quarta-feira, 15 de março de 2023

Serverless

 Altrenativas para serverless on-premise

Antes de usar serverless precisa pensar onde rodar

- Docker - para situações mais simples

- Kuberntes 

- Apache Mesos


Vamos a lista por popularidade


1) Dokku

fonte: https://dokku.com/

An open source PAAS alternative to Heroku.

Dokku helps you build and manage the lifecycle of applications from building to scaling.

Dokku Manager Interface Dashboard on https://github.com/beydogan/dokku-man

Ledokku is a beautiful web dashboard powered by dokku. With Ledokku you will be able to deploy apps in most popular programming languages, link them to most popular databases and all that with almost zero configuration from your side. Apart from all these amazing features it will also save you money along the way. fonte: https://www.ledokku.com/


2) OpenFaaS

fonte: https://www.openfaas.com/

Serverless Functions, Made Simple.

OpenFaaS® makes it simple to deploy both functions and existing code to Kubernetes.


3) CapRover

fonte: https://caprover.com/

CapRover is an extremely easy to use app/database deployment & web server manager for your NodeJS, Python, PHP, ASP.NET, Ruby, MySQL, MongoDB, Postgres, WordPress (and etc...) applications! It's blazingly fast and very robust as it uses Docker, nginx, LetsEncrypt and NetData under the hood behind its simple-to-use interface.


4) OpenWhisk

fonte: https://openwhisk.apache.org/

Apache OpenWhisk is an open source, distributed Serverless platform that executes functions (fx) in response to events at any scale. OpenWhisk manages the infrastructure, servers and scaling using containers. Options include many of today's popular Container frameworks such as Kubernetes and OpenShift, and Compose.


5) Fn Project

fonte: https://fnproject.io/

Open Source. Container-native. Serverless platform.

Dashbord in UI - Fn Sub-projects: https://github.com/fnproject/ui


X) Parse

fonte: https://parseplatform.org/

The Complete Application Stack. Build applications faster with object and file storage, user authentication, push notifications, dashboard and more out of the box.

Parse-Dashborad A dashboard for managing Parse Server

Cloud Code is built into Parse Server. The default entry point for your Cloud


X) Fission

fonte: https://fission.io/

Open source Kubernetes-native Serverless Framework


X) Iron.IO

fonte: https://open.iron.io/

Functions is an open source serverless computing platform for any cloud - private, public, or hybrid.

Kubernetes, Docker Swarm and Mesosphere support


X) Nuclio

fonte: https://nuclio.io/

The simplest way to explore Nuclio is to run its graphical user interface (GUI) of the Nuclio dashboard. All you need to run the dashboard is Docker.


https://knative.dev/docs/

https://kyma-project.io/

segunda-feira, 28 de dezembro de 2020

Ferramentas de test

Lista de ferramentas que existem mas não uso no dia a dia e por isso acabo esquecendo.

social-engineer-toolkit

Cria clone de sites.

https://github.com/trustedsec/social-engineer-toolkit

Beef

Faz Cross-Site Scripting (XSS), permitindo executar scripts no navegador dos clientes que estão com site aberto, ex: pop-up emulando uma janela do facebook pedindo para digitar a senha novamente.

https://beefproject.com/

SQL Map

Explora uma falha de sql injection de forma automática extraindo informações do banco.

http://sqlmap.org/

Weevely

Cria um terminal através do servidor apache, caso seja possível fazer upload de um arquivo PHP.

https://github.com/epinna/weevely3

OWASP ZAP

Cria um relatório de vulnerabilidades

https://www.zaproxy.org/

mitmf

mitmf --arp --spoof --target [IP vítima] --gateway [IP roteador] -i [interface]


Slowloris

nmap zenmap

netcat

sexta-feira, 9 de agosto de 2019

Virtualização VM e Docker

Hoje ter servidores pra cada necessidade já e claramente perda de recursos.
Então qual a solução? Contratar da núvem ou virtualizar localmente (On-Premises).
Passar pra nuvem realmente é uma alternativa, precisa ser feita uma avaliação financeira.
Se pagar por mês, em 24x já vale o custo do PC simples desligado, sim só o Servidor simples desligado.
Tem que por na conta:
- energia elétrica
- ar-condicionado,
- profissional de DevOps,
- rack,
- espaço do rack no aluguel do imóvel.
- depreciação

Depende de quantos serviços simples já vale um servidor profissional de R$5mil, R$15mil, R$130mil. Mas comprar agora ou financiar.

Virtualização tem varias opções e formas, temos as VMs e os Containers.
Para ambas as formas temos opções de fazer em nossos desktops, em cima do Sistema Operacional existente seja Windows 10, Linux Desktop ou MacOS, mas isso não serve pra por em produção.

VM no Desktop temos Oracle VirtualBox, VMware Play(só pra rodar), VMWare Workstation, VMWare Fusion.
Container no Desktop temos Docker CE, Minikube (kubernetes), Canonical Microk8s.

Pra virtualizar precisamos de softwares de virtualização (Hypervisor) em um Sistema Operacional que consuma o minimo.

Abaixo algumas opções para VM:
- KVM
-- Proxmox VE
-- oVirt
- VMWare EXSi
- Microsoft Hyper-V
- Citrix XenServer
-- Citrix Hypervisor 8.0
-- XenServer 7.1 LTSR
-- XenServer 7.0
-- XenServer 7.6 Free Edition
-- XPC-NG
--- Xen Orchestra (Free - U$77 - U$550) (Free, minha escolha)

Abaixo algumas opções para Container:
- CoreOS
-- Tectonic
-- Integrado ao Xen Orchestra Unified Appliance (XOA)
-- RedHat Openshift
- RancherOS
-- Rancher (Minha escolha)

Existem outras distribuições do Kubernets

Tanto para VM como Containers existem os Orquestradores e existem as interfaces gráficas web (Web GUI, site pra gerenciar) que são produtos adicionais opcionais.

Para containers tem o mais simples Swarm e observei movimento de uma padronização em cima do Kubernets.
Todas Web GUI que encontrei já tem algum recurso para orquestração dos contêineres.

Algumas Web GUI para conteiners
-- Portainer
-- Shipyard
-- Rancher

Eu tenho só alguns PC simples, assim que der vou comprar meu servidor, mas já preciso juntar algumas coisinhas nos PCs que tenho.

Eu não preciso de orquestradores pra VMs, uma Web GUI básica já me resolve, pode ser as que vem junto.
Uma opção livre que promete unir os diferentes hypervisors é o OpenStack.
Não achei um linux pronto com OpenStack e um Hypervisor, aceito sugestões.

Eu preciso de orquestração de containters, com certeza não necessito de tudo que o kubernets oferece, Swarm já me atende uso ele em desenvolvimento.

Então eu escolhi o xcp-ng com xoa livre.
Não consegui ativar o pluging do xoa pra gerenciar conteiners no CoreOS.
Então optei pelo Rancher no RancherOS.





segunda-feira, 4 de junho de 2018

Facebook Fake Comments

Recentemente vi algumas noticias com base em capturas de tela do Facebook e twitter. Quando fui olhar teoricamente os comentários tinham sido apagados.
Criei essa extensão só pra permitir que qualquer pessoa leiga consiga também criar seus Prints de comentários do Facebook.
Acredite os profissionais já sabem fazer isso, não estou ajudando eles.

Código Fonte:
https://github.com/eduardomazolini/FacebookFakeComment/

quinta-feira, 26 de abril de 2018

ngrok torna DDNS passado

Essa semana estava testando um chatbot para skype e na documentação do exemplo sugeria o uso do ngrok pra rodar a demo, até então não conhecia o serviço.

Já vi muitos modos de fazer túnel para diversos propósitos, mas a simplicidade e utilidade deste serviço é impressionante.

O site oficial é ngrok.com.
Eu usei para criar um túnel publico pra a aplicação que esta rodando na minha maquina de desenvolvimento, mas não é só isso, o Skype exige que o servidor seja HTTPS, eu não precisei criar certificado, nem parei pra pensar nisso.

O túnel no lado publico é HTTP ou HTTPS usa o certificado da ngrok, afinal é um subdomínio deles, e chama do meu lado aplicação HTTP.

Simplesmente tinha meu servidor XAMPP exposto em um subdominio deles com certificado ou seja HTTPS. No segundo seguinte meu aplicativo em NODE.JS do bot funcionado com HTTPS recebendo os webhooks.

DDNS é coisa do passado com esse serviço, quanto já apanhei:
 - configurando encaminhamento de porta do roteador,
 - fixando a reserva de IP no DHCP pra minha maquina,
 - gerar um certificado HTTPS quase impossível em algumas situações.



Como o site diz:
Public URLs for building webhook integrations.
Public URLs for testing your chatbot.

Publique endereços para webhooks que também são usadas por chatbots.

Public URLs for exposing your local web server.
Public URLs for demoing from your own machine.
Public URLs for sending previews to clients.
Public URLs for testing on mobile devices.

Publique URLs para expor seu servidor local permitindo demonstração, mostrar previas sem precisar fazer deploy, testar backend de aplicativos moveis.

Public URLs for SSH access to your Raspberry Pi.

Crie túnel TCP para acessar seu servidor por SSH.

Éhhhh o serviço não é exclusivo pra HTTP/HTTPS é também túnel TLS e TCP.
Você pode expor um banco de dados, qualquer serviço que quiser.

Espero que tenham achado tão util quanto eu.

quarta-feira, 21 de fevereiro de 2018

UBNT SSH Mudar frequência ou outro parâmetro

Esses dias peguei um PTP que estava sofrendo interferência e não conseguia acessar o lado AP por HTTP. Muito lento consegui abrir SSH.
Então precisei alterar a frequência pra depois continuar a configurar.
Usei o comando SED que esta disponível no shell.
Supondo que mudei de 5500 MHz para 5560 MHz segue o exemplo


terça-feira, 31 de outubro de 2017

mAP para técnico de campo

Objetivo:

Permitir ao técnico agilidade na instalação acessando todos os equipamentos sem ficar fixando IP.
A configuração se parece com:
- as Ethernet em bridge
- a WLAN com NAT e servidor DHCP.

Sugestões adicionais não listadas aqui:
- O mAP pode fazer para o cliente a demonstração do serviço de Hotspot do Mikrotik
- O mAP pode discar uma OVPN pra um servidor da empresa.
- O Suporte pode discar uma EoIP em cima da OVPN pra ajudar o técnico de campo.

Pontos de atenção:

- Mikrotik reiniciado sem configuração default não tem IP precisa de acesso por MAC, tem que estar na mesma bridge.
- O notebook ou celular do técnico precisa de um servidor DHCP,
- Como é tudo uma só bridge e tem um DHCP Server ativo devemos evitar que ele conflite com o roteador do cliente ou DHCP da CPE que serve ao roteador do cliente.

Solução:

1) Trabalhar em bridge para permitir o acesso ao mikrotik por MAC.
2) Adicionar vários IPs diferentes na bridge para comunicação com cada rede que os equipamentos usam.
3) Criar DHCP Server da RB que é usada no Wi-Fi.
4) Fazer SRC-NAT do que vai para os equipamentos pois eles não tem gateway default.
5) Filtrar DHCP Server da RB que não atrapalhe a rede do cliente.
6) Configurações Básicas para acesso a RB.


Passo a passo:

1) Trabalhar em bridge para permitir o acesso ao mikrotik por MAC.

/interface bridge
add name=bridge
/interface bridge port
add bridge=bridge interface=wlan1
add bridge=bridge interface=ether1
add bridge=bridge interface=ether2

2) Adicionar vários IPs diferentes na bridge para comunicação com cada rede que os equipamentos usam.

/ip address
add address=192.168.1.10/24 interface=bridge comment="UBNT"
add address=10.0.0.204/24 interface=bridge comment="Padrao p Cliente"
/ip dhcp-client
add default-route-distance=1 disabled=no interface=bridge
/ip dns
set servers=8.8.8.8,8.8.4.4
/ip route
add distance=10 gateway=10.0.0.1 comment="Padrao p Cliente distancia maior que dhcp client"

3) Criar DHCP Server da RB que é usada no Wi-Fi.

/ip address
add address=192.168.5.1/24 interface=bridge
/ip pool
add name=pool-wifi ranges=192.168.5.100-192.168.5.200
/ip dhcp-server
add address-pool=pool-wifi disabled=no interface=bridge name=server-wifi
/ip dhcp-server network
add address=192.168.5.0/24 dns-server=8.8.8.8,8.8.4.4 gateway=192.168.5.1

/interface wireless security-profiles
add authentication-types=wpa-psk,wpa2-psk mode=dynamic-keys name=wireless \
    wpa-pre-shared-key=02091925 wpa2-pre-shared-key=02091925
/interface wireless
set [ find default-name=wlan1 ] disabled=no mode=ap-bridge security-profile=wireless \
    ssid=WiFiTecnico

4) Fazer SRC-NAT do que vai para os equipamentos pois eles não tem gateway default.

/ip firewall nat
add action=masquerade chain=srcnat src-address=192.168.5.0/24


5) Filtrar DHCP Server da RB que não atrapalhe a rede do cliente.

/interface bridge filter
add action=drop chain=input dst-port=67 in-interface=ether1 ip-protocol=udp \
    mac-protocol=ip
add action=drop chain=output dst-port=68 ip-protocol=udp mac-protocol=ip \
    out-interface=ether1
add action=drop chain=input dst-port=67 in-interface=ether2 ip-protocol=udp \
    mac-protocol=ip
add action=drop chain=output dst-port=68 ip-protocol=udp mac-protocol=ip \
    out-interface=ether2
add action=drop chain=forward dst-port=67 in-interface=wlan1 ip-protocol=udp \
    mac-protocol=ip
add action=drop chain=forward dst-port=68 ip-protocol=udp mac-protocol=ip \
    out-interface=wlan1

6) Configurações Básicas para acesso a RB.

/system identity
set name=mAP-Tecnico1
/user group
add name=null
/user aaa
set default-group=null
/user
add name=BLABLABLA password=BLABLABLA group=full
set [find name=admin] group=null password=RANDOM
set 0 group=null

Elastix não morreu

Infelizmente a marca Elastix foi comprada pela 3CX e quase perdemos uma ótima distribuição Asterisk.
Uma comunidade do México pretende continuar o Elastix o novo nome do projeto é Issabel.

Fonte: https://www.issabel.com/continuidad-elastix-mexico/