Guide: Lav et trådløst accesspoint med Raspberry Pi

Guide: Lav et trådløst accesspoint med Raspberry Pi

Share
4 Opsætning af dnsmasq

Vi prøver at fortælle dnsmasq noget om det access-point, vi prøver at etablere, men vores begrænsede netværk skal ikke bruge halvdelen af den information, som findes i standard- konfigurationsfilen. Omdøb den, der er der, med sudo mv /etc/dnsmasq.conf /etc/dsnmasq.conf.old , og brug så sudo nano /etc/dnsmasq.conf til at begynde på en blank erstatning.

Vi skal kun bruge tre linjer. Den første er interface=wlan0 , der fortæller, hvilken enhed vi bruger. På den næste linje tilføjer du vores definition af det, som dnsmasq formodes at levere: dhcp-range=192.168.123.2,192.168.123.40,255.255.255.0,24h . Dette giver dnsmasq start og slutning på den ip-adressemængde, der skal alllokeres (det kan du justere), subnetmasken (lad den være, som den er) og det leasetidsrum (i timer), der skal gives til forbundne enheder.

Gå ud af nano, og gem. Det er faktisk alt, hvad du skal gøre for at få dnsmasq arrangeret. Der findes et væld af potentielle valgmuligheder på dnsmasqs manpage, men det er ikke umagen værd at udforske dem, før du er sikker på, at alt virker, som det skal. Vend tilbage hertil senere.

5 Opsætning af hostapd

Når netværksrouting er på plads, og de lokale ip-adresser er klar til at blive serveret, er tiden inde til at tage fat på den svære del: trådløse autentifikation. Hostapd omfatter ikke en standard-konfigurationsfil. Begynd derfor at redigere en med sudo nano /etc/hostapd/hostapd.conf .

Bemærk, at de følgende variabler, som du senere kan redigere, så de passer til netop dit netværk, skal tilføjes linje for linje og uden mellemrum i begyndelsen af linjerne. Vi skal først definere, hvilken enhed vi håndterer ( interface=wlan0 ), hvilken driver vi vil bruge ( driver=nl80211
er Pis standard), og hvad vi vil kalde vores netværk ( ssid=AltomDATA ). Dernæst følger lidt hardwaredefinition.

Tilføj hw_mode=g for at bruge 2,4 GHz trådløs frekvens, channel=7 (eller hvad den mest frie netværkskanal i dit område nu er) for at angive dit access-points trådløse kanal, wmm_enabled=0 for at fravælge trådløse multimedie-extensions i øjeblikket og macaddr_acl=0 for at angive, at du ikke ønsker at bruge en MAC-adresses access-control-liste.

Nu vender vi os mod sikkerheden. Inddrag auth_algs=1 for at specificere, at du kører i WPA-tilstand, og derefter wpa=2 for at bruge WPA2-specifikt. Brug wpa_key_mgmt=WPA-PSK og rsn_pairwise=CCMP for at angive nogle få afgørende parametre.

Dernæst wpa_passphrase=SubscribeToday (eller en anden streng af tegn på mellem 8 og 64 tegn) til at definere dit WPA-kodeord. Når du har gemt konfigurationsfilen [Billede E], skal du fortælle hostapd, hvor den er. Skriv sudo nano /etc/default/hostapd ved din shell, og erstat den linje, der begynder med #DAEMON_CONF med DAEMON_CONF=”/etc/hostapd.conf” .

Billede E

6 Start og oversæt

De processer, vi stoppede tidligere, kan vi nu starte igen ved hjælp af sudo systemctl start hostapd og sudo systemctl start dnsmasq . På dette stade kunne vi teknisk set reboote og få vores access-point op at køre, men vi mangler stadig nogle afgørende interne justeringer.

Først skal vi aktivere ip-forwarding ved at åbne /etc/sysctl.conf og fjerne hash-symbolet for at udkommentere linjen net.ipv4.ip_forward=1 , før du gemmer filen. Dernæst skal vi implementere noget, der hedder en masquerade. Det er i korte træk en specialiseret oversættelsesalgoritme til nerværksadresser.

Den router trafikken mellem enheder uden at forstyrre de oprindelige pakker på nogen måde. Kør sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE for at etablere den og lade den route udgående trafik fra eth0 og videre til dit netværk. Nu skal vi sikre os, at iptables kører på samme måde hver gang.

Se også:  Guide: Lav robotter med Raspberry Pi

Du kan bruge rutinen iptables-save til at lægge dens variabler i en fil med sudo sh -c “iptables-save > /etc/iptables.ipv4.nat” . Lad os nu sætte disse regler til at køre, hver gang Pi booter: Åbn /etc/rc.local, og tilføj iptables-restore < /etc/iptables.ipv4.nat lige over den linje, der siger exit 0 .

Trafikregulering

 

Hvis du har tænkt dig at bruge din Pi som et gæstenetværk, eller hvis du vil sinke dine uploads for at forhindre, at dine download-hastigheder styrtdykker, er Wondershaper et fremragende værktøj. Det er lillebitte – det er faktisk et script på 15 kB – men det er umådelig nyttigt, hvor du vil styre den hastighed, hvormed trafik går igennem din hardware.

Begynd med at downloade det fra Pis standardlagre ved hjælp af sudo apt-get install wondershaper , og herfra kan du køre det for første gang med sudo wondershaper eth0 1024 1204 . Denne kommando begrænser downloadet (første værdi) og upload (anden værdi) af Pi’ens Ethernet-forbindelse til det helt urimelige 1.024 kB/sek. Du kan tjekke, om det virker, med wondershaper eth0 eller ved at køre en hastighedstest på for eksempel www.speedtest.net [Billede G].

Dette script er måske mest anvendeligt, hvis det bliver kørt ved boot-tid. Kør derfor sudo nano /etc/rc.local (indrømmet, det er lidt klodset), og tilføj /sbin/wondershaper  efterfulgt af dine foretrukne begrænsninger. Gem derefter filen, og reboot. Hvis du en dag ønsker at stoppe Wondershapers handlinger, kører du blot sudo wondershaper clear eth0 for at rydde dets aktuelle parametre, eller fjern det fra /etc/rc.local. Så holder det op med at køre automatisk.

7 Reboot og test

Du kan nu trygt reboote din Pi – enten via PIXELs grafiske interface eller ved at skrive sudo reboot i kommandolinjen. Du får sandsynligvis en advarsel om nogle konfigurationsfiler, der bliver overskrevet. Det er resultatet af en tidligere ogradering, og de konfigurationsfiler, du har angivet, burde være sikre.

Alt er forhåbentlig godt, men du kan prøve et par muligheder for at blive sikker. Boot en Windows-maskine (eller din mobiltelefon), og søg efter lokale netværk. Du bør nu se dit nye SSID dukke op. Skab forbindelse til det ved at bruge det kodeord, du tidligere valgte. Nu bør du kunne få adgang til internettet.

Når du igen er på din Pi, kører du ifconfig i et terminalvindue. Du bør kunne se, at det trådløse interface [Billede F] er blevet tildelt en ip-adresse. Hvis du oplever nogen problemer, kan du prøve nogle få ting. Og ja, det er en ringe trøst i betragtning af, at du er nødt til at tolke Linux-fejlmeddelelser.

Prøv manuelt at starte hostapd og dnsmasq, og holde øje med advarsler. Hvis de begge ser ud til at virke, og dit netværk alligevel ikke kører, skal du køre sudo hostapd -dd /etc/hostapd.conf > /tmp/hostapd.log og trykke Ctrl-C for at stoppe processen efter cirka ti sekunder og dernæst køre nano /tmp/hostapd.log for at få adgang til hostapds detaljerede diagnostik-output.

Billede F

8 Justeringer

Nu har du fået dit eget trådløse access-point. Hvad kan du bruge det til? Hvis du for eksempel er omhyggelig med at redigere linjen ignore_broadcast_ssid=1 , kan du skjule Pi’ens SSID og holde dit netværk privat. Du kan også reducere nogle beregninger og helt fjerne WPA-sikkerhed, hvis du er masochistisk nok til at tillade et usikret access-point at køre på dit netværk.

Se også:  Sæt din Pi i arbejde

Dine gæster vil takke dig, men det vil din internetudbyder ikke. Selv ville vi ikke lade en Pi stå åben, men den er den perfekte vært til et gæstenetværk. Du kan uddele et kodeord uden at afsløre dine kernedetaljer, og det er endda muligt at begrænse netværksgennemløb for at forhindre dine gæster i at misbruge din hovedforbindelse – læs mere om det i boksen “Trafikregulering”.

Du kan også lade Pi køre fuldstændig headless, fordi den beholder den samme ip-adresse. Før du slukker, bør du dog sikre dig, at SSH er slået til, ved at køre sudo raspi-config og gå til “Interfacing Options > SSH.” Når det kører, rebooter du din Pi, frakobler tastatur, mus og skærm og bruger så PuTTY (www.putty.org) til at forbinde den til en Windows-maskine og styre den derfra. Du får ingen smuk grænseflade, men det er nok til at leve med.

Brobyggeri

Denne artikel handler om, hvordan man laver sit eget selvejende netværk. Et, der har sit eget subnet, sit eget ucvalg af ip-adresser og sin egen DHCP-håndtering. De enheder, du slutter til det, får adgang til internettet, og du får fuldstændig kontrol, men dets isolerede struktur er muligvis ikke ideel.

Hvis du i stedet laver en netværksbro, overlader du meget af det hårde arbejde til din router, og dit access-point bliver i langt højere grad en udvidelse af dit eksisterende netværk end et selvstændigt mininetværk. Vi skal stadig bruge hostapd til at tage sig af den trådløse autentifikation og vi skal bruge Debians bridge-utils-pakke, der bliver installeret via sudo apt-get install hostapd bridge-utils .

Stop hostapd ( sudo systemctl stop hostapd ), og åbn dhcpcd-konfigurationsfilen til redigering med sudo nano /etc/dhcpcd.conf . Eftersom vores bro bliver det logiske netværksdrev snarere end enten Pis Ethernet- eller Wi-Fi-moduler, skal vi nu forhindre dem i at modtage deres egne ip-adresser ved at føje denyinterfaces wlan0 og denyinterfaces eth0 til slutningen af filen på separate linjer. Gem filen, og gå ud og tilbage til din shell.

Nu skal vi tilføje vores bro. Det er igen virtuel nerværkshardware, og Pi fungerer som et mellemled til vores nerværksporte. Skriv sudo brctl addbr br0 , og forbind den så til vores Ethernet-port med sudo brctl addif br0 eth0 . Når de to er forbundet, skal vi definere bro-interfacet lidt mere klart ved at køre sudo nano /etc/network/interfaces . Blad ned til bunden af filen (med lidt held er den ikke for lang), og tilføj de følgende definitioner linje for linje.

Først auto br0 til at fremkalde interfacet ved boottid og derefter iface br0 inet manual til at fortælle broen, at vi ønsker, at routerens DHCP-tjeneste skal tildele den en ip-adresse. Endelig fortæller bridge_ports eth0 wlan0 broen nøjagtig, hvad du ønsker, at den skal gøre. Det vil sige sidde mellem Ethernet- og Wi-Fi-enhederne og slå bro over alle netværksportene mellem dem.

Når interfacefilen er gemt, består det sidste trin i at åbne /etc/hostapd/hostapd.conf og skrive din konfigurationsfil. Følg trinnene i “Opsætning af hostapd” i hovedteksten, men i stedet for at inddrage linjen driver=nl80211 indsætter du bridge=br0 , der beder dit access-point om at forbinde dig til din bro-adapter. Gem, reboot, og brug ifconfig til at afprøve, om din bro nu er aktiv. Den bør være den eneste enhed, der har fået tildelt en ip-adresse.

Del denne