Raspberry Pi – Raspberry Pi als Access Point

Bron / Website

Op deze pagina configureren we de Raspberry Pi als “hostap” (host access point), je hebt internet toegang nodig, zorg dat er ethernet connectie is!


Installeren benodigdheden

Start met het installeren van de benodigdheden:

  • hostapd
  • isc-dhcp-server
  • iptables-persistent

doormiddel van het commando:

sudo apt-get install -y hostapd isc-dhcp-server iptables-persistent

Er wordt 2 keer om een bevestiging gevraagd, geef ja (yes) op beide vragen:

Ps. eventuele is het nodig om sudo apt-get update  uit te voeren als er geen repositories gevonden worden.


Opzetten DHCP server

Om ervoor te zorgen dat WiFi verbindingen automatisch een IP adres toegewezen krijgen, moeten we de DHCP server configureren, dit kan door het bestand “/etc/dhcp/dhcpd.conf” te bewerken, met het commando:

sudo nano /etc/dhcp/dhcpd.conf

Vind de regels:

En zet daar een hekje voor:

Vind de regels:

en haal het hekje weg bij “authoritative;”:

Scroll naar beneden en voeg deze regels toe:

Ps. Hier wordt de range vastgesteld tussen IP 192.168.42.10 en 192.168.42.50, de router op 192.168.42.1

Druk op CTRL+X, dan Y, dan ENTER om de wijzigingen op te slaan!

Bewerk het bestand “/etc/default/isc-dhcp-server” met het commando:

sudo nano /etc/default/isc-dhcp-server

Scroll naar beneden bij:

INTERFACES=""

en werk deze bij met de aanwijzing van de WiFi adapter (veelal wlan0):

INTERFACES="wlan0"

Druk op CTRL+X, dan Y, dan ENTER om de wijzigingen op te slaan!


Vaste IP maken voor wlan0

Allereerst moet er voor  gezorgd worden dan wlan0 uit staat, het kan geen kwaad om dit commando te starten voor de zekerheid:

sudo ifdown wlan0

Als volgt geven we de wlan0 verbinding een vast ip adres en inkomend door het bestand “/etc/network/interfaces” te bewerken met het commando:

sudo nano /etc/network/interfaces

Vind de regel met “auto wlan” en plaats een hekje (#) voor de regel en elke regel daarna.

Ps. als je de regel niet hebt, zorg er voor dat het er zo uit komt te zien als de schermafdruk hieronder, het komt er op neer elke andere wlan0 configuratie eruit te halen.

Voeg deze regels toe aan het bestand achter de regel “allow-hotplug wlan0″:

Druk op CTRL+X, dan Y, dan ENTER om de wijzigingen op te slaan!

Geef nu een vast IP adres aan de WiFi adapter met het commando:

sudo ifconfig wlan0 192.168.42.1


Access Point configureren

Nu kunnen we alle datails van de acces point configureren, we gaan een met wachtwoord beveiligd netwerk configureren.

Maak een nieuw bestand aan genaamd “/etc/hostapd/hostapd.conf” met het volgende commando:

sudo nano /etc/hostapd/hostapd.conf

Plaats daarin de volgende tekst:

Je kan het SSID veranderen bij ssid= en het wachtwoord aanpassen bij wpa_passphrase=

Ps. bij driver= kan ook een andere naam ingevuld worden zoals driver=nl80211 (afhankelijk van je driver)

LET OP: Gebruik je de WiFi op de Raspberry Pi 3, dan een Hekje (#) voor deze regel plaatsen!

Druk op CTRL+X, dan Y, dan ENTER om de wijzigingen op te slaan!

Ps. Wees er zeker van dat er geen spaties of TABS voor of achter de regels staan, dit bestand is behoorlijk “gevoelig”.

Nu moeten we de Pi vertellen waar dit configuratiebestand te vinden is, bewerk het bestand “/etc/default/hostapd“, met het commando:

sudo nano /etc/default/hostapd

Zoek de regel met

#DAEMON_CONF=""

En pas deze aan met de padnaam en het configuratiebestand:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Ps. vergeet niet het hekje (#) te verwijderen voordat je het bestand op slaat!

Druk op CTRL+X, dan Y, dan ENTER om de wijzigingen op te slaan!

Bewerk het bestand “/etc/init.d/hostapd“, met het commando:

sudo nano /etc/init.d/hostapd

Zoek de regel met

DAEMON_CONF=

En pas deze aan met de padnaam en het configuratiebestand:

DAEMON_CONF=/etc/hostapd/hostapd.conf

Druk op CTRL+X, dan Y, dan ENTER om de wijzigingen op te slaan!


Network Address Translation (NAT) configureren

Met het opzetten van een NAT kunnen meer clienten zich aanmelden bij de WiFi access point, alle data word getunneld naar een enkele ethernet IP. (maar dat moet enigszins altijd gebeuren ook al verbind er maar 1 client)

Bewerk het bestand “/etc/sysctl.conf” met het commando:

sudo nano /etc/sysctl.conf

Scroll helemaal naar beneden en voeg deze regel toe:

net.ipv4.ip_forward=1

Druk op CTRL+X, dan Y, dan ENTER om de wijzigingen op te slaan!

Dit zorgt er voor dat IP forwarding automatisch bij het opstarten gestart wordt!

Start het volgende commando om het meteen te activeren:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Start de volgende commando’s om een netwerk vertaling uit te voeren tussen de ethernetpoort eth0 en WiFi poort wlan0

Je kan controles uitvoeren op de tables met de commando’s:

Om te zorgen dat dit gebeurd bij het opstarten, start het commando:

sudo sh -c "iptables-save > /etc/iptables/rules.v4"

de iptables-persistent tool die we geinstalleerd hebben aan het begin zal deze configuratie automatisch laden bij het opstarten van de pi.


Update hostapd (wellicht)

  • Als je een rapsberry kernel runt met v4.4.13-v7+ of hoger kan je deze stap overslaan (check met uname -a)
  • Als je de ingebouwde WiFi adapter Raspberry Pi 3 gebruikt kan je deze stap overslaan.

Voordat je de access point software kan gebruiken moet deze eerst geupdated worden om een WiFi adapter te ondersteunen.

Download de nieuwe versie met het commando:

wget http://adafruit-download.s3.amazonaws.com/adafruit_hostapd_14128.zip

Uitpakken:

unzip adafruit_hostapd_14128.zip

Oude versie verwijderen:

sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG

Nieuwe versie installeren:

sudo mv hostapd /usr/sbin

Uitvoeringsrechten goed zetten:

sudo chown root:root /usr/sbin/hostapd

sudo chmod 755 /usr/sbin/hostapd


Eerste test

We kunnen eindelijk de access point host starten met het commando:

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

Je krijgt dan zoiets al dit te zien:

En je kan de Pi AP al zien:

Je kan proberen er al vast verbinding me te maken met het wachtwoord dat ingesteld is (Raspberry), er zal tekst verschijnen in de console, maar je kan nog geen verbinding maken met de ethernet verbinding.

Je kan de test beeindigen met CTRL+C

Weghalen van de WPA-Supplicant

Afhankelijk van je distro moet je wellicht de WPASupplicant verwijderen met het volgende commando:

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/

Daarna rebooten (sudo reboot)


Afronden

Nu we weten dat alles werkt kunnen we een “daemon” opzetten, dat is een programma die start bij het opstarten van de Pi, start de volgende commando’s:

Ps. je kan altijd de status controleren met:

Zodra de daemon service start bevestig dat er geen foutmeldingen zijn, nu kunne we deze laten opstarten bij het booten van de Pi, met de volgende commando’s:

Nu kun je verbinding maken met de Pi als Access Point met bijvoorbeeld je telefoon en zo internetten etc.

Ps. Als je een webserver installeert op de Pi is die te benaderen via 192.168.42.1