DIY WiFi hotspot maken met een Raspberry PI

Sinds kort is mijn vakantie begonnen en gaande weg waar ik ook kom in het binnen en buitenland merk ik hoeveel verschillende hotspots er zijn. De ene hotspot vraagt om een facebook like en de andere komt met een pagina waar je bijvoorbeeld je kamernummer in moet voeren met het verkregen wachtwoord.

Doel

Wat ik graag zou willen maken is een hotspot of captive portal met de mogelijkheid om een wachtwoord in te stellen voor gebruikers en een welkomstpagina te personaliseren. Omdat ik al een Raspberry PI heb liggen is dit de perfecte manier om een WiFi hotspot op te zetten met een landingspagina. Waarom een Raspberry PI? De Raspberry PI kan een captive portal hosten en performance staat toe om niet op al te grote schaal internetverkeer te routeren.

Voor je begint, check eerst of er een captive portal functie voor je router is. Ik ben zelf in het bezit van een Experia router (KPN) waar geen captive portal functie is. Ik weet dat er sommige Cisco routers deze functie wel hebben dus check dit eerst!

Speciaal dankwoord

Dit artikel is tot stand gekomen door: Ronny van den Broeck. Vergeet niet te doneren zodat hij meer van dit soort awesome software kan blijven maken!

Stappenplan Raspberry PI instellen

Wat heb je nodig?

equip

  • Raspberry PI
  • Internet
  • Netwerkkabel
  • Oplader / voeding 1A 5V. ( Ik gebruik een Blackberry voeding van een oude telefoon. Deze heeft 5V 750mA en werkt ook!)
  • SD kaart (minimaal 4GB) en kaartlezer
  • WiFi USB dongel, klik hier om deze te bestellen of kijk hier welke dongels compatible zijn

Raspberry PI bestellen

Als je nog geen Raspberry PI hebt, dan kun je hem hieronder bestellen. Ook heb ik een overzicht gemaakt van cases die je al voor weinig geld kunt bestellen. Daarnaast kun je ook nog een adapter bestellen, mocht je geen geschikte oplader hebben:

Download:

Gratis programma’s die je moet downloaden heb ik hieronder gezet, de links zijn niet direct zodat je een gewenst besturingssysteem kan selecteren.

putty icon logo Putty (remote beheer): Download link
win32disk icon logo Formatteer je SD kaart: Download link
sd formatter icon logo OS wegschrijven op SD kaart: Download link
33 Win SCP, S (secure) FTP Download link
filezilla logo FTP client FileZilla Download link
image logo Router image Download link

Image wegschrijven op de SD kaartsd formatter raspberrypi config

 

 

 

 

 

 

 

Nadat je de bovenstaande programma’s gedownload en geïnstalleerd hebt kunnen we het besturingssysteem op de SD kaart zetten. Eerst start je SD formatter op, zet format size op ON. Let er ook heel goed op dat je de juiste schijf selecteert. Voor hetzelfde geld selecteer je je eigen schijf en ben je alles kwijt!
win 32 disk manager raso berrypi config

 

 

 

 

 

Daarna gaan we de image kopiëren naar de sd kaart via het eerder geïnstalleerde programma Win32drive. Laad de image via het map icoontje, daarna klik je op Write om de image weg te schrijven op de SD kaart.

Raspberry configureren

Sluit de netwerkkabel, WiFi dongel, toetsenbord en het beeldscherm aan op de Raspberry PI en start deze op. Log in met: pi en wachtwoord: raspberry. Daarna zorg je er eerst voor dat de Raspberry up-to-date is door het volgende commando in te geven: pi@raspberrypi ~ $ sudo apt-get update

Hierna gaan we het ip adres achterhalen, dit doen we door het volgende commando in te voeren: pi@raspberrypi ~ $ sudo ifconfig

Noteer het adres dat begint met 192.

Als laatst gaan we het root wachtwoord instellen omdat we anders de hotspot pagina niet aan kunnen passen. Typ het volgende commando in om het wachtwoord aan te passen en voer twee maal een wachtwoord in: pi@raspberrypi ~ $ sudo passwd root

Hierna is de Raspberry klaar om als router te fungeren. Sluit de Raspberry af met commando: pi@raspberrypi ~ $ sudo shutdown -h now

Als de Raspberry is afgesloten kun je hem een vast plekje geven. Hierna hoef je hem alleen aan te sluiten op de netwerkkabel en stroom.

login router

Raspberry instellen als router

Eerst gaan we de Raspberry instellen als router, dit doe je door het eerder genoteerde ip adres dat met 192. begint in te voeren in de webbrowser van je computer of laptop.

Daarna log je in met admin en wachtwoord raspberry

 

Vervolgens ga je naar Configuration -> Operation Mode -> Router en vervolgens op Apply
Router instellen raspberry pi

Daarna gaan we de wireless settings aanpassen. Standaard is de SSID RaspberryWAP en het wachtwoord Raspberry. Het wachtwoord laten we leeg omdat we later toch users gaan toevoegen en SSID kun je bijvoorbeeld B&B Apeldoorn noemen. Doe dit bij Configuration -> Wireless settings
Wifi instellen op een raspberry pi

Als laatst gaan we de captive portal functie inschakelen, dit doe je bij Advanced -> Captive Portal. Vink Enable Captive Portal aan en druk op Apply.

Raspberry pi instellen als captive portal hotspot

Zoals hierboven te zien is kun je meteen users toevoegen, ik raad je aan om dit meteen te doen anders kan jan en alleman gebruik maken van je WiFi netwerk!

De Wifi captive pagina aanpassen

Nu zijn we aanbeland bij het leukste klusje van dit project; de welkomstpagina, inlogpagina en redirectpagina aanpassen. Om dit te doen starten we het eerder gedownloade programma WinSCP. Bij hostname vul je het eerder ingegeven ip adres en belangrijk is nu dat je met het eerder ingestelde root account inlogt. Als je met de pi user inlogt zul je namelijk niet voldoende rechten hebben om deze pagina’s aan te passen!

Na het inloggen met het root account ga je naar de directory: /etc/chilli/www
Winscp verbinden met raspberry pi

Logo aanpassen

Dit is het meest makkelijke klusje, enige wat je hoeft te doen is de bestanden coova.png en coova.jpg te vervangen. Deze plaatjes zijn erg klein en kun je eventueel nog resizen in cooca.html. Daar kun je de heigt en weight aanpassen of zoals ik gedaan heb weghalen.

Achtergrond, tekst stijl aanpassen

Om zaken zoals lettertype, achtergrond kleuren aan te passen kun je css.tmpl aanpassen. Weet je niet hoe css werkt? Kijk Uitleg css eens voor een overzichtelijke uitleg.

Inhoudelijke tekst aanpassen

Alles staat in het Engels geschreven, dit is volledig aan te passen in de volgende tekst bestanden:
footer.tmpl
login.tmpl
login_form.tmpl
title.tmpl

Redirect na succesvol inloggen aanpassen

Als een gebruiker succesvol in weet te loggen dan is het professioneel als hij wordt doorgestuurd naar je eigen internet pagina. Om dit aan te passen pas je de file login_succes.tmpl aan.
Vervang:

 

Plak onderstaande code op bovenstaande plek en verander de URL.

Resultaat

Het resultaat is precies naar wens, hieronder de screenshots van mijn iPhone op volgorde:
captive hotspot in werking

En op een laptop of pc werkt het ook pima!
login hotspot

Heb je vragen, schroom niet om ze hieronder te stellen.

9 Comments
  1. Leuk artikel , maar als ik het goed begrijp heb je een aansluiting met netwerkkabel nodig.
    Dan heb je er niets aan op een camping of zo.

  2. werkt als een droom! Bedankt voor het delen.
    Word er nog aan dit project gewerkt? Ik zie dat er nog wat opties zijn die ‘under construction’ staan.

  3. @Frans Verbeek: denk dat jij bedoeld dat je connect op de wireless van de camping en dan die verbinding deelt met alle devices die mee komen op een vakantie zoals tablet, laptop, telefoon…

    Ben ook wel benieuwd of de optie voor access point op die manier kan werken..

    TOMZ? 🙂

    Vakantie periode breekt weer aan 🙂

  4. great work .. thx for sharing .. i installed img on Raspberry pi 3 but advanced tap doesn’t upper at all 🙁 any suggestions

  5. Hi, I tried this img from facebook and I see I get a corrupt image because it is a copy of your image. I would really love to get this working. It is exactly what I need http://pekeboom.com/groups/pekeboomers/ Would it be possible to get another image please to install in to a SD card. The error I received was

    Entering kdb ( current=0xcb846c80, pid 1) due to keyboard Entry kdb

    The Root partition may be corrupt. Did you over clock your image ?

    I used Gparted to fix the partition but that did not fix the above error message.
    Should I edit the /boot/config.txt file ?

    Please let me know , thank you

Laat een bericht achter