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-radiusProblè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 = monVraiSecret123Solution : 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 stdoutAccess-Reject
| Cause | Vérification | Solution |
|---|---|---|
| RADIUS_SECRET incorrect | Comparer .env et clients.conf | Corriger et redémarrer |
| NAS-ID non autorisé | clients.conf → client manquant | Ajouter le NAS dans clients.conf |
| Utilisateur inconnu | Pas dans subscribers table | Vé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: 3Dernière mise à jour: 2026-02-21