Wireless Access Point
Start dit hoofdstuk met een nieuwe reservekopie van de Basisimage.
In computernetwerken is een WAP ofwel Wireless Access Point (draadloos toegangspunt) een apparaat dat het wificlients mogelijk maakt om verbinding te maken met een draadloos netwerk volgens één van de wifistandaarden (IEEE 802.11). Bij publiek toegankelijke wifinetwerken geeft de WAP je toegang tot internet nadat je je hebt geautoriseerd bij het netwerk. In geval van private draadloze netwerken geeft de WAP-toegang aan zowel lokale netwerkresources (fileserver, printers et cetera) als via een router ook tot internet.
Sommige Raspberry Pi's hebben op het moederbord geen WiFi module. Voor deze modellen zorg je voor een USB-wifi-adapter die compatibel is met de Linux-distributie die je gebruikt. Koop je de adapter in een gespecialiseerde Pi-shop, dan zit je meestal goed. Als besturingssysteem gebruiken we naar gewoonte Raspberry Pi OS. Sluit indien nodig de adapter via USB aan, schakel je Pi in en geef dan de opdracht:
pi@raspberrypi:~ $ iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11 ESSID:"Proximus-Home-123456-5GHz"
Mode:Managed Frequency:5.28 GHz Access Point: F0:4D:D4:0A:B6:D7
Bit Rate=390 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=70/70 Signal level=-40 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Zie je in de uitvoer informatie over je adapter staan, bijvoorbeeld achter de naam wlan0 dan wordt de adapter door Raspberry Pi OS herkend.
WiFi scanner
Een WiFi scanner gebruik je om de omgeving af te tasten naar aanwezige WiFi Access Points en hun eigenschappen weer te geven. Dit is belangrijk daar WiFi zeer gevoelig is voor storing door andere WiFi signalen. Om storing zoveel mogelijk te vermijden, pas je de instellingen van het WiFi Access Point aan zodat deze andere kanalen, zendfrequenties, enz. gebruikt dan de reeds aanwezige WiFi Access Points.
Een veel gebruikte scanner maakt deel uit van een modern netwerksysteem, die nu standaard in Raspberry Pi OS wordt gebruikt.
pi@raspberrypi:~ $ sudo nmcli dev wifi
[sudo] wachtwoord voor pi:
IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY
F0:4D:D4:0A:B6:D6 Proximus-Home-123456 Infra 1 270 Mbit/s 100 ▂▄▆█ WPA2
* F0:4D:D4:0A:B6:D7 Proximus-Home-123456-5GHz Infra 56 540 Mbit/s 100 ▂▄▆█ WPA2
E8:E8:B7:F9:BD:3D SMA1930145860 Infra 4 65 Mbit/s 84 ▂▄▆█ WPA1 WPA2
20:B8:2B:12:B7:A6 Proximus-Home-401733 Infra 6 130 Mbit/s 70 ▂▄▆_ WPA2
20:B8:2B:12:B7:A7 Proximus-Home-401733 Infra 52 540 Mbit/s 60 ▂▄▆_ WPA2
22:B8:2B:12:B7:A0 -- Infra 52 540 Mbit/s 57 ▂▄▆_ WPA2
F4:05:95:FE:56:91 Proximus-Home-401733 Infra 1 270 Mbit/s 50 ▂▄__ WPA2
00:25:42:E4:C7:46 Blackvue750XPlus-E4C746 Infra 6 65 Mbit/s 40 ▂▄__ WPA2
F8:53:29:A5:3A:A8 SUN2000-HV2270661892 Infra 9 65 Mbit/s 40 ▂▄__ WPA2
04:E3:1A:CD:07:67 Proximus-Home-706769 Infra 124 540 Mbit/s 32 ▂▄__ WPA2
06:E3:1A:CD:07:60 -- Infra 124 540 Mbit/s 32 ▂▄__ WPA2 WPA3
04:E3:1A:CD:07:66 Proximus-Home-706769 Infra 11 130 Mbit/s 30 ▂___ WPA2
C8:D1:2A:2D:70:AC TelenetThuis Infra 11 130 Mbit/s 30 ▂___ WPA2
C8:D1:2A:2D:70:B0 TelenetThuis Infra 100 270 Mbit/s 27 ▂___ WPA2
58:68:7A:5E:53:06 Proximus-Home-592858 Infra 1 260 Mbit/s 25 ▂___ WPA2 WPA3
C4:AC:59:86:AA:DE ABB-c4-ac-59-86-aa-de Infra 4 65 Mbit/s 24 ▂___ WPA2
F6:05:95:FE:56:94 Proximus-Home-401733 Infra 52 540 Mbit/s 19 ▂___ WPA2
F6:05:95:FE:56:96 -- Infra 52 540 Mbit/s 19 ▂___ WPA2
DHCP
Bij DHCP is het principe dat toestellen in een IP-netwerk geen vast geconfigureerd IP-adres hebben, maar hun IP-adres dynamisch verkrijgen van een centraal beheerde DHCP-server. De server, die zelf een vast IP-adres heeft, beheert hiertoe een "pool" van beschikbare IP-adressen. Na het opstarten van de DHCP-server zijn die adressen vrij en kunnen ze aangevraagd worden door de toestellen op het netwerk. Door de aanvragen worden de IP-adressen toebedeeld, uiteraard in aantal beperkt tot de grootte van de pool. Stel de DHCP-server zo in dat jouw netwerk(ken) geen apparaten bevatten met hetzelfde IP-adres, beter nog met hetzelfde netwerkadres. Ook bij het opzetten van verschillende draadloze toegangspunten moet je daar rekening mee houden. De meeste thuisnetwerken gebruiken het netwerkadres 198.168.1.0/24. De IPv4 adressen die je voor privé doeleinden mag gebruiken zijn:
| Omschrijving | Eerste IP-adres | Laatste IP-adres |
|---|---|---|
| 24-bit block | 10.0.0.0 | 10.255.255.255 |
| 20-bit block | 172.16.0.0 | 172.31.255.255 |
| 16-bit block | 192.168.0.0 | 192.168.255.255 |
Toestellen die op het netwerk komen, kunnen via een aanvraagsequentie een IP-adres verkrijgen dat beperkt geldig is, voor de ingestelde geldigheidsduur, de "lease time". Toestellen die het netwerk verlaten, dienen hun adres vrij te geven. Dit gebeurt uiteraard niet in alle gevallen. Het adres komt echter uiteindelijk toch weer vrij door het verlopen van de geldigheidsduur.
Het Domain Name System (DNS) is het systeem en netwerkprotocol dat op het Internet gebruikt wordt om namen van computers naar numerieke adressen (IP-adressen) te vertalen en omgekeerd. Hoewel dit "vertalen" genoemd wordt gaat het gewoon om opzoeken in tabellen, waarin namen aan nummers gekoppeld zijn.
WiFi hotspot
Omgaan met Wi-Fi in hotels is bijna altijd lastig. Inloggen op een portaal dat niet altijd goed werkt op elk apparaat - je telefoon, laptop, tablet, e-reader, horloge en meer - is foutgevoelig en het is een gemakkelijke manier om per ongeluk dure internetkosten aan je hotelverblijf toe te voegen. Sommige hotels laten maar één apparaat per kamer toe! De meeste laten je apparaten niet met elkaar communiceren en als ze dat wel doen, kunnen ze een veiligheidsrisico vormen.
Je kunt een Raspberry Pi gebruiken om eenmaal verbinding te maken met de Wi-Fi van het hotel en vervolgens via een apart netwerk uit te zenden naar al je apparaten. Met deze opzet hoef je niet elke keer als je naar een hotel gaat Wi-Fi te configureren voor al je apparaten. In plaats daarvan kun je ze één keer instellen en dan elke keer dat je naar een hotel gaat, zullen je apparaten automatisch verbinding maken met het netwerk van de Raspberry Pi.
We gebruiken als voorbeeld een hotspot vanaf een Wi-Fi netwerkverbinding in een hotel, maar dezelfde procedure moet werken voor elk openbaar Wi-Fi netwerk dat een captive portal gebruikt, inclusief gastnetwerken op luchthavens, universiteitscampussen en horeca zaken.
Hoe sneller je Raspberry Pi, hoe betere prestaties je zult krijgen. Voor deze hotspot is een Raspberry Pi 4 2GB en recenter een goede keuze.
Het is een goed idee om een Raspberry Pi te kiezen met een ingebouwde Wi-Fi-module, omdat je twee Wi-Fi-apparaten nodig hebt om je eigen hotel Wi-Fi-hotspot te hosten: één om verbinding te maken met het netwerk van het hotel en één om een netwerk uit te zenden naar je andere apparaten. M.a.w. als je deze hotspot wilt maken, heb je een extra WiFi adapter nodig. Met wat kleine aanpassingen kan je ook werken met de ethernet (kabel) verbinding en de ingebouwde Wi-Fi module.
We beginnen met de hotspot thuis op te zetten. Om de hotspot te gebruiken als je eenmaal in een hotel bent, zie verder bij De hotspot gebruiken.
Voer de volgende opdracht uit om Wi-Fi-apparaten te identificeren met de Network Manager CLI (of gebruik de iwconfig opdracht):
pi@raspberrypi:~ $ nmcli device
DEVICE TYPE STATE CONNECTION
wlan0 wifi verbonden netplan-wlan0-Proximus-Home-123456
lo loopback connected (externally) lo
p2p-dev-wlan0 wifi-p2p niet verbonden --
eth0 ethernet niet beschikbaar --
De bovenstaande uitvoer toont een standaard WiFi configuratie, daarbij is wlan0 verbonden met een Wi-Fi-netwerk.
De verbinding kreeg de naam netplan-wlan0-Proximus-Home-123456.
Het in de Raspberry Pi ingebouwde WiFi apparaat gaan we gebruiken als zender. We gebruiken een extra USB WiFi adapter (dongle) als ontvanger. Sluit na het opstarten (belangrijk) van de Raspberry Pi een extra USB WiFi apparaat aan. Daarna moeten we nagaan of de Raspberry Pi het aangesloten USB WiFi apparaat ondersteunt.
pi@raspberrypi:~ $ nmcli device
DEVICE TYPE STATE CONNECTION
wlan0 wifi verbonden netplan-wlan0-Proximus-Home-123456
lo loopback connected (externally) lo
wlan1 wifi niet verbonden --
p2p-dev-wlan0 wifi-p2p niet verbonden --
eth0 ethernet niet beschikbaar --
Als je Raspberry Pi een ingebouwde Wi-Fi-module heeft, zou deze standaard moeten worden weergegeven als wlan0.
De eerste Wi-Fi-module die je aansluit zou moeten worden weergegeven als wlan1, en daaropvolgende adapters zullen worden weergegeven als wlan2, wlan3, enzovoort.
Normaal maakt een Raspberry Pi een verbinding met je netwerk via de ingebouwde Wi-Fi-module en krijgt het extra USB WiFi apparaat de volgende wlan naam (zie uitvoer hierboven).
De USB Wi-Fi-module wlan1 is momenteel niet in gebruik, dus de status luidt momenteel niet verbonden.
We gaan echter wlan0 (ingebouwde Wi-Fi-module) gebruiken om te zenden, en dit omdat we zeker zijn dat deze in de Raspberry Pi ingebouwde Wi-Fi-module geschikt is om als zender te functioneren. Wlan1 gebruiken we dan om te verbinden met een bestaand WiFi netwerk. M.a.w. we moeten wlan0 vrijmaken en wlan1 verbinden met het WiFi netwerk. Dit kan met de muis (wat bij mij niet direct lukte, uiteindelijk wel) en met twee opdrachten (lukt altijd). Indien je via een SSH verbinding werkt, zal deze afgebroken worden en moet je de twee opdrachten na elkaar uitvoeren om de SSH verbinding achteraf te kunnen herstellen. Eerst de twee opdrachten voor als je een toetsenbord en scherm op de Raspberry pi hebt aangesloten. We beginnen met het verwijderen van de actieve WiFi verbinding:
pi@raspberrypi:~ $ sudo nmcli connection delete netplan-wlan0-Proximus-Home-123456
[sudo] wachtwoord voor pi:
Verbinding ‘netplan-wlan0-Proximus-Home-123456’ (9c7b1216-265f-37a4-83f8-8f7cabcd741e) is met succes verwijderd.
en daarna de opdracht om wlan1 te verbinden met hetzelfde WiFi netwerk:
pi@raspberrypi:~ $ sudo nmcli dev wifi connect Proximus-Home-123456 password "wifi-wachtwoord" ifname wlan1
Device 'wlan1' successfully activated with '188706c3-67d2-4560-9206-3834bf03b247'.
Of indien je via een SSH verbinding werkt:
pi@raspberrypi:~ $ sudo nmcli connection delete netplan-wlan0-Proximus-Home-123456 && sudo nmcli dev wifi connect Proximus-Home-123456 password "wifi-wachtwoord" ifname wlan1
[sudo] wachtwoord voor pi:
Verbinding ‘netplan-wlan0-Proximus-Home-123456’ (9c7b1216-265f-37a4-83f8-8f7cabcd741e) is met succes verwijderd.
Via de SSH verbinding merk je dat de SSH verbinding wordt afgebroken na de eerste opdracht. De tweede opdracht wordt wel degelijk uitgevoerd, maar daar zie je niets meer van. Na een tijdje kan je een nieuwe SSH verbinding maken. Wel op voorwaarde dat de tweede opdracht succesvol werd afgerond.
Dit is nu de huidige situatie:
pi@raspberrypi:~ $ nmcli device
DEVICE TYPE STATE CONNECTION
wlan1 wifi verbonden Proximus-Home-123456
lo loopback connected (externally) lo
wlan0 wifi niet verbonden --
p2p-dev-wlan0 wifi-p2p niet verbonden --
eth0 ethernet niet beschikbaar --
Even samenvatten: In de bovenstaande uitvoer is de USB Wi-Fi-module, wlan1, verbonden met een Wi-Fi-netwerk met de naam Proximus-Home-123456. Het ingebouwde Wi-Fi-apparaat, wlan0, is momenteel niet in gebruik, dus de status luidt momenteel niet verbonden.
We gebruiken deze configuratie omdat we zeker zijn dat de ingebouwde Wi-Fi-module geschikt is om ook als zender te functioneren. Dit is niet altijd het geval met USB Wi-Fi-modules.
Vervolgens zullen we de ingebouwde Wi-Fi-module gebruiken om een hotspot-netwerk uit te zenden. Voer de volgende opdracht uit om een hotspot aan te maken en vervang de ssid PiHotspot en SterkWachtwoord door een hotspotnaam en wachtwoord naar keuze:
pi@raspberrypi:~ $ sudo nmcli device wifi hotspot ssid PiHotspot password SterkWachtwoord ifname wlan0
Device 'wlan0' successfully activated with '40531020-d326-4123-ba72-303d65415064'.
Hint: "nmcli dev wifi show-password" shows the Wi-Fi name and password.
De ifname wlan0 optie aan het einde van deze opdracht specificeert dat de hotspot de ingebouwde Wi-Fi-module moet gebruiken, die de AP-modus (Access Point) ondersteunt die nodig is om een hotspotnetwerk uit te zenden.
Om een hotspot te hosten vanaf een Raspberry Pi die geen ingebouwde Wi-Fi-module heeft, specificeer je een interface die overeenkomt met een USB-adapter die de AP-modus ondersteunt.
Na het aanmaken van het hotspotnetwerk zou je hotspot automatisch actief moeten worden.
Maak vervolgens verbinding met het Wi-Fi-netwerk van de hotspot vanaf je gewone computer of smartphone. Zoek naar een netwerk met een SSID die overeenkomt met de hotspotnaam die je in de vorige stap hebt gekozen. Gebruik het wachtwoord dat je ook in die stap hebt opgegeven om je te verifiëren.
Voer de volgende opdracht uit om je huidige verbindingen te bekijken:
pi@raspberrypi:~ $ nmcli connection
NAME UUID TYPE DEVICE
Hotspot 5d16796f-49ea-47ee-ad32-dfc1397a6b88 wifi wlan0
Proximus-Home-123456 188706c3-67d2-4560-9206-3834bf03b247 wifi wlan1
lo 96941e68-0648-4c2f-bdea-19b9e8eb031d loopback lo
netplan-eth0 75a1216a-9d1a-30cd-8aca-ace5526ec021 ethernet --
De verbinding met de naam Hotspot vertegenwoordigt je nieuwe hotspotnetwerk. De verbinding netplan-eth0 hierboven vertegenwoordigt een opgeslagen verbinding die inactief is.
Laten we je hotspotnetwerk zo instellen dat het automatisch uitzendt wanneer je Raspberry Pi opstart.
Wanneer je Raspberry Pi opstart, start hij welke verbinding autoconnect heeft ingeschakeld met de hoogste prioriteit.
Om ervoor te zorgen dat je hotspot altijd opstart bij het opstarten, zullen we autoconnect inschakelen voor de hotspot en een prioriteit instellen die hoger is dan elke andere verbinding.
Voer de nmcli connection opdracht opnieuw uit en kopieer de UUID voor je hotspot netwerk uit de tabel.
Voer dan de volgende opdracht uit om de verbindingseigenschappen voor je hotspotnetwerk te bekijken, waarbij je 5d16796f-49ea-47ee-ad32-dfc1397a6b88 vervangt door de UUID van je hotspot:
pi@raspberrypi:~ $ nmcli connection show 5d16796f-49ea-47ee-ad32-dfc1397a6b88
connection.id: Hotspot
connection.uuid: 5d16796f-49ea-47ee-ad32-dfc1397a6b88
connection.stable-id: --
connection.type: 802-11-wireless
connection.interface-name: wlan0
connection.autoconnect: nee
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
...
De uitvoer zal een heleboel eigenschappen bevatten die je hotspotnetwerk beschrijven. Maar we zijn nu alleen geïnteresseerd in de volgende twee eigenschappen:
connection.autoconnect: nee connection.autoconnect-priority: 0
Druk q om de opdracht af te sluiten.
Voer de volgende opdracht uit om de prioriteit en autoconnect-eigenschappen voor je hotspot te wijzigen, waarbij je 5d16796f-49ea-47ee-ad32-dfc1397a6b88 vervangt door de UUID voor je hotspot die je eerder naar je klembord hebt gekopieerd:
pi@raspberrypi:~ $ sudo nmcli connection modify 5d16796f-49ea-47ee-ad32-dfc1397a6b88 connection.autoconnect yes connection.autoconnect-priority 100
Als je opdracht succesvol is uitgevoerd (zonder uitvoer), zouden we de volgende nieuwe waarden voor die eigenschappen moeten zien als we de nmcli connection show ... opdracht opnieuw uitvoeren.
connection.autoconnect: ja connection.autoconnect-priority: 100
Test of de hotspot nog correct werkt na het herstarten van de Raspberry Pi.
Verbindingsportaal configureren
Laten we nu een portaal website configureren waarmee je je Raspberry Pi eenvoudig vanuit een browser kunt verbinden met een Wi-Fi-netwerk in een hotel.
Installeer software om met de programmeertaal Python websites (Flask) te maken:
pi@raspberrypi:~ $ sudo apt install python3-flask
Installeren:
python3-flask
Installeren van vereisten:
python3-asgiref python3-click python3-dotenv python3-itsdangerous python3-pyasyncore python3-pyinotify python3-werkzeug
Voorgestelde pakketten:
python-flask-doc python-pyinotify-doc ipython3 python-werkzeug-doc python3-watchdog
Samenvatting:
Opwaarderen: 0, Installeren: 8, Verwijderen: 0, Niet opwaarderen: 0
Downloadgrootte: 518 kB
Benodigde ruimte: 2.165 kB / 6.391 MB beschikbaar
Doorgaan? [J/n]
Ophalen:1 http://deb.debian.org/debian trixie/main arm64 python3-asgiref all 3.8.1-1 [28,8 kB]
Ophalen:2 http://deb.debian.org/debian trixie/main arm64 python3-click all 8.2.0+0.really.8.1.8-1 [95,4 kB]
Ophalen:3 http://deb.debian.org/debian trixie/main arm64 python3-dotenv all 1.0.1-1 [26,6 kB]
Ophalen:4 http://deb.debian.org/debian trixie/main arm64 python3-itsdangerous all 2.2.0-2 [18,1 kB]
Ophalen:5 http://deb.debian.org/debian trixie/main arm64 python3-werkzeug all 3.1.3-2 [207 kB]
Ophalen:6 http://deb.debian.org/debian trixie/main arm64 python3-flask all 3.1.1-1 [107 kB]
Ophalen:7 http://deb.debian.org/debian trixie/main arm64 python3-pyasyncore all 1.0.2-3 [10,1 kB]
Ophalen:8 http://deb.debian.org/debian trixie/main arm64 python3-pyinotify all 0.9.6-5 [24,9 kB]
518 kB opgehaald in 0s (2.641 kB/s)
Voorheen niet geselecteerd pakket python3-asgiref wordt geselecteerd.
(Database wordt ingelezen ... 142087 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../0-python3-asgiref_3.8.1-1_all.deb wordt voorbereid...
Bezig met uitpakken van python3-asgiref (3.8.1-1) ...
Voorheen niet geselecteerd pakket python3-click wordt geselecteerd.
Uitpakken van .../1-python3-click_8.2.0+0.really.8.1.8-1_all.deb wordt voorbereid...
Bezig met uitpakken van python3-click (8.2.0+0.really.8.1.8-1) ...
Voorheen niet geselecteerd pakket python3-dotenv wordt geselecteerd.
Uitpakken van .../2-python3-dotenv_1.0.1-1_all.deb wordt voorbereid...
Bezig met uitpakken van python3-dotenv (1.0.1-1) ...
Voorheen niet geselecteerd pakket python3-itsdangerous wordt geselecteerd.
Uitpakken van .../3-python3-itsdangerous_2.2.0-2_all.deb wordt voorbereid...
Bezig met uitpakken van python3-itsdangerous (2.2.0-2) ...
Voorheen niet geselecteerd pakket python3-werkzeug wordt geselecteerd.
Uitpakken van .../4-python3-werkzeug_3.1.3-2_all.deb wordt voorbereid...
Bezig met uitpakken van python3-werkzeug (3.1.3-2) ...
Voorheen niet geselecteerd pakket python3-flask wordt geselecteerd.
Uitpakken van .../5-python3-flask_3.1.1-1_all.deb wordt voorbereid...
Bezig met uitpakken van python3-flask (3.1.1-1) ...
Voorheen niet geselecteerd pakket python3-pyasyncore wordt geselecteerd.
Uitpakken van .../6-python3-pyasyncore_1.0.2-3_all.deb wordt voorbereid...
Bezig met uitpakken van python3-pyasyncore (1.0.2-3) ...
Voorheen niet geselecteerd pakket python3-pyinotify wordt geselecteerd.
Uitpakken van .../7-python3-pyinotify_0.9.6-5_all.deb wordt voorbereid...
Bezig met uitpakken van python3-pyinotify (0.9.6-5) ...
Instellen van python3-dotenv (1.0.1-1) ...
Instellen van python3-itsdangerous (2.2.0-2) ...
Instellen van python3-click (8.2.0+0.really.8.1.8-1) ...
Instellen van python3-werkzeug (3.1.3-2) ...
Instellen van python3-pyasyncore (1.0.2-3) ...
Instellen van python3-asgiref (3.8.1-1) ...
Instellen van python3-flask (3.1.1-1) ...
Instellen van python3-pyinotify (0.9.6-5) ...
Bezig met afhandelen van triggers voor man-db (2.13.1-1) ...
Voer vervolgens de volgende opdracht uit om een map te maken waarin we onze portal kunnen maken, genaamd wifi-portal:
pi@raspberrypi:~ $ mkdir ~/wifi-portal
Navigeer vervolgens naar de portaalmap:
pi@raspberrypi:~ $ cd ~/wifi-portal
Open met een teksteditor app.py in de portaalmap, die de logica voor de portaal website bevat:
pi@raspberrypi:~/wifi-portal $ nano app.py
Kopieer en plak de volgende Python code in app.py:
from flask import Flask,request
import subprocess
app = Flask(__name__)
wifi_device = "wlan1"
@app.route('/')
def index():
result = subprocess.check_output(["nmcli", "--colors", "no", "-m", "multiline", "--get-value", "SSID", "dev", "wifi", "list", "ifname", wifi_device])
ssids_list = result.decode().split('\n')
dropdowndisplay = f"""
<!DOCTYPE html>
<html>
<head>
<title>Wifi Control</title>
</head>
<body>
<h1>Wifi Control</h1>
<form action="/submit" method="post">
<label for="ssid">Choose a WiFi network:</label>
<select name="ssid" id="ssid">
"""
for ssid in ssids_list:
only_ssid = ssid.removeprefix("SSID:")
if len(only_ssid) > 0:
dropdowndisplay += f"""
<option value="{only_ssid}">{only_ssid}</option>
"""
dropdowndisplay += f"""
</select>
<p/>
<label for="password">Password: <input type="password" name="password"/></label>
<p/>
<input type="submit" value="Connect">
</form>
</body>
</html>
"""
return dropdowndisplay
@app.route('/submit',methods=['POST'])
def submit():
if request.method == 'POST':
print(*list(request.form.keys()), sep = ", ")
ssid = request.form['ssid']
password = request.form['password']
connection_command = ["nmcli", "--colors", "no", "device", "wifi", "connect", ssid, "ifname", wifi_device]
if len(password) > 0:
connection_command.append("password")
connection_command.append(password)
result = subprocess.run(connection_command, capture_output=True)
if result.stderr:
return "Error: failed to connect to wifi network: <i>%s</i>" % result.stderr.decode()
elif result.stdout:
return "Success: <i>%s</i>" % result.stdout.decode()
return "Error: failed to connect."
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=80)
Druk op Ctrl+x, dan op j en tenslotte op Enter om het bewerkte bestand op te slaan en nano af te sluiten.
Test het Python script:
pi@raspberrypi:~/wifi-portal $ sudo python3 /home/pi/wifi-portal/app.py
* Serving Flask app 'app'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:80
* Running on http://192.168.129.69:80
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 792-262-887
Breek de opdracht af met de sneltoets Ctrl+c.
Laten we vervolgens je Raspberry Pi configureren om automatisch de Wi-Fi-portal uit te voeren na het opstarten. Voer de volgende opdracht uit om jouw cron schema (een Linux taakplanner) te openen:
pi@raspberrypi:~/wifi-portal $ sudo crontab -e
no crontab for root - using an empty one
Select an editor. To change later, run select-editor again.
1. /bin/nano <---- easiest
2. /usr/bin/vim.tiny
3. /bin/ed
Choose 1-3 [1]:
Voer 1 in en druk Enter om de nano teksteditor te gebruiken om je cron schema te bewerken. Voeg vervolgens de volgende regel toe aan het bestand, waarbij je pi vervangt door de gebruikersnaam van je Raspberry Pi gebruikersaccount:
@reboot /usr/bin/python3 /home/pi/wifi-portal/app.py
Druk op Ctrl+x, dan op j en tenslotte op Enter om het bewerkte bestand op te slaan en nano af te sluiten.
En voer de volgende opdracht in om je Raspberry Pi opnieuw op te starten:
pi@raspberrypi:~ $ sudo systemctl reboot
Je bent nu klaar om verbinding te maken met elk Wi-Fi-netwerk in een hotel!
De hotspot gebruiken
Je zou nu je Wi-Fi hotspot in het hotel volledig moeten hebben ingesteld. Elke keer dat je naar een hotel gaat, herhaal je de volgende stappen:
- Sluit je Raspberry Pi aan.
- Verbind je gewone computer met de Wi-Fi verbinding van de hotspot.
- Sluit een apparaat aan op de hotspot en surf naar http://raspberrypi.
Selecteer een Wi-Fi-netwerk en voer indien nodig een wachtwoord in.

- Open op een apparaat dat verbonden is met de hotspot de captive portal op http://captive.apple.com. Authenticeer om het Raspberry Pi hotspot netwerk te verbinden met het internet.
De eerste keer dat je een ander apparaat met de hotspot gebruikt, moet je de Wi-Fi-verbinding handmatig instellen. Maar daarna zou het apparaat automatisch verbinding moeten maken met de hotspot.
Het kan zijn dat je de captive portal stap elke 12-48 uur moet herhalen, afhankelijk van de netwerkinstellingen van je hotel.
Nu je je eigen Wi-Fi-hotspot hebt via de Wi-Fi-netwerken van het hotel, kun je hem goed gebruiken! Kijk wat films, surf op internet en ontspan.
RaspAP: WiFi router met Access Point
Start dit onderdeel met een nieuwe reservekopie van de Basisimage.
Deze keer gebruiken we een bekabelde ethernet verbinding naar het internet en de rest van ons netwerk. M.a.w. zorg voor een netwerkkabel van de Raspberry Pi naar jouw thuisrouter (Telenet, Proximus, enz). De ingebouwde Wi-Fi-module gebruiken we voor de RaspAP hotspot.
Om snel een Wireless Access Point op te zetten, maken we gebruik van RaspAP. Zoals steeds zorgen we voor een volledig bijgewerkt systeem:
pi@raspberrypi:~ $ sudo apt-get update && sudo apt-get full-upgrade -y
[sudo] wachtwoord voor pi:
Geraakt:1 http://deb.debian.org/debian trixie InRelease
Geraakt:2 http://deb.debian.org/debian trixie-updates InRelease
Geraakt:3 http://deb.debian.org/debian-security trixie-security InRelease
Geraakt:4 http://archive.raspberrypi.com/debian trixie InRelease
Pakketlijsten worden ingelezen... Klaar
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
Opwaardering wordt doorgerekend... Klaar
0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Om er zeker van te zijn dat alle updates daadwerkelijk actief zijn, herstart je de Raspberry Pi:
pi@raspberrypi:~ $ sudo systemctl reboot
Daar elk land zijn eigen wetgeving heeft i.v.m. zendfrequenties, moet je via:
pi@raspberrypi:~ $ sudo raspi-config
In het onderdeel Localisation Options, bij WLAN Country het land waar je de Access Point wilt gebruiken instellen.
Nu kunnen we RaspAP installeren met de opdracht:
pi@raspberrypi:~ $ curl -sL https://install.raspap.com | bash
RaspAP Install: Checking internet connectivity...
[ ✓ ok ]
888888ba .d888888 888888ba
88 8b d8 88 88 8b
a88aaaa8P' .d8888b. .d8888b. 88d888b. 88aaaaa88a a88aaaa8P
88 8b. 88 88 Y8ooooo. 88 88 88 88 88
88 88 88. .88 88 88. .88 88 88 88
dP dP 88888P8 88888P 88Y888P 88 88 dP
88
dP version 3.5.5
The Quick Installer will guide you through a few easy steps
RaspAP Install: Configure installation
Detected OS: Debian GNU/Linux 13 (trixie) 64-bit
Using GitHub repository: RaspAP/raspap-webgui 3.5.5 branch
Configuration directory: /etc/raspap
Installation directory: /var/www/html? [Y/n]:
RaspAP gebruikt een webserver waardoor we RaspAP via een webpagina kunnen bedienen.
Je kunt het standaard antwoord (Y) aanvaarden door Enter te drukken.
Installing lighttpd directory: /var/www/html
Complete installation with these values? [Y/n]:
We gaan door met installeren door nogmaals Enter te drukken.
RaspAP Install: Updating sources
Geraakt:1 http://deb.debian.org/debian trixie InRelease
Geraakt:2 http://deb.debian.org/debian trixie-updates InRelease
Geraakt:3 http://deb.debian.org/debian-security trixie-security InRelease
Geraakt:4 http://archive.raspberrypi.com/debian trixie InRelease
Pakketlijsten worden ingelezen...
RaspAP Install: Checking for systemd network services
systemd-networkd.service is not running (ok)
systemd-resolved.service is not running (ok)
[ ✓ ok ]
RaspAP Install: Installing required packages
php8.4-fpm will be installed from the main deb sources list
dhcpcd5, iw and rsync will be installed from the main deb sources list
Pakketlijsten worden ingelezen...
Boom van vereisten wordt opgebouwd...
De statusinformatie wordt gelezen...
git is reeds de nieuwste versie (1:2.47.3-0+deb13u1).
git staat ingesteld op handmatig geïnstalleerd.
iw is reeds de nieuwste versie (6.9-1+b1).
iw staat ingesteld op handmatig geïnstalleerd.
rsync is reeds de nieuwste versie (3.4.1+ds1-5+deb13u4).
De volgende extra pakketten zullen geïnstalleerd worden:
dhcpcd iptables libargon2-1 libip4tc2 libip6tc2 libjq1 libonig5
lighttpd-mod-deflate lighttpd-mod-openssl netfilter-persistent php-common
php8.4-cli php8.4-common php8.4-opcache php8.4-readline
Voorgestelde pakketten:
dhcpcd-gtk resolvconf firewalld php-cgi php-fpm spawn-fcgi apache2-utils
lighttpd-doc lighttpd-mod-webdav lighttpd-modules-dbi lighttpd-modules-lua
php-pear vnstati
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
dhcpcd dhcpcd5 dnsmasq hostapd iptables iptables-persistent isoquery jq
libargon2-1 libip4tc2 libip6tc2 libjq1 libonig5 lighttpd
lighttpd-mod-deflate lighttpd-mod-openssl netfilter-persistent php-common
php8.4-cli php8.4-common php8.4-fpm php8.4-opcache php8.4-readline qrencode
vnstat
0 opgewaardeerd, 25 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 6.832 kB aan archieven opgehaald worden.
Na deze bewerking zal er 39,9 MB extra schijfruimte gebruikt worden.
Ophalen:1 http://deb.debian.org/debian trixie/main arm64 dnsmasq all 2.91-1+deb13u1 [69,7 kB]
Ophalen:2 http://deb.debian.org/debian trixie/main arm64 hostapd arm64 2:2.10-24 [802 kB]
Ophalen:3 http://deb.debian.org/debian trixie/main arm64 libip4tc2 arm64 1.8.11-2 [19,6 kB]
...
Ophalen:23 http://deb.debian.org/debian trixie/main arm64 php8.4-cli arm64 8.4.23-1~deb13u1 [1.676 kB]
Ophalen:24 http://deb.debian.org/debian trixie/main arm64 php8.4-fpm arm64 8.4.23-1~deb13u1 [1.686 kB]
Ophalen:25 http://deb.debian.org/debian trixie/main arm64 qrencode arm64 4.1.1-2 [41,0 kB]
Voorconfigureren van pakketten ...
6.832 kB opgehaald in 0s (23,6 MB/s)
Voorheen niet geselecteerd pakket dnsmasq wordt geselecteerd.
(Database wordt ingelezen ... 142087 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../0-dnsmasq_2.91-1+deb13u1_all.deb wordt voorbereid...
Bezig met uitpakken van dnsmasq (2.91-1+deb13u1) ...
...
Voorheen niet geselecteerd pakket qrencode wordt geselecteerd.
Uitpakken van .../18-qrencode_4.1.1-2_arm64.deb wordt voorbereid...
Bezig met uitpakken van qrencode (4.1.1-2) ...
Instellen van lighttpd (1.4.79-2) ...
Created symlink '/etc/systemd/system/multi-user.target.wants/lighttpd.service' → '/usr/lib/systemd/system/lighttpd.service'.
Created symlink '/etc/systemd/system/timers.target.wants/lighttpd-maint.timer' → '/usr/lib/systemd/system/lighttpd-maint.timer'.
lighttpd-maint.service is a disabled or a static unit, not starting it.
Instellen van php-common (2:96) ...
Created symlink '/etc/systemd/system/timers.target.wants/phpsessionclean.timer' → '/usr/lib/systemd/system/phpsessionclean.timer'.
Instellen van lighttpd-mod-openssl (1.4.79-2) ...
Instellen van isoquery (3.3.4-1+b1) ...
...
Instellen van php8.4-fpm (8.4.23-1~deb13u1) ...
Creating config file /etc/php/8.4/fpm/php.ini with new version
Created symlink '/etc/systemd/system/multi-user.target.wants/php8.4-fpm.service' → '/usr/lib/systemd/system/php8.4-fpm.service'.
Bezig met afhandelen van triggers voor man-db (2.13.1-1) ...
Bezig met afhandelen van triggers voor libc-bin (2.41-12+rpt1+deb13u3) ...
Bezig met afhandelen van triggers voor php8.4-cli (8.4.23-1~deb13u1) ...
Bezig met afhandelen van triggers voor php8.4-fpm (8.4.23-1~deb13u1) ...
RaspAP Install: Enabling lighttpd fastcgi-php-fpm module for php8.4-fpm
Met dependency: fastcgi
Enabling fastcgi-php-fpm: ok
Enabling fastcgi: ok
Run "service lighttpd force-reload" to enable changes
[ ✓ ok ]
RaspAP Install: Enabling PHP for lighttpd
already enabled
Run "service lighttpd force-reload" to enable changes
RaspAP Install: Creating RaspAP directories
Creating /etc/raspap/networking
Changing file ownership of /etc/raspap
RaspAP Install: Checking for existing configs
[ ✓ ok ]
RaspAP Install: Optimize PHP configuration
Enable HttpOnly for session cookies (Recommended)? [Y/n]:
Opnieuw aanvaarden we de standaard instelling met Return.
Php-cgi enabling session.cookie_httponly.
RaspAP Install: Cloning latest files from GitHub
Cloning into '/tmp/raspap-webgui'...
Submodule 'plugins' (https://github.com/RaspAP/plugins) registered for path 'plugins'
Cloning into '/tmp/raspap-webgui/plugins'...
Submodule path 'plugins': checked out '38331709b6c8198c0dbf1c7c85cb52b8ae3ea79a'
Submodule path 'plugins': checked out 'a867897ee51ef982a663c3f76b99b9950b8d4128'
RaspAP Install: Installing application to /var/www/html
Copying primary RaspAP config to /var/www/html/includes/config.php
Removing source files at /tmp/raspap-webgui
[ ✓ ok ]
RaspAP Install: Changing file ownership in web root directory
RaspAP Install: Creating hostapd logging & control scripts
[ ✓ ok ]
RaspAP Install: Creating plugin helper scripts
[ ✓ ok ]
RaspAP Install: Creating lighttpd control scripts
Copying configport.sh to /etc/raspap/lighttpd
Changing file ownership
[ ✓ ok ]
RaspAP Install: Copying lighttpd extra config files
Copying 50-raspap-router.conf to /etc/lighttpd/conf-available
Creating link to /etc/lighttpd/conf-enabled
Existing 50-raspap-router.conf found. Unlinking.
unlink: kan '/etc/lighttpd/conf-enabled/50-raspap-router.conf' niet verwijderen: Bestand of map bestaat niet
Linking 50-raspap-router.conf to /etc/lighttpd/conf-enabled/
[ ✓ ok ]
RaspAP Install: Applying default configuration to installed services
Checking for existence of /etc/dnsmasq.d
Copying config/hostapd.conf to /etc/hostapd/hostapd.conf
Copying config/090_raspap.conf to /etc/dnsmasq.d/090_raspap.conf
Copying config/090_wlan0.conf to /etc/dnsmasq.d/090_wlan0.conf
Copying config/dhcpcd.conf to /etc/dhcpcd.conf
Copying config/defaults.json to /etc/raspap/networking/
Changing file ownership of /etc/raspap/networking/defaults.json
Copying bridged AP config to /etc/systemd/network
RaspAP Install: Unmasking and enabling hostapd service
Removed "/etc/systemd/system/hostapd.service".
Synchronizing state of hostapd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable hostapd
[ ✓ ok ]
RaspAP Install: Configuring networking
Enabling IP forwarding
net.ipv4.ip_forward = 1
Restarting procps (via systemctl): procps.service.
Checking iptables rules
Adding rule: -t nat -A POSTROUTING -j MASQUERADE
Adding rule: -t nat -A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE
Persisting IP tables rules
Enable RaspAP control service (Recommended)? [Y/n]:
Opnieuw volgen we de aanbeveling (Recommended) met Return.
RaspAP Install: Enabling RaspAP daemon
Disable with: sudo systemctl disable raspapd.service
Created symlink /etc/systemd/system/multi-user.target.wants/raspapd.service → /lib/systemd/system/raspapd.service.
RaspAP Install: Enabling RaspAP network activity monitor
Compiling raspap-network-monitor.c to /usr/local/bin/
Copying raspap-network-activity@.service to /lib/systemd/system/
Enabling raspap-network-activity@wlan0.service
Created symlink /etc/systemd/system/multi-user.target.wants/raspap-network-activity@wlan0.service → /lib/systemd/sys
tem/raspap-network-activity@.service.
Starting raspap-network-activity@wlan0.service
Symlinking /dev/shm/net_activity to /var/www/html/app/net_activity
Setting ownership for www-data on /var/www/html/app/net_activity
Network activity monitor enabled
[ ✓ ok ]
RaspAP Install: Configure TCP BBR congestion control
Network performance can be improved by changing TCP congestion control to BBR (Bottleneck Bandwidth and RTT)
Enable TCP BBR congestion control algorithm (Recommended)? [Y/n]:
Nogmaals volgen we de aanbeveling (Recommended) met Return.
Checking kernel support for the TCP BBR algorithm...
TCP BBR option found. Enabling configuration
Loading BBR kernel module
Adding BBR configuration to /etc/sysctl.conf if not present
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
Applying changes
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
TCP BBR successfully enabled
[ ✓ ok ]
RaspAP Install: Configure Ad blocking support
Install Ad blocking and enable list management? [Y/n]: n
Omdat sommige sites bij het blokkeren van reclame, weigeren van te werken of gebrekkig werken, antwoord ik hier n gevolgd door Return.
[ ✓ ok ] (Skipped)
RaspAP Install: Configure OpenVPN support
Install OpenVPN and enable client configuration? [Y/n]: n
Ook op de vraag of we een Virtueel Particulier Netwerk aan te maken, antwoord ik opnieuw n gevolgd door Return.
[ ✓ ok ] (Skipped)
RaspAP Install: Configure RestAPI support
Install and enable RestAPI? [Y/n]: n
Op de vraag of we een RestAPI ondersteuning willen, antwoord ik opnieuw n gevolgd door Return.
span style="color:#fcfcfc;background-color:#232627;">[ ✓ ok ] (Skipped)
RaspAP Install: Configure WireGuard support
Install WireGuard and enable VPN tunnel configuration? [Y/n]: n
Ook WireGuard is een Virtueel Particulier Netwerk, dus opnieuw n.
[ ✓ ok ] (Skipped)
RaspAP Install: Configure VPN provider support
Enable VPN provider client configuration? [Y/n]: n
Als je verbinding wilt maken met een reeds bestaand Virtueel Particulier Netwerk (zoals bijvoorbeeld op het werk), krijg je hier de kans. Ik selecteer opnieuw n.
[ ✓ ok ] (Skipped)
RaspAP Install: Adding raspap.sudoers to /etc/sudoers.d/090_raspap
RaspAP Install: Copying RaspAP debug log control script
RaspAP Install: Copying RaspAP install loader
RaspAP Install: Symlinked wpa_supplicant hooks for multiple wlan interfaces
[ ✓ ok ]
RaspAP Install: Installation completed
Join RaspAP Insiders for early access to exclusive features!
> https://docs.raspap.com/insiders/
> https://github.com/sponsors/RaspAP/
The system needs to be rebooted as a final step. Reboot now? [Y/n]: n
Installation reboot aborted.
Om RaspAP te activeren, moeten we de Raspberry Pi herstarten, maar daar wachten we nog even mee want voor het ogenblik zijn er twee netwerksystemen actief: het standaard NetworkManager systeem en RaspAP. Eerst deactiveren we NetworkManager met de opdracht:
pi@raspberrypi:~ $ sudo systemctl disable NetworkManager
Removed "/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service".
Removed "/etc/systemd/system/multi-user.target.wants/NetworkManager.service".
Removed "/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service".
Nu kunnen we de Raspberry Pi herstarten om RaspAP te activeren.
pi@raspberrypi:~ $ sudo systemctl reboot
Na het herstarten, is er een Wireless Access Point actief met de volgende eigenschappen:
- IP adres: 10.3.141.1
- Gebruikersnaam (Username): admin
- Gebruikerswachtwoord (Password): secret
- DHCP range: 10.3.141.50 — 10.3.141.254
- Netwerknaam (SSID): RaspAP
- Netwerkwachtwoord (Password): ChangeMe
Het spreekt voor zich dat je deze standaard configuratie moet aanpassen om het Wireless Access Point veilig te gebruiken.
RaspAP configureren
Het bedienen en instellen van RaspAP gebeurt via een webpagina. M.a.w. surf naar http://raspberrypi (vervang daarbij raspberrypi door de hostname of het IP adres van jouw Raspberry Pi).
Om het WiFi Access Point te configureren, activeer je het onderdeel Hotspot.
Bij het aanpassen van een WiFi Access Point, pas je best maar één instelling per keer aan.
Klik op de knop en test of de aangepaste instelling werkt.
Soms moet je ook de knop gebruiken en wees geduldig.
Bij het testen zorg je dat het apparaat enkel via het WiFi Access Point het netwerk op kan.
M.a.w. zorg dat er niet toevallig nog een netwerkkabel in het toestel zit waarmee je test.
Ideale testapparaten kunnen enkel via WiFi een netwerkverbinding opzetten, zoals smartphones en tablets.

Op het tabblad Basic kan je de WiFi Access Point naam (SSID) wijzigen. De Wireless Mode bepaald welke Wifi standaard (802.11) gebruikt wordt. De meeste vandaag nog werkende apparaten kunnen werken met 802.11n - 2.4 GHz. De keuzelijst is chronologisch gerangschikt, m.a.w. de onderste WiFi standaard is de meest recente. Niet alle Raspberry Pi's ondersteunen 5GHz WiFi. Gebruik een kanaal (Channnel) die in de omgeving weinig wordt gebruikt, waardoor WiFi stabieler en sneller zal werken.
Op het tabblad Security staan de beveiligingsinstellingen. Het Security type WPA2 wordt door de meeste apparaten ondersteund. Ook het Encryption Type CCMP is het meest gangbare veilige type. Verander echter wel het wachtwoord (PSK), het gebruik van standaard wachtwoorden is één van de grootste veiligheidsproblemen, doen dus. En gebruik veilige lange en sterke wachtwoorden. Naast het tekstvak staat een knop waarmee je wel heel veilige wachtwoorden kunt genereren. Ook handig is de QR code om apparaten snel met het WiFi Access Point te verbinden.
Op het tabblad Advanced staan enkele belangrijke instellingen. Stel eerst en vooral de Country Code in. Elk land heeft namelijk zijn eigen wetgeving i.v.m. zendfrequenties en -vermogen.
Een andere interessante instelling is Bridged AP mode. Indien deze optie niet actief is, gebruik je de Routed AP mode.
Een Routed AP
Bij een Routed Wireless Access Point maak je een draadloos toegangspunt met een secundair netwerk dat volledig door de Raspberry Pi wordt beheerd.
+- RPi -------+
+---+ 192.168.1.2 | +- Laptop ----+
| | WLAN AP +-))) (((-+ WLAN Client |
| | 10.3.141.1 | | 10.3.141.2 |
| +-------------+ +-------------+
+- Router ----+ |
| Firewall | | +- PC#2 ------+
(Internet)---WAN-+ DHCP server +-LAN-+---+ 192.168.1.3 |
| 192.168.1.1 | | +-------------+
+-------------+ |
| +- PC#1 ------+
+---+ 192.168.1.4 |
+-------------+
Door het opzetten van een tweede netwerk door de Raspberry Pi beperk je de mogelijkheden van de apparaten die verbonden zijn met het WiFi Access Point. Meestal kunnen ze enkel op het internet, maar niet op apparaten op het hoofdnetwerk (middelste kolom) zoals andere computers, NAS, mediaservers, enz. Ideaal voor een gastnetwerk.
Een Bridged AP
Bij een Bridged Wireless Access Point maak je een draadloos toegangspunt binnen het bestaande netwerk dat niet door de Raspberry Pi, maar door de router wordt beheerd.
+- RPi -------+
+---+ 192.168.1.2 | +- Laptop ----+
| | WLAN AP +-))) (((-+ WLAN Client |
| | | | 192.168.1.5 |
| +-------------+ +-------------+
+- Router ----+ |
| Firewall | | +- PC#2 ------+
(Internet)---WAN-+ DHCP server +-LAN-+---+ 192.168.1.3 |
| 192.168.1.1 | | +-------------+
+-------------+ |
| +- PC#1 ------+
+---+ 192.168.1.4 |
+-------------+
Daar apparaten verbonden met een Bridged WiFi AP deel in het bestaande netwerk worden opgenomen, kunnen ze met alle andere apparaten in dit netwerk communiceren. Dit is minder veilig maar wel handiger.
Op het tabblad Logging kan je de optie Logfile output activeren om een logboek van het WiFi Access Point bij te houden. Dit is vooral handig bij het opsporen van problemen. Anders laat je dit uitgeschakeld.
In het onderdeel DHCP Server kan je op het tabblad Server settings bij de DHCP options de Lease Time instellen. Indien deze niet is ingevuld wordt standaard 12 uur gebruikt. Elk apparaat moet bij het verbinden met het WiFi Access Point een uniek IP adres krijgen. Als een apparaat 12 uur lang geen verbinding met het WiFi Access Point heeft gehad, wordt het IP adres vrijgegeven voor andere apparaten. Dit voorkomt dat de voorraad unieke IP adressen wordt uitgeput, er zijn immers standaard maar 204 IP adressen beschikbaar. Op drukke plaatsen kan je dit verlagen naar bijvoorbeeld 4 uur (Lease Time en Interval) instellen.
Op het tabblad Client list kan je de lease tijden van de verschillende apparaten die met het WiFi Access Point zijn of waren verbonden.
Bij Data usage kan je verschillende grafieken en tabellen raadplegen met gebruiksinformatie.
In het onderdeel System op het tabblad Basic kan je systeeminformatie raadplegen, maar ook de Raspberry Pi herstarten () en afsluiten ().
In het onderdeel Authentication (admin knop rechts bovenaan) kan je de toegang tot de configuratie webpagina instellen. Ook hier moet je de standaard vervangen door een eigen gebruikersnaam (Username) met bijhorend wachtwoord (New password). Om deze aanpassingen door te voeren, moet je wel het oude wachtwoord (Old password) kennen.
Voor een complete handleiding kan je terecht op de RaspAP Documentation website.
Praktijk opdracht
WebDAV
Nu we de Raspberry Pi als Wireless Access Point gebruiken, kunnen we deze verder uitbreiden met NAS functies. Zo gebruik je één Raspberry Pi voor verschillende taken.
WebDAV (Web Distributed Authoring and Version) is een uitbreiding op HTTP (surfen op het internet) waarmee je mappen kunt delen. Deze techniek wordt gebruikt door DropBox, OneDrive en Google Drive, m.a.w. een moderne techniek.
Aangezien de basis van WebDAV Http is en RaspAP de webserver Lighttpd gebruikt moeten we enkel nog wat extra modlues installeren voor WebDAV:
pi@raspberrypi:~ $ sudo apt install lighttpd-mod-webdav apache2-utils
[sudo] wachtwoord voor pi:
Installeren:
apache2-utils lighttpd-mod-webdav
Installeren van vereisten:
libapr1t64 libaprutil1t64
Samenvatting:
Opwaarderen: 0, Installeren: 4, Verwijderen: 0, Niet opwaarderen: 0
Downloadgrootte: 426 kB
Benodigde ruimte: 1.747 kB / 6.319 MB beschikbaar
Doorgaan? [J/n]
Ophalen:1 http://deb.debian.org/debian trixie/main arm64 libapr1t64 arm64 1.7.5-1 [97,1 kB]
Ophalen:2 http://deb.debian.org/debian trixie/main arm64 libaprutil1t64 arm64 1.6.3-3+b1 [86,2 kB]
Ophalen:3 http://deb.debian.org/debian trixie/main arm64 apache2-utils arm64 2.4.68-1~deb13u1 [217 kB]
Ophalen:4 http://deb.debian.org/debian trixie/main arm64 lighttpd-mod-webdav arm64 1.4.79-2 [25,7 kB]
426 kB opgehaald in 0s (5.599 kB/s)
Voorheen niet geselecteerd pakket libapr1t64:arm64 wordt geselecteerd.
(Database wordt ingelezen ... 142720 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../libapr1t64_1.7.5-1_arm64.deb wordt voorbereid...
Bezig met uitpakken van libapr1t64:arm64 (1.7.5-1) ...
Voorheen niet geselecteerd pakket libaprutil1t64:arm64 wordt geselecteerd.
Uitpakken van .../libaprutil1t64_1.6.3-3+b1_arm64.deb wordt voorbereid...
Bezig met uitpakken van libaprutil1t64:arm64 (1.6.3-3+b1) ...
Voorheen niet geselecteerd pakket apache2-utils wordt geselecteerd.
Uitpakken van .../apache2-utils_2.4.68-1~deb13u1_arm64.deb wordt voorbereid...
Bezig met uitpakken van apache2-utils (2.4.68-1~deb13u1) ...
Voorheen niet geselecteerd pakket lighttpd-mod-webdav wordt geselecteerd.
Uitpakken van .../lighttpd-mod-webdav_1.4.79-2_arm64.deb wordt voorbereid...
Bezig met uitpakken van lighttpd-mod-webdav (1.4.79-2) ...
Instellen van lighttpd-mod-webdav (1.4.79-2) ...
Instellen van libapr1t64:arm64 (1.7.5-1) ...
Instellen van libaprutil1t64:arm64 (1.6.3-3+b1) ...
Instellen van apache2-utils (2.4.68-1~deb13u1) ...
Bezig met afhandelen van triggers voor man-db (2.13.1-1) ...
Bezig met afhandelen van triggers voor libc-bin (2.41-12+rpt1+deb13u3) ...
De voor WebDAV noodzakelijke uitbreidingen (modules) activeren we met de opdrachten:
pi@raspberrypi:~ $sudo lighty-enable-mod authEnabling auth: ok Run "service lighttpd force-reload" to enable changes pi@raspberrypi:~ $sudo lighty-enable-mod webdavEnabling webdav: ok Run "service lighttpd force-reload" to enable changes
Een WebDAV map aanmaken
Maak een map aan met:
pi@raspberrypi:~ $ sudo mkdir /var/www/webdav
In deze map kan je later via WebDAV mappen en bestanden aanmaken en beheren. Deze map kan je vanzelfsprekend aan een USB schijf koppelen, waardoor je meer opslagruimte krijgt en de gegevens (bestanden) gescheiden zijn van het systeem (Raspberry Pi OS), wat een stuk veiliger is.
We geven WebDAV-gebruikers rechten waardoor ze bestanden kunnen openen en kopiëren (lees- of read rechten), mappen en bestanden maken en plaatsen (schrijf- of write rechten) en mappen openen (uitvoer- of execute rechten). Dit doen we door de WebDAV map toe te kennen aan de gebruiker www-data (de Lighttpd gebruiker):
pi@raspberrypi:~ $ sudo chown -R www-data:www-data /var/www/webdav/
De Lighttpd webserver configuratie aanpassen
De toegang tot de WebDAV map stellen we in in het 10-webdav.conf configuratiebestand:
pi@raspberrypi:~ $ sudo nano /etc/lighttpd/conf-enabled/10-webdav.conf
Voeg achteraan het WebDAV configuratiebestand deze regels toe:
$HTTP["url"] =~ "^/webdav(?:/|$)" {
alias.url = ("/webdav" => "/var/www/webdav")
dir-listing.activate = "enable"
webdav.activate = "enable"
#webdav.is-readonly = "disable" # (default)
}
Daar de Lighttpd webserver ook voor RaspAP wordt gebruikt, moeten we de configuratie daarvan ook aanpassen zodat zowel WebDAV (via de URL map /webdav) als RaspAP (andere URL mappen) toegankelijk zijn:
pi@raspberrypi:~ $ sudo nano /etc/lighttpd/conf-enabled/50-raspap-router.conf
Om te zorgen dat RaspAP de URL map /webdav negeert, pas je de volgende regel aan, van:
$HTTP["url"] =~ "^/(?!(dist|app|ajax|config|rootCA\.pem)).*" {
naar
$HTTP["url"] =~ "^/(?!(dist|app|ajax|config|rootCA\.pem|webdav)).*" {
Om de WebDAV map te testen, brengen we het systeem op de hoogte van de aangepaste configuratiebestanden en herstarten we de Lighttpd webserver:
pi@raspberrypi:~ $ sudo systemctl restart lighttpd
Test de webDAV map door er naar te surfen (http://raspberrypi/webdav/).
Authentificatie
Door de toegang te beperken via gebruikers, kan je WebDAV mappen in het bestandssysteem van macOS, Windows en Linux opnemen. Voor Windows moet het wachtwoord bij het verzenden versleuteld zijn waardoor het niet afgeluisterd kan worden. Nog beter is gebruik te maken van HTTPS, waarmee alle gegevens die verzonden worden versleuteld worden (maar dit gaat voor deze cursus te ver).
Eerst voegen we een gebruiker (pi) toe aan wachtwoordenbestand:
pi@raspberrypi:~ $ sudo htdigest -c /etc/lighttpd/users.password webdav pi
Adding password for pi in realm webdav.
New password:
Re-type new password:
Als je nog een gebruiker wilt toevoegen, moet je de -c optie weglaten, deze dient namelijk om een nieuw wachtwoordbestand te creëren.
Pas de eigenaar van dit wachtwoordbestand aan, zodat deze door de Lighttpd webserver gelezen kan worden:
pi@raspberrypi:~ $sudo chown root:www-data /etc/lighttpd/users.passwordpi@raspberrypi:~ $sudo chmod 640 /etc/lighttpd/users.password
Verder passen we de WebDAV configuratie in het 10-webdav.conf configuratiebestand als volgt aan:
pi@raspberrypi:~ $ sudo nano /etc/lighttpd/conf-enabled/10-webdav.conf
Eerst zorgen we dat Lighttpd webserver wachtwoordbestanden kan lezen, door de module mod_authn_file te activeren, pas daarvoor de volgende regel aan van:
server.modules += ( "mod_webdav" )
naar
server.modules += ( "mod_webdav", "mod_authn_file" )
Daarna voeg je de authentificatieconfiguratie toe met de volgende aanpassingen (toegevoegde regels staan vet).
$HTTP["url"] =~ "^/webdav(?:/|$)" {
alias.url = ("/webdav" => "/var/www/webdav")
dir-listing.activate = "enable"
webdav.activate = "enable"
#webdav.is-readonly = "disable" # (default)
auth.backend = "htdigest"
}
auth.backend.htdigest.userfile = "/etc/lighttpd/users.password"
auth.require = ( "" =>
(
"method" => "digest",
"realm" => "webdav",
"require" => "valid-user"
)
)
En herstarten we de Lighttpd webserver:
pi@raspberrypi:~ $ sudo systemctl restart lighttpd
Tijd om te testen, surf daarvoor naar de WebDAV map. Je krijgt daarbij een dialoogvenster om je aan te melden.
In Windows integreren
- Start Windows Verkenner.
- Blader naar Deze pc.
- Activeer bovenaan het lint Meer informatie (knop met drie punten).
- Klik op de opdracht Netwerkverbinding maken.
- Geef in het tekstvak Map de URL van de WebDAV map in.
- Activeer indien gewenst de optie Opnieuw verbinding maken bij aanmelden.
- Om de WebDAV gebruiker en zijn wachtwoord te kunnen ingeven, activeer je de optie Verbinding maken met andere referenties.

- Klik op de knop Voltooien.
- Geef de WebDAV gebruiker en het bijhorende wachtwoord in.
Als je de gebruiker en het bijhorende wachtwoord op de Windows computer wilt opslaan, activeer je de optie Mijn referenties onthouden (minder veilig, maar gebruiksvriendelijker).

- Klik OK.
- De WebDAV map wordt in Windows verkenner geopend. Indien dit mislukt, probeer het dan nogmaals, op sommige Windows systemen lukt het pas de tweede poging.
Test de werking door een map aan te maken en in de nieuwe map een bestand aan te maken. Op de Raspberry Pi bekijk je de inhoud van de WebDAV map met:
pi@raspberrypi:~ $ find /var/www/webdav/
/var/www/webdav/
/var/www/webdav/Nieuwe map
/var/www/webdav/Nieuwe map/Nieuw - Tekstdocument.txt
Een netwerkverbinding kan je in het onderdeel Deze pc van Windows verkenner verbreken (verwijderen) door er rechts op te klikken en de opdracht Meer opties weergeven en daarna de opdracht Verbinding verbreken uit te voeren.
Om opgeslagen wachtwoorden te verwijderen, start je via het Uitvoeren dialoogvenster (Windows+r) de opdracht rundll32.exe keymgr.dll,KRShowKeyMgr het dialoogvenster op waarmee je gebruikersnamen en bijhorende wachtwoorden kunt verwijderen.
TOR
De onion-routing-technologie van Tor is in 1995 ontwikkeld door het U.S. Naval Research Labatory, een onderzoekscentrum van de Amerikaanse marine. Op basis daarvan ontwikkelt het Tor-project de gelijknamige opensource-software om anoniem te internetten. Naast de software is er ook het Tor-netwerk, dat bestaat uit onion-routers: servers die door vrijwilligers gedraaid worden. Als je via het Tor-netwerk surft, volgt je netwerkverkeer een willekeurig pad tussen die onion-routers. Daardoor ziet de website die je bezoekt een willekeurig IP-adres.
Elke tien minuten wordt het pad dat je netwerkverkeer in Tor volgt veranderd, waardoor het voor de website die je bezoekt lijkt alsof je plots een andere bezoeker (van een IP-adres van de andere kant van de wereld) bent. Daardoor is het in de praktijk heel moeilijk voor buitenstaanders om je te traceren. Bovendien is het verkeer tussen elke onion-router versleuteld, waardoor elke Tor-server slechts een minimale hoeveelheid informatie over je kent.
- Tor kan je enkel gebruiken op een Routed AP, zorg dat RaspAP NIET werkt als Bridged AP.
- Tor installeren:
- Installeer tor met:
pi@raspberrypi:~ $
sudo apt install tor
[sudo] wachtwoord voor pi:
Installeren:
tor
Installeren van vereisten:
libtorsocks tor-geoipdb torsocks
Voorgestelde pakketten:
mixmaster torbrowser-launcher socat apparmor-utils nyx obfs4proxy
Samenvatting:
Opwaarderen: 0, Installeren: 4, Verwijderen: 0, Niet opwaarderen: 0
Downloadgrootte: 4.853 kB
Benodigde ruimte: 32,7 MB / 6.317 MB beschikbaar
Doorgaan? [J/n]
Ophalen:1 http://deb.debian.org/debian trixie/main arm64 libtorsocks arm64 2.5.0-1+deb13u1 [67,3 kB]
Ophalen:2 http://deb.debian.org/debian trixie/main arm64 tor arm64 0.4.9.11-0+deb13u1 [2.006 kB]
Ophalen:3 http://deb.debian.org/debian trixie/main arm64 tor-geoipdb all 0.4.9.11-0+deb13u1 [2.752 kB]
Ophalen:4 http://deb.debian.org/debian trixie/main arm64 torsocks all 2.5.0-1+deb13u1 [27,8 kB]
4.853 kB opgehaald in 0s (20,1 MB/s)
Voorheen niet geselecteerd pakket libtorsocks:arm64 wordt geselecteerd.
(Database wordt ingelezen ... 142777 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../libtorsocks_2.5.0-1+deb13u1_arm64.deb wordt voorbereid...
Bezig met uitpakken van libtorsocks:arm64 (2.5.0-1+deb13u1) ...
Voorheen niet geselecteerd pakket tor wordt geselecteerd.
Uitpakken van .../tor_0.4.9.11-0+deb13u1_arm64.deb wordt voorbereid...
Bezig met uitpakken van tor (0.4.9.11-0+deb13u1) ...
Voorheen niet geselecteerd pakket tor-geoipdb wordt geselecteerd.
Uitpakken van .../tor-geoipdb_0.4.9.11-0+deb13u1_all.deb wordt voorbereid...
Bezig met uitpakken van tor-geoipdb (0.4.9.11-0+deb13u1) ...
Voorheen niet geselecteerd pakket torsocks wordt geselecteerd.
Uitpakken van .../torsocks_2.5.0-1+deb13u1_all.deb wordt voorbereid...
Bezig met uitpakken van torsocks (2.5.0-1+deb13u1) ...
Instellen van tor (0.4.9.11-0+deb13u1) ...
Something or somebody made /var/lib/tor disappear.
Creating one for you again.
Something or somebody made /var/log/tor disappear.
Creating one for you again.
Created symlink '/etc/systemd/system/multi-user.target.wants/tor.service' → '/usr/lib/systemd/system/tor.service'.
Instellen van libtorsocks:arm64 (2.5.0-1+deb13u1) ...
Instellen van tor-geoipdb (0.4.9.11-0+deb13u1) ...
Instellen van torsocks (2.5.0-1+deb13u1) ...
Bezig met afhandelen van triggers voor man-db (2.13.1-1) ...
Bezig met afhandelen van triggers voor libc-bin (2.41-12+rpt1+deb13u3) ... - Open als systeembeheerder het configuratiebestand /etc/tor/torrc met een teksteditor:
pi@raspberrypi:~ $
sudo nano /etc/tor/torrc - Activeer de volgende regel (hekje voor de regel verwijderen):
Log notice file /var/log/tor/notices.log
- Voeg de volgende regels toe:
VirtualAddrNetwork 10.3.141.1/10
Vervang daarbij 10.3.141.1 door het statische IP adres van je wifi-interface.
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 10.3.141.1:9040
TransListenAddress 10.3.141.1
DNSPort 10.3.141.1:53
DNSListenAddress 10.3.141.1 - Sla de aanpassingen op en verlaat nano.
- Installeer tor met:
- De verbindingen op het wifi-netwerk gaan nu rechtstreeks via de ethernetinterface, dit moet echter eerst via de Tor-software passeren:
- Laat on eerst kijken welke NAT-regels de firewall gebruikt om dit te mogelijk te maken:
pi@raspberrypi:~ $
sudo iptables -t nat -LChain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- anywhere anywhere MASQUERADE all -- 192.168.50.0/24 !192.168.50.0/24 - Met de volgende opdracht maken we een reserevekopie van de firewall-regels:
pi@raspberrypi:~ $
sudo iptables-save | sudo tee RaspAP.rules
# Generated by iptables-save v1.8.11 (nf_tables) on Wed Jul 22 19:25:44 2026
*nat
:PREROUTING ACCEPT [907:60898]
:INPUT ACCEPT [905:60451]
:OUTPUT ACCEPT [45:5374]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -j MASQUERADE
-A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE
COMMIT
# Completed on Wed Jul 22 19:25:44 2026 - We verwijderen de oude NAT-regels:
pi@raspberrypi:~ $
sudo netfilter-persistent flushrun-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables flush run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables flush - En laten de netwerkpakketten eerst via de Tor-software passeren, met de volgende nieuwe firewall opdrachten:
pi@raspberrypi:~ $
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53pi@raspberrypi:~ $sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040 - Sla de NAT-configuratie voor RaspAP op:
pi@raspberrypi:~ $
sudo iptables-save | sudo tee /etc/iptables/rules.v4
# Generated by iptables-save v1.8.11 (nf_tables) on Wed Jul 22 19:28:58 2026
*nat
:PREROUTING ACCEPT [2:576]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i wlan0 -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING -i wlan0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 9040
COMMIT
# Completed on Wed Jul 22 19:28:58 2026
- Laat on eerst kijken welke NAT-regels de firewall gebruikt om dit te mogelijk te maken:
- Nu maken we nog een logbestand aan voor Tor:
pi@raspberrypi:~ $
sudo touch /var/log/tor/notices.logpi@raspberrypi:~ $sudo chown debian-tor /var/log/tor/notices.logpi@raspberrypi:~ $sudo chmod 644 /var/log/tor/notices.log - Om er voor te zorgen dat Tor pas opstart na RaspAP passen we de automatische opstartprocedure aan:
pi@raspberrypi:~ $
En passen we de regel (instelling) aan waarop tor moet wachten om op te starten, van:sudo nano /lib/systemd/system/tor@default.serviceAfter=network-online.target nss-lookup.target
naarAfter=network-online.target nss-lookup.target raspapd.service
Sla de aanpassingen op en verlaat nano. - Herstart Tor:
pi@raspberrypi:~ $
En controleer of je geen foutmeldingen ziet:sudo systemctl restart tor.servicepi@raspberrypi:~ $
sudo systemctl status tor.service --no-pager
● tor.service - Anonymizing overlay network for TCP (multi-instance-master)
Loaded: loaded (/usr/lib/systemd/system/tor.service; enabled; preset: enabled)
Active: active (exited) since Wed 2026-07-22 19:32:39 CEST; 24s ago
Invocation: 7fd601888e69405e8d872bd20148ed8f
Process: 6698 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 6698 (code=exited, status=0/SUCCESS)
CPU: 9ms
jul 22 19:32:39 raspberrypi systemd[1]: Starting tor.service - Anonymizing overlay network for TCP (multi-in…ter)...
jul 22 19:32:39 raspberrypi systemd[1]: Finished tor.service - Anonymizing overlay network for TCP (multi-in…aster).
Hint: Some lines were ellipsized, use -l to show in full.- Vervolgens laat je Tor automatisch mee opstarten:
pi@raspberrypi:~ $
sudo systemctl enable tor.serviceSynchronizing state of tor.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable tor
- Als je nu op je computer, smartphone of tablet verbindt met de SSID van je Raspberry Pi, surf je automatisch via het Tor-netwerk.
Om te controleren of je echt via Tor surft, bezoek je in je browser de webpagina https://check.torproject.org.
Indien de Tor-verbinding niet werkt, krijg je een ui met een rood kruis erover te zien en de melding dat je geen gebruik maakt van Tor.
Kijk dan met het de opdracht
less /var/log/tor/notices.logof er in het logbestand informatie staat die je helpt om het probleem te lokaliseren. Druk op de q-toets om de less opdracht af te breken. - Werkt de Tor-verbinding, dan krijg je op de testpagina van Tor een interface te zien en gelukwensen dat je browser geconfigureerd is om Tor te gebruiken.
Het IP-adres dat je daar te zien krijgt, verandert bovendien elke tien minuten omdat de Tor-software op je Pi dan een ander pad gebruikt en de laatste onion-router in dat pad dus een willekeurige server is.
Je zult merken dat surfen via Tor heel wat trager gaat, maar je hoeft dan ook niet altijd via Tor te surfen.
Op momenten dat je je anonimiteit niet zo belangrijk vindt, schakel je eenvoudigweg over naar je normale draadloze toegangspunt.

- Als je Tor wilt gebruiken om regiobeperkingen te omzeilen, dan kan dat heel eenvoudig.
Open het configuratiebestand en voeg de volgende regels toe:
StrictExitNodes 1 ExitNodes {nl}Dit in de veronderstelling dat je enkel via exit-nodes in Nederland wilt surfen. Je kunt ook meerdere landen voor de exit-nodes toestaan, bijvoorbeeld met ExitNodes {nl},{de}. Sla het bestand op en herstart Tor. Verifieer op een website zoals iplocation.com dat je IP-adres tot het gekozen land behoort. - Voordat je nu enthousiast allerlei schimmige websites gaat bezoeken in de veronderstelling dat niemand je meer kan traceren, moet je enkele voorzorgsmaatregelen nemen. Op https://coveryourtracks.eff.org/ kun je zien hoe traceerbaar je via je browser bent. Schakel bijvoorbeeld JavaScript van je browser uit als je via Tor surft, want JavaScript biedt heel wat gluiperige manieren die anonimiteit in gevaar brengen. Cookies vermijd je het best ook tijdens je anonieme surftochten. Open ook geen doc- en pdf-bestanden vanuit de browser terwijl je via Tor surft, want daar zitten mogelijks dubieuze scripts in.
- Een andere fout die je niet mag maken is eerst op een account (van bijvoorbeeld een webdienst) inloggen zonder je Tor-verbinding en daarna op dezelfde account inloggen via Tor. Als je de dienst zelf niet vertrouwt, weet die nu immers dat je Tor gebruikt. Je echte IP-adres kan opgezocht worden van je eerste sessie toen je nog geen Tor gebruikte. Wil je echt volledig anoniem blijven, maak dan een speciaal account aan dat je enkel via Tor gebruikt, zodat geen enkele link met je identiteit te vinden is.
- Tot slot: surfen via Tor betekent niet dat je niets meer hoeft te versleutelen. Herinner je immers hoe het Tor-netwerk werkt: het netwerkverkeer van jou naar de eerste onion-server is versleuteld, evenals het verkeer tussen onion-servers onderling. Het netwerkverkeer tussen de laatste server en de website die je bezoekt wordt echter niet door Tor versleuteld. Gebruik daarom altijd https voor gevoelige websites, zodat niemand je activiteiten op de websites kan afluisteren. En gebruik encryptie als je anoniem wilt e-mailen, chatten of videobellen via Tor.