📚 Tutorial

Portail captif avec OAuth et Vouchers

Par Gandalf • 22 décembre 2024 • 15 min de lecture

Vous gérez un réseau WiFi public, un gîte, un café ou simplement votre réseau invité ? Auth Guardian vous permet de contrôler qui accède à votre réseau avec un portail captif élégant, l'authentification OAuth (Google, GitHub) et un système de vouchers.

🎨 Portail personnalisable

Logo, couleurs, message d'accueil entièrement configurables.

🔑 OAuth2 intégré

Google, GitHub, Facebook, Twitter en quelques clics.

🎟️ Système de vouchers

Générez des codes d'accès temporaires pour vos invités.

🍪 Sessions sécurisées

Cookies HttpOnly, SameSite, timeouts configurables.

1. Installation

opkg update
opkg install luci-app-auth-guardian nodogsplash
/etc/init.d/rpcd reload

2. Configuration du portail captif

Le portail captif intercepte les connexions HTTP et redirige vers une page d'authentification :

# /etc/config/authguard

config authguard 'global'
    option enabled '1'
    option interface 'br-lan'
    option auth_method 'splash'
    option session_timeout '3600'    # 1 heure
    option idle_timeout '600'        # 10 min d'inactivité

config splash 'default'
    option enabled '1'
    option title 'Bienvenue'
    option message 'Connectez-vous pour accéder au réseau'
    option logo '/path/to/logo.png'
    option background_color '#0f172a'
    option button_color '#06b6d4'
    option require_terms '1'

3. Configuration OAuth

Google Sign-In

  1. Allez sur Google Cloud Console
  2. Créez un projet et activez l'API "Google+ API"
  3. Configurez l'écran de consentement OAuth
  4. Créez des identifiants OAuth 2.0 (Application Web)
  5. Ajoutez l'URI de redirection : https://votre-routeur/auth/callback/google
config oauth 'google'
    option enabled '1'
    option client_id 'VOTRE_CLIENT_ID.apps.googleusercontent.com'
    option client_secret 'VOTRE_CLIENT_SECRET'
    option redirect_uri '/auth/callback/google'

GitHub Authentication

config oauth 'github'
    option enabled '1'
    option client_id 'VOTRE_GITHUB_CLIENT_ID'
    option client_secret 'VOTRE_GITHUB_SECRET'
    option redirect_uri '/auth/callback/github'

💡 Conseil : Pour un usage en réseau local sans accès Internet, préférez le système de vouchers ou l'authentification par splash simple.

4. Système de Vouchers

Les vouchers sont parfaits pour les hôtels, cafés ou événements :

config voucher 'system'
    option enabled '1'
    option validity '86400'        # 24 heures
    option bandwidth_limit '10000' # 10 Mbps max
    option prefix 'WIFI'           # Format: WIFI-XXXX

Générer des vouchers en CLI

# Générer 10 vouchers
for i in $(seq 1 10); do
    code="WIFI-$(head -c 4 /dev/urandom | hexdump -e '"%08X"' | cut -c1-4)"
    echo "$code"
done

5. Bypass et Whitelist

Certains appareils peuvent contourner l'authentification :

config bypass 'whitelist'
    # Appareils de confiance (par MAC)
    list mac 'AA:BB:CC:DD:EE:FF'  # Serveur NAS
    list mac '11:22:33:44:55:66'  # Imprimante
    
    # IPs fixes
    list ip '192.168.1.100'
    
    # Domaines autorisés sans auth
    list domain 'captive.apple.com'      # iOS
    list domain 'connectivitycheck.gstatic.com'  # Android
    list domain 'www.msftconnecttest.com'  # Windows

6. Sécurité des sessions

config session 'policy'
    option max_sessions '100'
    option session_cookie 'authguard_session'
    option secure_cookie '1'       # HTTPS only
    option httponly '1'            # Pas d'accès JavaScript
    option samesite 'Strict'       # Protection CSRF

🔐 Sécurisez votre réseau WiFi

Installez Auth Guardian et contrôlez qui accède à votre réseau.

Voir la démo

Conclusion

Auth Guardian transforme votre routeur OpenWrt en portail d'authentification professionnel. Que vous gériez un réseau d'entreprise, un lieu public ou simplement votre réseau invité, vous avez maintenant le contrôle total sur les accès.