Ir para o conteúdo

Firewall e AWS Security Group

Deploy VPS: 13-maquina-nova-stack-aws-cli.md (AWS ou Hostinger)
Hostinger: use hPanel Firewall ou ufw — mesmas portas da tabela abaixo (sem AWS CLI).

Instalar AWS CLI na VPS

cd ~/omnichannel/lorentz-vps-stack
./scripts/install-aws-cli.sh

Credenciais: IAM role na instância EC2 (recomendado) ou aws configure.

Abrir Supervisor (8080) automaticamente:

./scripts/open-aws-port-8080.sh
# ou restrito ao seu IP:
./scripts/open-aws-port-8080.sh 203.0.113.10/32

Abrir MonitorOPS (9090) automaticamente:

./scripts/open-aws-port-9090.sh
# recomendado — restrito ao IP da equipe de suporte:
./scripts/open-aws-port-9090.sh 203.0.113.10/32

Validar acesso externo ao monitor:

./scripts/validate-install.sh --external
# ou manualmente:
curl -s -o /dev/null -w '%{http_code}\n' http://SEU_IP_PUBLICO:9090/health

Security Group EC2 — regras inbound recomendadas

Tipo Protocolo Porta Origem Motivo
SSH TCP 22 Seu IP fixo Administração
HTTP TCP 80 0.0.0.0/0 Issabel redirect
HTTPS TCP 443 0.0.0.0/0 Issabel painel
Custom TCP 8080 0.0.0.0/0 ou VPN Supervisor
Custom TCP 9090 IP equipe suporte MonitorOPS
SIP UDP 5060 0.0.0.0/0 ou operadora Registro/tronco
Custom UDP UDP 10000–10100 0.0.0.0/0 RTP áudio
Custom TCP 8089 0.0.0.0/0 Asterisk WSS (Softphone 008 WebRTC)
SQL TCP 1433 Seu IP admin Opcional — evitar público
Custom TCP 3000 VPN / rede interna Phoenix (opcional externo)
Custom TCP 8000 VPN Agentes CTI

AWS CLI (exemplo)

aws ec2 authorize-security-group-ingress \
  --group-id sg-xxxxxxxx \
  --protocol tcp --port 8080 --cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress \
  --group-id sg-xxxxxxxx \
  --protocol tcp --port 9090 --cidr 203.0.113.10/32

aws ec2 authorize-security-group-ingress \
  --group-id sg-xxxxxxxx \
  --protocol udp --port 5060 --cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress \
  --group-id sg-xxxxxxxx \
  --ip-permissions IpProtocol=udp,FromPort=10000,ToPort=10100,IpRanges='[{CidrIp=0.0.0.0/0}]'

9090: prefira restringir ao IP fixo da equipe (/32). Evite 0.0.0.0/0 em produção — o monitor controla containers via Docker.

firewalld (Rocky Linux)

Se firewalld estiver ativo além do Security Group:

sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=9090/tcp
sudo firewall-cmd --permanent --add-port=5060/udp
sudo firewall-cmd --permanent --add-port=10000-10100/udp
sudo firewall-cmd --reload

Issabel hostnet usa portas do host — regras firewalld aplicam-se diretamente.

ufw (Ubuntu / Hostinger)

sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 9090/tcp
sudo ufw allow 5060/udp
sudo ufw allow 10000:10100/udp
sudo ufw enable
sudo ufw status

Não expor publicamente

  • 5038 (AMI) — risco de controle total do PBX
  • 1433 (SQL) — vazamento de dados
  • 3306 MariaDB Issabel (interno container/host)

HTTPS

Issabel usa certificado autoassinado. Para produção:

  • Let's Encrypt via reverse proxy (Nginx no host)
  • Ou certificado comercial

Supervisor em :8080 HTTP — coloque Nginx TLS na frente se exposto à internet.

MonitorOPS em :9090 HTTP — restrinja origem no Security Group; troque MONITOR_ADMIN_PASSWORD no .env.

Hardening básico

  1. Trocar todas as senhas padrão (.env)
  2. JWT_SECRET único em api/config.php
  3. Fail2ban no SSH
  4. Backups SQL + volumes Issabel
  5. Atualizações dnf update regulares