2013-03-21 14 views
7

Desidero creare un nodo js gateway internet/captive portal. Quindi posso consentire a un utente di 'autorizzare' il suo indirizzo mac o l'indirizzo IP se l'indirizzo mac non è possibile come usato per gli hotspot wifiNode JS gateway internet/captive portal come utilizzato negli hotspot WiFi pubblici

Quindi quello che ho in mente è che il nodo può avere un server DHCP e dà il suo indirizzo ip come il gateway. Quindi, se l'utente carica una pagina sul browser Web, dà loro una schermata di autenticazione e può quindi accedere e il gateway può quindi instradare correttamente i suoi pacchetti.

Come è possibile eseguire il passaggio di autorizzazione con node.js in modo che se non sono connessi presenta una pagina di accesso & se devono instradare correttamente i pacchetti?

+2

Vorrei utilizzare l'applicazione Node.js per la gestione dei client e dell'interfaccia Web, ma utilizzare le funzionalità di routing del sistema. Bel progetto Spero che ci sia una buona soluzione per questo. – Brad

+0

Grazie !. Stavo pensando di usare iptables per instradare e modificare le regole usando il nodo ma non sono sicuro di come reindirizzare il traffico a un captive portal quando l'utente non ha una sessione – Akshat

+0

Un metodo è quello di rispondere alle query DNS con l'IP di il tuo captive portal. Ciò è problematico, poiché il client di solito ha già alcune voci DNS già memorizzate nella cache. Inoltre, i client con malware spesso reindirizzano alcune query DNS a localhost o server DNS esterni. Infine, il client può avere il proprio server DNS configurato manualmente. Quello che devi fare è reindirizzare in modo trasparente tutto il traffico TCP sulla porta 80 al tuo server. Non so come farlo. – Brad

risposta

3

Hai bisogno di un paio di pezzi per mettere insieme questo.

# 1: proxy http - Se è possibile eseguire un server DHCP e assegnare indirizzi IP, è possibile eseguire e http-proxy per acquisire tutto il traffico Internet.

# 2: Sarà quindi necessario aggiungere la logica di autenticazione a questo proxy che può controllare un cookie, un pacchetto magico, un token o qualcosa che verifica l'accesso e li lascia passare o reindirizzare alla pagina di accesso.

node-http-proxy è un server proxy HTTP http molto popolare e flessibile che è facilmente add your own logic.

node-http-auth-proxy è un altro progetto del genere con una example di come gestire l'autenticazione integrata.

Avere un proxy permette anche di whitelist/blacklist siti/IP, qualcosa che si può desiderare di fare in base al target di riferimento.