Hotspot na OpenWrt

Ustawienia sieciowe

Standardowo w OpenWrt klienci kablowi są połączeni z klientami radiowymi pod jednym interfejsem br-lan. W przypadku rozwiązań Hotspotowych najlepiej jest rozdzielić tych klientów na oddzielne interfejsy i zakresy IP.
Usuwamy lub komentujemy (#) w /etc/config/network opcje w celu wyłączenia mostka pomiędzy radiem, a przełącznikiem:

 option 'type' 'bridge'

Dodajemy nowy wpis do /etc/config/network

config 'interface' 'wlan'
     option 'ifname' 'wlan0'
     option 'proto' 'static'
     option 'ipaddr' '192.168.100.1'
     option 'netmask' '255.255.255.0'

W /etc/config/wireless zamieniamy 'option 'network' 'lan' na

 option 'network' 'wlan'

Zapewni nam to połączenie radia z nowo utworzonym interfejsem w /etc/config/network. Należy również pamiętać o włączeniu radia i ewentualnie zmianie SSID na inny.

Ostatecznie do /etc/config/dhcp dodajemy nowÄ… sekcje

config dhcp wlan
      option interface        wlan
      option start    2
      option limit    10
      option leasetime        4h

Od teraz wszyscy klienci radiowi dostaną automatycznie IP z zakresu 192.168.100.2 - 10 (czyli 9 klientów)

Pozostaje jeszcze ustawić poprawnie firewall

Nowa strefa wlan

uci add firewall zone
uci set firewall.@zone[-1].name=wlan
uci set firewall.@zone[-1].network=wlan
uci set firewall.@zone[-1].input=ACCEPT
uci set firewall.@zone[-1].forward=DROP
uci set firewall.@zone[-1].output=ACCEPT

Umożliwiamy ruch pomiędzy wlan → wan, wlan → lan i lan → wlan

uci add firewall forwarding
uci set firewall.@forwarding[-1].src=wlan
uci set firewall.@forwarding[-1].dest=wan
uci add firewall forwarding
uci set firewall.@forwarding[-1].src=wlan
uci set firewall.@forwarding[-1].dest=lan
uci add firewall forwarding
uci set firewall.@forwarding[-1].src=lan
uci set firewall.@forwarding[-1].dest=wlan

Zapisujemy i restartujemy zapore

uci commit firewall
/etc/init.d/firewall restart

Prosty otwarty Hotspot

Założenia tego rozwiązania:

  • Otwarty Hotspot (wszyscy majÄ… dostÄ™p)
  • Blokujemy dostÄ™p do routera od strony klienta Hotspotu (porty 22,80,443)
  • Klient podłączony do Hostpotu ma limitowane łącze 128kbps/128kbps
  • Opcjonalnie: blokujemy dostÄ™p wybranym adresom MAC

Podłączony klient do naszego hotspotu, który otworzy jakąś stronę najpierw zostanie przeniesiony stronę autoryzacyjną. Po kliknięciu w odpowiednim miejscu zostanie przeniesiony na wybraną początkowo stronę. Autoryzacji dokonuje się raz na każda sesje połączenia z hotspotem.

Ze względu na nie duże wymagania stawiane naszemu hotspotowi do tego celu świetnie nadaje się nodogsplash.

opkg update
opkg install ip iptables-mod-extra iptables-mod-imq iptables-mod-ipopt kmod-ipt-extra kmod-sched tc nodogsplash

Ustawienia nodogspot są w pliku /etc/nodogsplash/nodogsplash.conf. Poniżej konfiguracja programu, która realizuje nasze założenia:

# interfejs radiowy
GatewayInterface wlan0
# klienci którzy uzyskali autoryzację mają pełny dostęp do sieci Internet
FirewallRuleSet authenticated-users {
  FirewallRule allow
}
# przed autoryzacją trzeba mieć dostęp do DNS
FirewallRuleSet preauthenticated-users {
  FirewallRule allow tcp port 53
  FirewallRule allow udp port 53
}
# dostęp do routera, czyli tylko DNS i DHCP 
FirewallRuleSet users-to-router {
  FirewallRule allow udp port 53
  FirewallRule allow tcp port 53
  FirewallRule allow udp port 67
}
# nazwa naszego Hotspotu
GatewayName OpenSpot
# interfejs zewnetrzny (WAN)
ExternalInterface eth0
# przekieruj na Google automatycznie
RedirectURL http://www.google.pl
# każdy uzyskuje autoryzacje
AuthenticateImmediately yes
# blokujemy konkretne MAC adresy
# BlockedMACList 00:00:DE:AD:BE:EF,00:00:C0:1D:F0:0D
# zarządzanie pasmem włączone
TrafficControl yes
DownloadLimit 128
UploadLimit 128

Musimy jeszcze dokonać zmiany w pliku startowym /etc/init.d/nodogsplash. Usuwamy znak(#) komentarza z trzech ostatnich linii tego pliku. Ostatecznie powinno wyglądać tak:

# if not using traffic control,
# you can comment out the following 3 lines:
  do_module_tests "imq" "numdevs=2"
  do_module_tests "ipt_IMQ"
  do_module_tests "sch_htb"
  

Uruchamiamy nodogsplash:

 /etc/init.d/nodogsplash start

Uruchamianie na starcie

 /etc/init.d/nodogsplash enable
zastosowania/hotspot.txt · ostatnio zmienione: 2010/04/05 19:12 przez arteq
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0
Profesjonalny Hosting