Wireless Access Point

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.32 GHz  Access Point: F0:4D:D4:0A:B6:D7   
          Bit Rate=24 Mb/s   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=65/70  Signal level=-45 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
IN-USE  BSSID              SSID                       MODE   CHAN  RATE        SIGNAL  BARS  SECURITY    
        F0:4D:D4:0A:B6:D6  Proximus-Home-123456       Infra  6     270 Mbit/s  100     ▂▄▆█  WPA2        
*       F0:4D:D4:0A:B6:D7  Proximus-Home-123456-5GHz  Infra  64    540 Mbit/s  92      ▂▄▆█  WPA2        
        F2:4D:D4:0A:B6:D0  --                         Infra  64    540 Mbit/s  90      ▂▄▆█  WPA2        
        20:B8:2B:12:B7:A6  Proximus-Home-456789       Infra  6     270 Mbit/s  80      ▂▄▆_  WPA2        
        E8:E8:B7:F9:BD:3D  SMA1930145860              Infra  4     65 Mbit/s   70      ▂▄▆_  WPA1 WPA2   
        F4:05:95:EA:7B:31  Proximus-Home-567890       Infra  1     270 Mbit/s  42      ▂▄__  WPA2        
        F8:53:29:A5:3A:A8  SUN2000-HV2345678901       Infra  11    65 Mbit/s   42      ▂▄__  WPA2        
        F4:05:95:FE:56:91  Proximus-Home-456789       Infra  1     270 Mbit/s  40      ▂▄__  WPA2        
        20:B8:2B:12:B7:A7  Proximus-Home-456789       Infra  64    540 Mbit/s  40      ▂▄__  WPA2        
        22:B8:2B:12:B7:A0  --                         Infra  64    540 Mbit/s  40      ▂▄__  WPA2        
        D8:10:9F:E0:7E:9D  SUN2000-BT2345678901       Infra  1     65 Mbit/s   39      ▂▄__  WPA2        
        04:E3:1A:CD:07:66  Proximus-Home-789012       Infra  1     270 Mbit/s  37      ▂▄__  WPA2        
        38:43:7D:B6:C9:94  telenet-23456              Infra  11    130 Mbit/s  37      ▂▄__  WPA2        
        C8:D1:2A:2D:70:AC  TelenetThuis               Infra  1     130 Mbit/s  35      ▂▄__  WPA2        
        FA:8F:CA:9A:C8:77  --                         Infra  1     65 Mbit/s   27      ▂___  --          
        5A:2F:F7:F7:6C:A7  Proximus Public Wi-Fi      Infra  11    130 Mbit/s  27      ▂___  WPA2 802.1X 
        38:43:7D:98:6D:C8  telenet-4567890            Infra  40    405 Mbit/s  25      ▂___  WPA2        
        58:2F:F7:F7:6C:A6  Proximus-Home-6789         Infra  11    130 Mbit/s  24      ▂___  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 expiratie 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.

Access Point software installeren

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
Geraakt:1 http://deb.debian.org/debian bookworm InRelease
Ophalen:2 http://deb.debian.org/debian-security bookworm-security InRelease [48,0 kB]
Geraakt:3 http://deb.debian.org/debian bookworm-updates InRelease
Ophalen:4 http://archive.raspberrypi.com/debian bookworm InRelease [23,6 kB]
Ophalen:5 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages [338 kB]
Ophalen:6 http://archive.raspberrypi.com/debian bookworm/main armhf Packages [346 kB]
756 kB opgehaald in 2s (457 kB/s)                        
Pakketlijsten worden ingelezen... Klaar
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Opwaardering wordt doorgerekend... Klaar
De volgende pakketten zullen opgewaardeerd worden:
  lxplug-updater piwiz wf-panel-pi
3 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 585 kB aan archieven opgehaald worden.
Na deze bewerking zal er 1.024 B extra schijfruimte gebruikt worden.
Ophalen:1 http://archive.raspberrypi.com/debian bookworm/main arm64 lxplug-updater arm64 0.18 [14,4 kB]
Ophalen:2 http://archive.raspberrypi.com/debian bookworm/main arm64 piwiz arm64 0.66 [161 kB]
Ophalen:3 http://archive.raspberrypi.com/debian bookworm/main arm64 wf-panel-pi arm64 0.53 [409 kB]
585 kB opgehaald in 1s (533 kB/s)    
apt-listchanges: De changelogs worden ingelezen...
(Database wordt ingelezen ... 145138 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../lxplug-updater_0.18_arm64.deb wordt voorbereid...
Bezig met uitpakken van lxplug-updater (0.18) over (0.17) ...
Uitpakken van .../archives/piwiz_0.66_arm64.deb wordt voorbereid...
Bezig met uitpakken van piwiz (0.66) over (0.65) ...
Uitpakken van .../wf-panel-pi_0.53_arm64.deb wordt voorbereid...
Bezig met uitpakken van wf-panel-pi (0.53) over (0.52) ...
Instellen van piwiz (0.66) ...
Instellen van wf-panel-pi (0.53) ...
Instellen van lxplug-updater (0.18) ...

Om er zeker van te zijn dat alle updates daadwerkelijk actief zijn, herstart je de Raspberry Pi:

pi@raspberrypi:~ $ sudo reboot

Broadcast message from root@raspberrypi on pts/1 (Fri 2023-11-10 18:17:00 CET):

The system will reboot now!

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


 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.0-beta

The Quick Installer will guide you through a few easy steps


RaspAP Install: Configure installation
Detected OS: Debian GNU/Linux 12 (bookworm) 64-bit
Using GitHub repository: RaspAP/raspap-webgui 3.0-beta branch
Configuration directory: /etc/raspap
lighttpd root: /var/www/html? [Y/n]:

LightHttp is 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 bookworm InRelease
Geraakt:2 http://deb.debian.org/debian-security bookworm-security InRelease
Geraakt:3 http://deb.debian.org/debian bookworm-updates InRelease
Geraakt:4 http://archive.raspberrypi.com/debian bookworm 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.2-cgi will be installed from the main deb sources list
dhcpcd5 and iw 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.39.2-1.1).
iw is reeds de nieuwste versie (5.19-1).
iw staat ingesteld op handmatig geïnstalleerd.
De volgende pakketten zijn automatisch geïnstalleerd en zijn niet langer nodig:
  agnostics bluez dos2unix fio fonts-piboto grim gtk2-engines-clearlookspix
  gtk2-engines-pixbuf gtk2-engines-pixflat gui-pkinst ibverbs-providers
  libaio1 libaml0 libatkmm-1.6-1v5 libboost-iostreams1.74.0 libcairomm-1.0-1v5
  libcupsimage2 libdaxctl1 libdbusmenu-glib4 libdbusmenu-gtk3-4 libgfapi0
  libgfrpc0 libgfxdr0 libglibmm-2.4-1v5 libglusterfs0 libgtkmm-3.0-1v5
  libibverbs1 libliftoff-rpi libnbd0 libndctl6 libneatvnc0 libnma-common
  libnma0 libpangomm-1.4-1v5 libpmem1 libpmemblk1 librados2 librbd1 librdmacm1
  libseat1 libsigc++-2.0-0v5 libwf-config1 libwf-utils0 libwlroots11
  libxcb-res0 lp-connection-editor lxplug-bluetooth lxplug-cputemp
  lxplug-ejecter lxplug-magnifier lxplug-menu lxplug-netman lxplug-network
  lxplug-ptbatt lxplug-updater lxplug-volumepulse mate-polkit-bin pi-greeter
  pi-language-support pi-printer-support pipanel pishutdown pixflat-icons
  printer-driver-escpr pulseaudio-module-bluetooth qt5-gtk2-platformtheme
  qt5-style-plugin-cleanlooks qt5-style-plugin-motif
  qt5-style-plugin-plastique qt5-style-plugins qt5ct rp-bookshelf
  rpd-wallpaper wayfire wayvnc wf-panel-pi xsettingsd xwayland
Gebruik 'sudo apt autoremove' om ze te verwijderen.
De volgende extra pakketten zullen geïnstalleerd worden:
  dhcpcd dhcpcd-base iptables libip6tc2 libjq1 libonig5 lighttpd-mod-deflate
  lighttpd-mod-openssl netfilter-persistent php-common php8.2-cli
  php8.2-common php8.2-opcache php8.2-readline spawn-fcgi
Voorgestelde pakketten:
  dhcpcd-gtk resolvconf | openresolv | systemd-resolved resolvconf firewalld
  php-fpm apache2-utils lighttpd-doc lighttpd-mod-webdav lighttpd-modules-dbi
  lighttpd-modules-lua php-pear vnstati
De volgende pakketten zullen VERWIJDERD worden:
  pi-bluetooth piwiz raspberrypi-sys-mods raspberrypi-ui-mods rpd-plym-splash
  userconf-pi
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  dhcpcd dhcpcd-base dhcpcd5 dnsmasq hostapd iptables iptables-persistent
  isoquery jq libip6tc2 libjq1 libonig5 lighttpd lighttpd-mod-deflate
  lighttpd-mod-openssl netfilter-persistent php-common php8.2-cgi php8.2-cli
  php8.2-common php8.2-opcache php8.2-readline qrencode spawn-fcgi vnstat
0 opgewaardeerd, 25 nieuw geïnstalleerd, 6 te verwijderen en 0 niet opgewaardeerd.
Er moeten 6.595 kB aan archieven opgehaald worden.
Na deze bewerking zal er 40,0 MB extra schijfruimte gebruikt worden.
Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 hostapd arm64 2:2.10-12 [797 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main arm64 libip6tc2 arm64 1.8.9-2 [18,7 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main arm64 iptables arm64 1.8.9-2 [352 kB]
...
Ophalen:23 http://deb.debian.org/debian bookworm/main arm64 php8.2-cgi arm64 8.2.7-1~deb12u1 [1.521 kB]
Ophalen:24 http://deb.debian.org/debian bookworm/main arm64 qrencode arm64 4.1.1-1 [41,9 kB]
Ophalen:25 http://deb.debian.org/debian bookworm/main arm64 spawn-fcgi arm64 1.6.4-2 [14,1 kB]
Voorconfigureren van pakketten ...
6.595 kB opgehaald in 1s (11,2 MB/s)
(Database wordt ingelezen ... 145138 bestanden en mappen momenteel geïnstalleerd.)
pi-bluetooth (0.1.19) wordt verwijderd ...
piwiz (0.66) wordt verwijderd ...
rpd-plym-splash (0.36) wordt verwijderd ...
...
update-initramfs: Generating /boot/initrd.img-6.1.0-rpi4-rpi-2712
Bezig met afhandelen van triggers voor php8.2-cli (8.2.7-1~deb12u1) ...
Bezig met afhandelen van triggers voor php8.2-cgi (8.2.7-1~deb12u1) ...
[ ✓ ok ] 
RaspAP Install: Enabling PHP for lighttpd
Met dependency: fastcgi
Enabling fastcgi-php: ok
Enabling fastcgi: ok
Run "service lighttpd force-reload" to enable changes
RaspAP Install: Creating RaspAP directories
Creating /etc/raspap/networking
Adding /etc/dhcpcd.conf as base configuration
Changing file ownership of /etc/raspap
RaspAP Install: Backing up existing configs to /etc/raspap/backups
[ ✓ 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'...
[ ✓ ok ] 
RaspAP Install: Changing file ownership in web root directory
RaspAP Install: Creating hostapd logging & control 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
Changing file ownership of /etc/raspap/networking/defaults.json
Checking for existence of /etc/dnsmasq.d
Copying bridged AP config to /etc/systemd/network
Copying primary RaspAP config to includes/config.php
[ ✓ 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.
[ ✓ ok ] 
RaspAP Install: Configure ad blocking
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 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 (Beta)
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, let op de Beta opmerking. Ik selecteer opnieuw n.

[ ✓ ok ] (Skipped)
RaspAP Install: Adding raspap.sudoers to /etc/sudoers.d/090_raspap
RaspAP Install: Creating RaspAP debug log control script
RaspAP Install: Symlinked wpa_supplicant hooks for multiple wlan interfaces
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: 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

Daar wachten we nog even mee want voor het ogenblik zijn er twee netwerksystemen actief: het standaard NetworkManager systeem en RaspAP. We antwoorden dus n en drukken Enter. Eerst deactiveren we NetworkManager met de opdracht:

pi@raspberrypi:~ $ sudo systemctl disable NetworkManager
Removed "/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service".
Removed "/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service".
Removed "/etc/systemd/system/multi-user.target.wants/NetworkManager.service".

Nu kunnen we de Raspberry Pi herstarten om RaspAP te activeren.

pi@raspberrypi:~ $ sudo reboot

Broadcast message from root@raspberrypi on pts/1 (Fri 2023-11-10 19:11:20 CET):

The system will reboot now!

Na het herstarten, is er een Wireless Access Point actief met de volgende eigenschappen:

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.local (vervang daarbij raspberrypi.local door de hostname of het IP adres van jouw Raspberry Pi).

Dashboard

Om het WiFi Access Point te configureren, activeer je het onderdeel Hotspot.

Hotspot Basic

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.
Smartphone

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.

Hotspot Security

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.

Hotspot Advanced

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.

Logging

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.

Auithentication

In het onderdeel Authentication 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.

In het onderdeel System op het tabblad Basic kan je systeeminformatie raadplegen, maar ook de Raspberry Pi herstarten () en afsluiten ().

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
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende pakketten zijn automatisch geïnstalleerd en zijn niet langer nodig:
  agnostics bluez dos2unix fio fonts-piboto grim gtk2-engines-clearlookspix gtk2-engines-pixbuf gtk2-engines-pixflat gui-pkinst
  ibverbs-providers libaio1 libaml0 libatkmm-1.6-1v5 libboost-iostreams1.74.0 libcairomm-1.0-1v5 libcupsimage2 libdaxctl1
  libdbusmenu-glib4 libdbusmenu-gtk3-4 libgfapi0 libgfrpc0 libgfxdr0 libglibmm-2.4-1v5 libglusterfs0 libgtkmm-3.0-1v5 libibverbs1
  libliftoff-rpi libnbd0 libndctl6 libneatvnc0 libnma-common libnma0 libpangomm-1.4-1v5 libpmem1 libpmemblk1 librados2 librbd1
  librdmacm1 libseat1 libsigc++-2.0-0v5 libwf-config1 libwf-utils0 libwlroots11 libxcb-res0 lp-connection-editor lxplug-bluetooth
  lxplug-cputemp lxplug-ejecter lxplug-magnifier lxplug-menu lxplug-netman lxplug-network lxplug-ptbatt lxplug-updater
  lxplug-volumepulse mate-polkit-bin pi-greeter pi-language-support pi-printer-support pipanel pishutdown pixflat-icons
  printer-driver-escpr pulseaudio-module-bluetooth qt5-gtk2-platformtheme qt5-style-plugin-cleanlooks qt5-style-plugin-motif
  qt5-style-plugin-plastique qt5-style-plugins qt5ct rp-bookshelf rpd-wallpaper wayfire wayvnc wf-panel-pi xsettingsd xwayland
Gebruik 'sudo apt autoremove' om ze te verwijderen.
De volgende extra pakketten zullen geïnstalleerd worden:
  libapr1 libaprutil1
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  apache2-utils libapr1 libaprutil1 lighttpd-mod-webdav
0 opgewaardeerd, 4 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 403 kB aan archieven opgehaald worden.
Na deze bewerking zal er 1.725 kB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 libapr1 arm64 1.7.2-3 [94,1 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main arm64 libaprutil1 arm64 1.6.3-1 [84,4 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main arm64 apache2-utils arm64 2.4.57-2 [199 kB]
Ophalen:4 http://deb.debian.org/debian bookworm/main arm64 lighttpd-mod-webdav arm64 1.4.69-1 [25,0 kB]
403 kB opgehaald in 0s (3.203 kB/s)            
Voorheen niet geselecteerd pakket libapr1:arm64 wordt geselecteerd.
(Database wordt ingelezen ... 145207 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../libapr1_1.7.2-3_arm64.deb wordt voorbereid...
Bezig met uitpakken van libapr1:arm64 (1.7.2-3) ...
Voorheen niet geselecteerd pakket libaprutil1:arm64 wordt geselecteerd.
Uitpakken van .../libaprutil1_1.6.3-1_arm64.deb wordt voorbereid...
Bezig met uitpakken van libaprutil1:arm64 (1.6.3-1) ...
Voorheen niet geselecteerd pakket apache2-utils wordt geselecteerd.
Uitpakken van .../apache2-utils_2.4.57-2_arm64.deb wordt voorbereid...
Bezig met uitpakken van apache2-utils (2.4.57-2) ...
Voorheen niet geselecteerd pakket lighttpd-mod-webdav wordt geselecteerd.
Uitpakken van .../lighttpd-mod-webdav_1.4.69-1_arm64.deb wordt voorbereid...
Bezig met uitpakken van lighttpd-mod-webdav (1.4.69-1) ...
Instellen van lighttpd-mod-webdav (1.4.69-1) ...
Instellen van libapr1:arm64 (1.7.2-3) ...
Instellen van libaprutil1:arm64 (1.6.3-1) ...
Instellen van apache2-utils (2.4.57-2) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+rpt2+deb12u3) ...

De voor WebDAV noodzakelijke uitbreidingen (modules) activeren we met de opdrachten:

pi@raspberrypi:~ $ sudo lighty-enable-mod auth
Enabling auth: ok
Run "service lighttpd force-reload" to enable changes
pi@raspberrypi:~ $ sudo lighty-enable-mod webdav
Enabling 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)).*" {

naar

$HTTP["url"] =~ "^/(?!(dist|app|ajax|config|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.local/webdav/).

Webdav Firefox

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.password 
pi@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.

Autentificatie

In Windows integreren

  1. Start Windows Verkenner.
  2. Blader naar Deze pc.
  3. Activeer bovenaan het lint Meer informatie (knop met drie punten).
  4. Klik op de knop Netwerkverbinding maken.
  5. Geef in het tekstvak Map de URL van de WebDAV map in.
  6. Activeer indien gewenst de optie Opnieuw verbinding maken bij aanmelden.
  7. Om de WebDAV gebruiker en zijn wachtwoord te kunnen ingeven, activeer je de optie Verbinding maken met andere referenties.
    Netwerkverbinding maken
  8. Klik op de knop Voltooien.
  9. 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).
    Windows beveiliging
  10. Klik OK.
  11. De WebDAV map wordt in Windows verkenner geopend. Indien dit mislukt, probeer het dan nogmaals, op mijn Windows systeem lukte het altijd 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:~ $ tree /var/www/webdav/
/var/www/webdav/
└── Nieuwe map
    └── Nieuw - Tekstdocument.txt

2 directories, 1 file

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 met de opdracht rundll32.exe keymgr.dll,KRShowKeyMgr het dialoogvenster op waarmee je gebruikersnamen en bijhorende wachtwoorden kunt verwijderen.

Opgeslagen gebruikersnamen en wachtwoorden

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.

  1. Tor kan je enkel gebruiken op een Routed AP, zorg dat RaspAP NIET werkt als Bridged AP.
  2. Tor installeren:
    1. Installeer tor met:
      pi@raspberrypi:~ $ sudo apt install tor
      Pakketlijsten worden ingelezen... Klaar
      Boom van vereisten wordt opgebouwd... Klaar
      De statusinformatie wordt gelezen... Klaar 
      De volgende pakketten zijn automatisch geïnstalleerd en zijn niet langer nodig:
        agnostics bluez dos2unix fio fonts-piboto grim gtk2-engines-clearlookspix gtk2-engines-pixbuf gtk2-engines-pixflat gui-pkinst
        ibverbs-providers libaio1 libaml0 libatkmm-1.6-1v5 libboost-iostreams1.74.0 libcairomm-1.0-1v5 libcupsimage2 libdaxctl1
        libdbusmenu-glib4 libdbusmenu-gtk3-4 libgfapi0 libgfrpc0 libgfxdr0 libglibmm-2.4-1v5 libglusterfs0 libgtkmm-3.0-1v5 libibverbs1
        libliftoff-rpi libnbd0 libndctl6 libneatvnc0 libnma-common libnma0 libpangomm-1.4-1v5 libpmem1 libpmemblk1 librados2 librbd1
        librdmacm1 libseat1 libsigc++-2.0-0v5 libwf-config1 libwf-utils0 libwlroots11 libxcb-res0 lp-connection-editor lxplug-bluetooth
        lxplug-cputemp lxplug-ejecter lxplug-magnifier lxplug-menu lxplug-netman lxplug-network lxplug-ptbatt lxplug-updater
        lxplug-volumepulse mate-polkit-bin pi-greeter pi-language-support pi-printer-support pipanel pishutdown pixflat-icons
        printer-driver-escpr pulseaudio-module-bluetooth qt5-gtk2-platformtheme qt5-style-plugin-cleanlooks qt5-style-plugin-motif
        qt5-style-plugin-plastique qt5-style-plugins qt5ct rp-bookshelf rpd-wallpaper wayfire wayvnc wf-panel-pi xsettingsd xwayland
      Gebruik 'sudo apt autoremove' om ze te verwijderen.
      De volgende extra pakketten zullen geïnstalleerd worden:
        tor-geoipdb torsocks
      Voorgestelde pakketten:
        mixmaster torbrowser-launcher socat apparmor-utils nyx obfs4proxy
      De volgende NIEUWE pakketten zullen geïnstalleerd worden:
        tor tor-geoipdb torsocks
      0 opgewaardeerd, 3 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
      Er moeten 3.486 kB aan archieven opgehaald worden.
      Na deze bewerking zal er 17,2 MB extra schijfruimte gebruikt worden.
      Wilt u doorgaan? [J/n] 
      Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 tor arm64 0.4.7.13-1 [1.911 kB]
      Ophalen:2 http://deb.debian.org/debian bookworm/main arm64 tor-geoipdb all 0.4.7.13-1 [1.501 kB]
      Ophalen:3 http://deb.debian.org/debian bookworm/main arm64 torsocks arm64 2.4.0-1 [74,7 kB]
      3.486 kB opgehaald in 0s (9.116 kB/s)
      Voorheen niet geselecteerd pakket tor wordt geselecteerd.
      (Database wordt ingelezen ... 145263 bestanden en mappen momenteel geïnstalleerd.)
      Uitpakken van .../tor_0.4.7.13-1_arm64.deb wordt voorbereid...
      Bezig met uitpakken van tor (0.4.7.13-1) ...
      Voorheen niet geselecteerd pakket tor-geoipdb wordt geselecteerd.
      Uitpakken van .../tor-geoipdb_0.4.7.13-1_all.deb wordt voorbereid...
      Bezig met uitpakken van tor-geoipdb (0.4.7.13-1) ...
      Voorheen niet geselecteerd pakket torsocks wordt geselecteerd.
      Uitpakken van .../torsocks_2.4.0-1_arm64.deb wordt voorbereid...
      Bezig met uitpakken van torsocks (2.4.0-1) ...
      Instellen van tor (0.4.7.13-1) ...
      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 → /lib/systemd/system/tor.service.
      Instellen van torsocks (2.4.0-1) ...
      Instellen van tor-geoipdb (0.4.7.13-1) ...
      Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
    2. Open als systeembeheerder het configuratiebestand /etc/tor/torrc met een teksteditor:
      pi@raspberrypi:~ $ sudo nano /etc/tor/torrc
    3. Activeer de volgende regel (hekje voor de regel verwijderen):
      Log notice file /var/log/tor/notices.log
    4. Voeg de volgende regels toe:
      VirtualAddrNetwork 10.3.141.1/10
      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
      Vervang daarbij 10.3.141.1 door het statische IP adres van je wifi-interface.
  3. De verbindingen op het wifi-netwerk gaan nu rechtstreeks via de ethernetinterface, dit moet echter eerst via de Tor-software passeren:
    1. Laat on eerst kijken welke NAT-regels de firewall gebruikt om dit te mogelijk te maken:
      pi@raspberrypi:~ $ sudo iptables -t nat -L
      Chain 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
    2. 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.9 (nf_tables) on Mon Nov 20 15:52:28 2023
      *nat
      :PREROUTING ACCEPT [484:50172]
      :INPUT ACCEPT [16:985]
      :OUTPUT ACCEPT [112:8989]
      :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 Mon Nov 20 15:52:28 2023
    3. We verwijderen de oude NAT-regels:
      pi@raspberrypi:~ $ sudo netfilter-persistent flush
      run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables flush
      run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables flush
    4. 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 53
      pi@raspberrypi:~ $ sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040
    5. Sla de NAT-configuratie voor RaspAP op:
      pi@raspberrypi:~ $ sudo iptables-save | sudo tee /etc/iptables/rules.v4
      # Generated by iptables-save v1.8.9 (nf_tables) on Mon Nov 20 15:58:35 2023
      *nat
      :PREROUTING ACCEPT [0:0]
      :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 Mon Nov 20 15:58:35 2023
  4. Nu maken we nog een logbestand aan voor Tor:
    pi@raspberrypi:~ $ sudo touch /var/log/tor/notices.log
    pi@raspberrypi:~ $ sudo chown debian-tor /var/log/tor/notices.log
    pi@raspberrypi:~ $ sudo chmod 644 /var/log/tor/notices.log
  5. Om er voor te zorgen dat Tor pas opstart na RaspAP passen we de automatische opstartprocedure aan:
    pi@raspberrypi:~ $ sudo nano /lib/systemd/system/tor@default.service
    En passen we de regel (instelling) aan waarop tor moet wachten om op te starten, van:
    After=network-online.target nss-lookup.target
    naar
    After=network-online.target nss-lookup.target raspapd.service
    Sla de aanpassingen op en verlaat nano.
  6. Herstart Tor:
    1. pi@raspberrypi:~ $ sudo systemctl restart tor.service
      En controleer of je geen foutmeldingen ziet:
      pi@raspberrypi:~ $ sudo systemctl status tor.service
       tor.service - Anonymizing overlay network for TCP (multi-instance-master)
           Loaded: loaded (/lib/systemd/system/tor.service; enabled; preset: enabled)
           Active: active (exited) since Mon 2023-11-20 16:03:49 CET; 56s ago
          Process: 3354 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
         Main PID: 3354 (code=exited, status=0/SUCCESS)
              CPU: 3ms
      
      nov 20 16:03:49 raspberrypi systemd[1]: Starting tor.service - Anonymizing overlay network for TCP (multi-instance-master)...
      nov 20 16:03:49 raspberrypi systemd[1]: Finished tor.service - Anonymizing overlay network for TCP (multi-instance-master).
    2. Vervolgens laat je Tor automatisch mee opstarten:
      pi@raspberrypi:~ $ sudo systemctl enable tor.service
      Synchronizing state of tor.service with SysV service script with /lib/systemd/systemd-sysv-install.
      Executing: /lib/systemd/systemd-sysv-install enable tor
  7. 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.log of er in het logbestand informatie staat die je helpt om het probleem te lokaliseren. Druk op de q-toets om het programma less te verlaten.
  8. 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.
    Tor testpagina
  9. 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.io dat je IP-adres tot het gekozen land behoort.
  10. 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.
  11. 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.
  12. 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.
We hebben in de praktijkopdracht voor een (relatief) gemakkelijke oplossing gekozen: door over te schakelen naar het draadloze netwerk van de Pi kun je van ieder draadloos apparaat heel snel overschakelen van een onbeschermde internetverbinding naar een Tor-verbinding. Er komt echter veel meer bij kijken als je meer anonimiteit wilt. Wie meer wil, moet eens naar Tails kijken (https://tails.boum.org). Deze Linux-distributie, die je live van een usb-stick draait, is speciaal geconfigureerd om niet alleen via Tor te internetten, maar ook zo min mogelijk informatie te lekken.

Openbare reacties op deze pagina (kunnen door alle bezoekers gelezen worden)

, vrijdag 2 juni 2023 19:28