Skip to content

Problèmes — FreeRADIUS


Diagnostic Initial

bash
# Test RADIUS manual
docker exec rgz-radius radtest testuser testpass 127.0.0.1 0 $RADIUS_SECRET

# Logs RADIUS en temps réel
docker logs rgz-radius -f

# Vérifier que le container tourne
docker inspect --format='{}' rgz-radius

Problèmes Courants

Timeout / Pas de Réponse

Cause fréquente : FreeRADIUS ne supporte pas ${VAR} dans ses fichiers de config (LL#44).

bash
# Vérifier que clients.conf a le vrai secret (pas la variable littérale)
docker exec rgz-radius cat /etc/freeradius/3.0/clients.conf | grep secret
# MAL: secret = ${RADIUS_SECRET}
# BIEN: secret = monVraiSecret123

Solution : L'entrypoint.sh doit utiliser envsubst avant de démarrer FreeRADIUS :

bash
# docker/radius/entrypoint.sh
envsubst < /etc/freeradius/3.0/clients.conf > /tmp/clients.conf
cp /tmp/clients.conf /etc/freeradius/3.0/clients.conf
exec freeradius -f -l stdout

Access-Reject

CauseVérificationSolution
RADIUS_SECRET incorrectComparer .env et clients.confCorriger et redémarrer
NAS-ID non autoriséclients.conf → client manquantAjouter le NAS dans clients.conf
Utilisateur inconnuPas dans subscribers tableVérifier DB + subscriber_ref
Simultaneous-Use dépassé2 sessions actives (limite)Portail → déconnecter un appareil

CoA Refusé

bash
# CoA (Change-of-Authorization) nécessite port 3799/udp ouvert sur le NAS
# Vérifier si le NAS répond
echo "Test-Only = Yes" | docker exec -i rgz-radius radclient \
  [NAS_IP]:3799 coa $RADIUS_SECRET

# CoA unités : WISPr-Bandwidth = bits/seconde (pas Mbps!)
# 5 Mbps = 5000000 bits/s (RA2 anti-mismatch)

Healthcheck FreeRADIUS

ps/pgrep absent dans les images slim

FreeRADIUS tourne dans une image Debian. Le healthcheck doit éviter ps sur les images slim.

yaml
# docker-compose.core.yml
healthcheck:
  test: ["CMD-SHELL", "grep -q freeradius /proc/1/cmdline || exit 1"]
  interval: 30s
  timeout: 10s
  retries: 3

Dernière mise à jour: 2026-02-21

PROJET MOSAÏQUE — 81 outils, 22 conteneurs, 500+ revendeurs WiFi Zone