🏠 Introdução ao iConect
💡 O que é o iConect?
Sistema completo de gerenciamento de Hotspots para Mikrotik com autenticação RADIUS, login via WhatsApp/CPF e pagamento PIX.
🎯 Principais Funcionalidades
- 🔐 Autenticação RADIUS: Sistema centralizado
- 📱 Login por WhatsApp: Código via mensagem
- 🆔 Login por CPF/CNPJ: Identificação única
- 💰 Pagamento PIX: Integração com gateways
- 📦 Planos Flexíveis: Limites personalizados
- 👥 Multi-tenancy: Super Admin, Admin, Usuários
- 🔓 Walled Garden: Acesso livre (bancos, PIX, WhatsApp)
🏢 Hierarquia de Usuários
🟣
Super Admin
Controle total, gerencia todos os recursos
🔵
Admin
Cria e gerencia seus próprios hotspots
🟢
Usuário
Acesso aos hotspots atribuídos
🔄 Fluxo de Autenticação
1. Cliente conecta WiFi (sem senha)
↓
2. Mikrotik redireciona → Portal Captive
↓
3. Cliente escolhe login:
• WhatsApp → Código via mensagem
• CPF/CNPJ → Digita documento
• Cadastro → Formulário completo
↓
4. Sistema valida e cria usuário RADIUS
↓
5. Mikrotik consulta RADIUS
↓
6. RADIUS autoriza (MAC + Plano)
↓
7. Cliente ganha acesso à Internet
⚙️ Instalação do Sistema
📋 Requisitos
- Servidor: Linux (Ubuntu 20.04+)
- PHP: 7.4+
- Banco: MySQL 5.7+ ou MariaDB 10.3+
- Extensões PHP: pdo, pdo_mysql, curl, mbstring
- Mikrotik: RouterOS 6.x ou 7.x
🚀 Passo a Passo
1. Preparar Servidor
# Atualizar sistema
sudo apt update && sudo apt upgrade -y
# Instalar Apache + PHP + MySQL
sudo apt install apache2 php php-mysql php-curl php-mbstring mysql-server composer -y
# Habilitar módulos
sudo a2enmod rewrite ssl
sudo systemctl restart apache2
2. Configurar Banco
# Acessar MySQL
sudo mysql -u root -p
# Criar banco
CREATE DATABASE iconect CHARACTER SET utf8mb4;
CREATE USER 'iconect_user'@'localhost' IDENTIFIED BY 'senha_forte';
GRANT ALL PRIVILEGES ON iconect.* TO 'iconect_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3. Configurar config.php
<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'iconect');
define('DB_USER', 'iconect_user');
define('DB_PASS', 'senha_forte');
define('RADIUS_SECRET', 'testing123');
?>
4. Importar Banco
mysql -u iconect_user -p iconect < database.sql
5. Configurar Permissões
sudo chown -R www-data:www-data /var/www/html/iconect
sudo chmod -R 755 /var/www/html/iconect
✅ Instalação Concluída!
Acesse: http://seu-servidor/iconect
📡 Configuração do Mikrotik
🔧 Cadastrar no Sistema
- Acesse: Mikrotiks → Adicionar
- Preencha:
- Nome: Ex: "Matriz"
- Host: IP do Mikrotik
- Usuário SSH: admin
- Senha SSH: senha
- Porta SSH: 22
- Porta API: 8728
- Clique em Salvar
🔐 Habilitar API
# No Mikrotik
/ip service
set api disabled=no
# Verificar
/ip service print
🌐 Configurar DNS
/ip dns
set servers=8.8.8.8,8.8.4.4
set allow-remote-requests=yes
💡 Importante: Certifique-se de que as portas 22 e 8728 estão abertas no firewall do Mikrotik.
🔐 Gerenciamento de Hotspots
➕ Criar Hotspot
- Acesse: Hotspots → Criar Novo
- Passo 1: Selecionar Mikrotik
- Passo 2: Escolher Interface
- Passo 3: IP gerado automaticamente (/22)
- Passo 4: Nome do hotspot
- Passo 5: Métodos de login
- Passo 6: Habilitar/desabilitar PIX
- Passo 7: Escolher instância WhatsApp
🎯 O que é Criado Automaticamente
No Mikrotik:
- ✅ IP Address (/22)
- ✅ IP Pool
- ✅ Hotspot Server
- ✅ DHCP Server
Segurança:
- ✅ RADIUS configurado
- ✅ Walled Garden (18 regras)
- ✅ NAT Masquerade
- ✅ WhatsApp CIDR
✏️ Editar Hotspot
- Alterar IP: Botão ✏️
- Configurações: Botão 🔐
- Atribuir Usuário: Botão 👤
🗑️ Excluir Hotspot
⚠️ Atenção: Remove TUDO do Mikrotik (Server, DHCP, IP, Walled Garden). RADIUS permanece ativo.
🔑 Sistema RADIUS
🎯 O que é RADIUS?
RADIUS provê gerenciamento centralizado de Autenticação, Autorização e Accounting (AAA).
🔄 Funcionamento
Cliente → Mikrotik → RADIUS → Banco de Dados
↓ ↓ ↓ ↓
Conecta Solicita Valida Retorna Plano
⚙️ Configuração Automática
O sistema configura automaticamente ao criar o primeiro hotspot:
/radius add
address=IP_SERVIDOR
secret=testing123
service=hotspot
timeout=3000ms
/radius set [find] accounting=yes
🔧 Comandos Úteis
# Ver configuração
/radius print detail
# Testar autenticação
/radius incoming test user=teste pass=123
# Ver sessões ativas
/ip hotspot active print
# Ver logs
/log print where topics~"radius"
💡 Segurança: Altere o secret padrão "testing123" em produção!
📱 Integração WhatsApp
🎯 Funcionalidades
- 📲 Login por WhatsApp com código
- 🔢 Código de 6 dígitos
- ⏱️ Validade de 5 minutos
- 🔄 Reenvio disponível
- 📊 Multi-instância
➕ Cadastrar Instância
- Acesse: WhatsApp → Instâncias
- Clique em + Nova Instância
- Preencha:
- Nome da instância
- Tipo de API (Evolution, Z-API, etc)
- URL da API
- Token/API Key
- Escaneie o QR Code
🔗 APIs Suportadas
✅ Evolution API (Recomendado)
Open source, gratuito, múltiplas instâncias
💰 Z-API
Serviço pago, estável, suporte técnico
🔓 Walled Garden WhatsApp
Ranges liberados automaticamente:
157.240.0.0/16
31.13.64.0/18
185.60.216.0/22
179.60.192.0/22
163.70.128.0/17
102.132.96.0/20
⚠️ Importante: Mantenha pelo menos 1 instância conectada!
💰 Sistema PIX
🎯 Fluxo de Pagamento
- Cliente faz login no portal
- Sistema gera QR Code PIX
- Cliente escaneia e paga
- Webhook confirma pagamento
- Sistema libera acesso via RADIUS
🔗 Gateways Suportados
- Mercado Pago: Integração completa
- PagSeguro: Suporte a PIX
- Asaas: API simples
🔔 Configurar Webhook
# Mercado Pago
URL: https://seudominio.com/webhook_mp.php
# No código (webhook_mp.php)
$data = json_decode(file_get_contents('php://input'), true);
if ($data['type'] === 'payment' && $data['status'] === 'approved') {
// Criar usuário RADIUS
// Liberar acesso
}
🔓 Walled Garden PIX
Sites liberados automaticamente:
- ✅ Mercado Pago
- ✅ Banco Central (BCB)
- ✅ DICT PIX
- ✅ Bancos (Itaú, Bradesco, BB, etc)
💡 Modo Gratuito: Se PIX estiver desabilitado, acesso é liberado sem cobrança.
📦 Gerenciamento de Planos
➕ Criar Plano
- Acesse: Planos → Adicionar
- Defina:
- Nome: Ex: "24h - 20Mbps"
- Preço: R$ 5,00
- Download: 20M
- Upload: 10M
- Validade: 24h
- Tráfego: 5GB
📋 Atributos RADIUS
Mikrotik-Rate-Limit = "20M/10M"
Session-Timeout = 86400 (24h em segundos)
Mikrotik-Total-Limit = 5368709120 (5GB em bytes)
🎨 Exemplos de Planos
💙 Básico
Grátis • 5/2 Mbps • 30min
💚 Padrão
R$ 5 • 20/10 Mbps • 24h
💜 Premium
R$ 20 • 100/50 Mbps • 30d
👥 Gerenciamento de Usuários
🎭 Tipos de Usuário
🟣 Super Admin
Controle total do sistema
🔵 Admin
Gerencia seus próprios hotspots
🟢 Usuário
Acesso apenas ao atribuído
➕ Criar Usuário
- Acesse: Usuários → Adicionar
- Preencha dados básicos (nome, email, senha)
- Escolha função (Admin ou Usuário)
- Defina limites (apenas Super Admin)
🎯 Atribuir Hotspot
- Acesse a lista de hotspots
- Clique no botão 👤
- Selecione o usuário
- Clique em Atribuir
💡 Nota: Usuário verá apenas hotspots atribuídos a ele.
🔧 Solução de Problemas
🔴 RADIUS não autentica
Verificar:
- Secret igual no Mikrotik e sistema
- Firewall liberado (portas 1812, 1813)
- Usuário existe no banco
# Testar no Mikrotik
/radius incoming test user=teste pass=123
# Ver logs
/log print where topics~"radius"
📱 WhatsApp não envia
Soluções:
- Verificar instância conectada
- Validar formato do número (5571999999999)
- Checar Walled Garden WhatsApp
- Ver logs da API
💰 PIX não confirma
Soluções:
- Validar URL webhook no gateway
- Verificar HTTPS (gateways exigem)
- Checar logs do webhook
- Confirmar manualmente no banco
🌐 Portal não redireciona
Soluções:
- Verificar URL no hotspot profile
- Checar DNS no Mikrotik (8.8.8.8)
- Testar acesso direto à URL
- Ver logs do Apache
💡 Dica: Sempre verifique os logs primeiro!
- Apache:
/var/log/apache2/error.log
- MySQL:
/var/log/mysql/error.log
- Mikrotik:
/log print