daloRADIUS
Interface web de gerência sobre o FreeRADIUS — cadastro de cliente, planos, relatórios, desconexão remota e billing básico. Da instalação à operação segura em produção.
Nesta página
1. Contexto e posicionamento
O daloRADIUS é uma aplicação web em PHP, open‑source (GPLv2), criada por Liran Tal e mantida pela comunidade. Ela funciona como uma camada de gerência gráfica sobre o FreeRADIUS, utilizando o mesmo banco de dados MySQL/MariaDB — não duplica informações, apenas lê e escreve nas tabelas RADIUS padrão (radcheck, radreply, radacct, etc.) e adiciona algumas tabelas próprias para operadores, billing e logs.
No ecossistema de um ISP brasileiro, o daloRADIUS ocupa a posição de interface do NOC: permite que operadores cadastrem clientes, alterem planos, visualizem sessões ativas e gerem relatórios de uso sem precisar acessar o terminal do servidor ou executar comandos SQL manualmente. Isso reduz o risco de erros operacionais e acelera o atendimento ao cliente.
2. Arquitetura e modelo de dados
O daloRADIUS é estruturado como uma aplicação PHP tradicional (sem framework pesado), com lógica de negócio nas bibliotecas em library/ e interface gerada dinamicamente. Ele se conecta ao banco do FreeRADIUS usando as credenciais definidas no arquivo daloradius.conf.php.
Tabelas próprias adicionadas (além das tabelas RADIUS padrão):
| Tabela | Função |
|---|---|
operators | Contas de acesso ao daloRADIUS (login, senha com hash, ACL). |
billing_history | Registros de pagamento de faturas. |
billing_plans | Definição de planos de cobrança. |
userinfo | Informações adicionais de cadastro (nome completo, e‑mail, endereço, etc.). |
dictionary (próprio) | Mapeamento de atributos RADIUS para a interface (ex.: nomes amigáveis). |
3. Pré-requisitos
- FreeRADIUS instalado e funcional com backend MySQL/MariaDB.
- Apache (ou Nginx com PHP‑FPM) + PHP 7.4+.
- Extensões PHP:
mysqli,gd,mbstring,curl,xml,json. - Acesso ao banco
radiuscom permissões de leitura/escrita.
4. Instalação
apt update
apt install apache2 php libapache2-mod-php php-mysqli php-gd \
php-mbstring php-xml php-curl unzip wget -y
wget https://github.com/lirantal/daloradius/archive/refs/heads/master.zip
unzip master.zip -d /var/www/html/
mv /var/www/html/daloradius-master /var/www/html/daloradius
chown -R www-data:www-data /var/www/html/daloradius
# Importar o schema próprio do daloRADIUS (tabelas de operadores, billing, logs)
mariadb -u radius -p radius < /var/www/html/daloradius/contrib/db/mysql-daloradius.sql
5. Arquivo de configuração
Editar library/daloradius.conf.php com os dados de conexão do banco radius:
$configValues['CONFIG_DB_ENGINE'] = 'mysqli';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'senha-forte-aqui';
$configValues['CONFIG_DB_NAME'] = 'radius';
Após editar, reinicie o Apache e acesse: http://SEU_SERVIDOR/daloradius/login.php.
6. Segurança — credencial padrão e hardening
6.1 Credencial padrão — o risco mais subestimado
O login padrão de fábrica é administrator / radius. É público, documentado e a primeira coisa que qualquer atacante tenta. Trocar essa credencial é o primeiro passo pós-instalação, não uma tarefa opcional.
6.2 Hardening adicional
- HTTPS obrigatório — configurar certificado TLS (Let's Encrypt) no Apache/Nginx. Nunca exponha a interface de operadores em HTTP.
- Isolamento do painel — restrinja o acesso ao diretório
/daloradius/por IP (allowlist) ou exija VPN para acesso ao painel de operadores. O portal de autoatendimento (se usado) pode ser público. - 2FA (TOTP) — ative autenticação de dois fatores para contas de operadores (disponível nas versões recentes).
- Headers de segurança — configure
X-Frame-Options,Content-Security-PolicyeStrict-Transport-Securityno servidor web. - PHP hardening — desabilite funções perigosas (
exec,shell_exec,system) nophp.inido pool do Apache, a menos que estritamente necessário. - Logs de auditoria — o daloRADIUS mantém logs próprios de ações dos operadores. Monitore‑os para detectar acessos suspeitos.
7. Funcionalidades principais
- Gestão de usuários — cadastro, edição, associação a planos/grupos.
- Test User Connectivity — testa credenciais diretamente pela interface.
- Disconnect User — envia PoD (Packet of Disconnect) ao NAS com um clique.
- Relatórios gráficos — uso por cliente, top consumidores, sessões ativas.
- Engine de billing básico — planos, faturas, histórico de pagamentos.
- Multi‑operador com ACL — permissões granulares por conta.
- 2FA (TOTP) — camada extra de segurança para login.
- Mapa de hotspots — integração com geolocalização (Google Maps).
- Logs centralizados — ações na interface, logs do RADIUS e do sistema.
8. Operação do dia a dia
Fluxo típico do NOC: cliente reporta instabilidade → operador busca o usuário no daloRADIUS → verifica sessão ativa, dados de accounting (bytes, IP, uptime) → se necessário, usa "Disconnect User" para forçar reconexão limpa → analisa gráfico de tráfego para identificar padrões anômalos (ex.: consumo 24/7 no limite do plano pode indicar equipamento comprometido ou mal configurado).
9. Customização e extensibilidade
O daloRADIUS permite adaptações comuns em ISPs:
- Logo e identidade visual — substituir o logo padrão na pasta de temas.
- Campos personalizados — adicionar atributos RADIUS customizados ao cadastro de usuários.
- Relatórios customizados — criar consultas SQL próprias e expô‑las na interface.
- Portal de autoatendimento — permite que o próprio cliente veja seu consumo e faturas, reduzindo chamados ao NOC.
10. Backup e recuperação
Além do backup do banco radius (que contém as tabelas do FreeRADIUS e do daloRADIUS), é importante incluir:
- O diretório
/var/www/html/daloradius/(arquivos de configuração, customizações de temas e logos). - O arquivo
library/daloradius.conf.php(credenciais do banco e configurações da interface). - As tabelas próprias do daloRADIUS (
operators,billing_history, etc.).
Siga a regra 3‑2‑1‑1‑0 e teste a restauração periodicamente. Consulte as páginas de restic ou Borg para scripts de backup automatizado.
11. Performance e boas práticas
- Índices no banco — certifique‑se de que as tabelas
radacctebilling_historytenham índices emusername,acctstarttimeeacctstoptime. - Cache de consultas — o daloRADIUS pode usar cache interno para reduzir consultas repetitivas ao banco. Verifique as opções em
daloradius.conf.php. - Limitar relatórios pesados — consultas de relatórios gráficos (ex.: top consumidores do último ano) podem ser pesadas em bases grandes. Agende‑as para horários de menor uso ou use replicação MySQL para isolá‑las.
- Separação de servidores — em ISPs maiores, considere rodar o Apache/PHP do daloRADIUS em um servidor separado do FreeRADIUS, conectando‑se ao mesmo banco.
12. Comparação com alternativas
Existem outras interfaces web para gerenciamento de RADIUS, mas nenhuma com a mesma adoção no mercado brasileiro de ISPs:
| Ferramenta | Características | Status |
|---|---|---|
| daloRADIUS | Interface completa, billing básico, ativa, comunidade grande, TOTP, logs. | Ativo (mantido pela comunidade) |
| phpRADmin | Mais leve, só gerencia tabelas RADIUS, sem billing. | Descontinuado / pouca atividade |
| Easy‑RADIUS | Comercial, suporte oficial, mais recursos de billing. | Comercial, pago |
13. Troubleshooting
Extensão PHP faltando — verifique o log do Apache (/var/log/apache2/error.log) para identificar qual módulo está ausente.
Porta 3799/UDP (CoA/PoD) precisa estar liberada entre o servidor e o NAS. Verifique também a configuração do NAS (Mikrotik) para aceitar esses pacotes.
O accounting precisa estar ativo no FreeRADIUS e no NAS (interim-update). O daloRADIUS apenas exibe os dados que estão em radacct.
14. Glossário
15. Referências
- Repositório oficial daloRADIUS (GitHub) — documentação de instalação, changelog.
- RFC 5176 — Dynamic Authorization Extensions to RADIUS (CoA/PoD).
- RFC 2865/2866 — RADIUS Authentication e Accounting.
- Páginas relacionadas: FreeRADIUS, Conceitos de AAA, LGPD.
Conteúdo técnico independente. Nenhum trecho é cópia literal de fonte de terceiro.