2013-03-21 12 views
7

Chcę zbudować portal internetowy węzła js/portal typu captive. Tak więc mogę poprosić użytkownika o autoryzację jego adresu MAC lub adresu IP, jeśli adres mac nie jest możliwy, jak w przypadku hotspotów Wi-Fi:Węzeł Brama internetowa/portal przechwytujący JS, taki jak używany w publicznych hotspotach WiFi

Tak więc mam na myśli, że węzeł może mieć serwer DHCP i podaje jego adres IP jako brama. Jeśli więc użytkownik załaduje stronę w przeglądarce internetowej, wyświetli ekran uwierzytelnienia, a następnie będzie mógł się zalogować, a brama będzie mogła poprawnie trasować swoje pakiety.

W jaki sposób mogę wykonać krok autoryzacji za pomocą node.js, więc jeśli nie są zalogowani, przedstawia stronę logowania, jeśli mają one poprawnie przekierować pakiety?

+2

Chciałbym użyć twojej aplikacji Node.js do zarządzania klientami i interfejsem WWW, ale wykorzystaj możliwości routingu twojego systemu. Fajny projekt. Mam nadzieję, że jest na to dobre rozwiązanie. – Brad

+0

Dzięki !. Myślałem o użyciu iptables do routingu i zmiany reguł przy użyciu węzła, ale nie jestem pewien, jak przekierować ruch do portalu przechwytującego, gdy użytkownik nie ma sesji – Akshat

+0

Jedną z metod jest odpowiadanie na kwerendy DNS z adresem IP twój portal przechwytujący. Jest to jednak problematyczne, ponieważ klient zwykle ma już niektóre wpisy DNS w pamięci podręcznej. Ponadto klienci ze złośliwym oprogramowaniem często przekierowują niektóre zapytania DNS na lokalne serwery DNS lub zagraniczne serwery DNS. W końcu klient może mieć ręcznie skonfigurowany własny serwer DNS. Jedyne, co musisz zrobić, to przekierować cały ruch TCP na porcie 80 do twojego serwera. Nie wiem, jak to zrobić. – Brad

Odpowiedz

3

Potrzebujesz kilku kawałków, żeby to połączyć.

# 1: http proxy - Jeśli możesz uruchomić serwer DHCP i przypisać adresy IP, możesz uruchomić serwer i serwer proxy, aby przechwytywać cały ruch internetowy.

# 2: Będziesz musiał dodać logikę uwierzytelniania do tego serwera proxy, który może sprawdzić plik cookie, magiczny pakiet, token lub coś, co weryfikuje dostęp i pozwala im przejść lub przekierowuje do strony logowania.

node-http-proxy to bardzo popularny i elastyczny serwer proxy węzła http, który można z łatwością add your own logic na.

node-http-auth-proxy to kolejny taki projekt z example w jaki sposób obsługiwać uwierzytelnianie wbudowany.

Posiadanie proxy pozwala także do białej/czarnej listy witryn/IPS, coś może chcesz zrobić na podstawie swojej grupy docelowej.