Weekend Prosjekt: Oppsett Sikker Guest Wi-Fi med Linux


Den høytiden er over oss, og du vet hva det betyr: slektninger kommer over som ønsker å bruke WiFi. Hvis du ønsker å finne en løsning et sted mellom " kjøre et åpent, usikret AP " og " dele ut din WPA2 passord til folk som skriver sånt ned på gule lapper " deretter sette opp en portal er et praktisk alternativ.

Det er flere åpen kildekode-fangenskap portaler å velge mellom for Linux-boksen, inkludert NoCat, HotSpotPA, PacketFence, og chilli. Med mindre du har tid til å utforske funksjoner og alternativer, men er en enkel, aktivt utviklet løsning som WiFiDog sannsynligvis det beste alternativet. WiFiDog vil kjøre på alle Linux-distribusjon, og er en valgfri pakke på de fleste av embedded Linux router firmware prosjekter (som OpenWRT og DD-WRT).

Tydeligvis oppgave som en portal pakke utfører avhenger av tilstedeværelsen av to (eller flere) nettverksgrensesnitt på maskinen; portalen fanger tilkoblinger opprinnelse på begrenset grensesnitt, utfører noen form for godkjenning, og deretter begynner å rute trafikk til ubegrenset grensesnitt, enten det er også på LAN eller WAN port. Den kanoniske utformingen av dette oppsettet er sånn på en vanlig ruter; Wi-Fi-grensesnitt er begrenset side, og WAN-grensesnittet er ubegrenset rute til Internett oppstrøms. Andre, kablet grensesnitt på ruteren vanligvis ikke medføre forbigående enheter, slik at portalen programvaren ikke lytter eller begrense tilgangen på dem

Men en dedikert router er ikke nødvendig.; samme oppsett vil fungere like bra hvis du installerer en Wi-Fi-kort på en standard Linux server. Heller ikke du nødvendigvis trenger å låse deg selv ut av Wi-Fi-nettverk sammen med de besøkende: hvis ruteren er i stand til å kjøre flere WLAN SSID samtidig gjennom " virtuelle grensesnitt, " du bare velge hvilket grensesnitt skal brukes for captive portal, og som grensesnitt er ikke

En grunnleggende WiFiDog oppsett består av to komponenter:. gateway
, som lytter etter klient tilkoblingsforespørsler og autentiseringsserver
, som godkjenner kunder og opprettholder de aktive tilkoblinger. Du kan kjøre begge programmene på en fullverdig Linux-boks, men en dedikert router vil vanligvis bare ha nok ressurser til å kjøre gateway lokalt; vil du ønsker å kjøre godkjenningsserveren på en annen maskin

I forhold til faktisk bruk, WiFiDog krever at brukerne å opprette en ". konto " som er unik for sin e-postadresse. Når brukeren besøker Wi-Fi gateway, gjør påloggingssiden dem til enten logge inn, eller opprette en ny konto, og midlertidig åpner opp nettverkstilgang, slik at de kan sjekke e-posten for registrering epost. Når de forsøker å logge inn med gateway, videresender gateway forespørselen til godkjenningsserveren – hvis legitimasjonen sjekke ut, er inngangsporten og serveren utveksle symboler, og trafikk som tillates fra den nye klienten. Det kan virke som en merkelig godkjenning håndtrykk, siden klienten og gateway aldri utveksle kryptografiske symboler, men det lar WiFiDog å arbeide for et bredt utvalg av enheter – i motsetning til systemer som krever klienten å laste ned et SSL-sertifikat eller holde en Javascript-skript som kjører under hele leseøkt

Installasjon og oppsett. The Gateway

The gateway-pakken er tilgjengelig som en kildekode pakke fra WiFiDog prosjektet, men hvis du installerer gateway på en server eller desktop du kan finne det tilgjengelig gjennom din distro sitt pakkesystem. Hvis du er interessert i å kjøre porten på din Linux ruteren, er det beste alternativet for installasjonsinstrukser for å sjekke med firmware prosjektets dokumentasjon, men du vil sannsynligvis oppdage en pre-kompilert binær tilgjengelig eller inkludert i standard bygger.
< p> For alle andre, skjønt, er kilden lett å kompilere, som den bruker bare Linux standard netfilter og iptables funksjonalitet. Bare pakke kilden, cd inn i katalogen, og gjøre den tradisjonelle ./autogen.sh; lage; sudo make install tre trinn.

Dette skaper wifidog binære og et skjelett konfigurasjonsfil i /etc/wifidog.conf. Åpne konfigurasjonsfilen i redaktøren av ditt valg; filen opprettet dokumenter hver opsjons i kommentar blokker, så det er relativt lett å lese gjennom og levere de riktige innstillingene. De viktigste innstillingene er de GatewayID, ExternalInterface, GatewayInterface, og AuthServer.

GatewayID er et navn som du tilordner til denne spesifikke noden, slik som MyHomeWifi. WiFiDog støtter administrere flere gatewayer fra et sentralt sted, og dermed behovet for navngiving, men hvis du bare har én node, bare plukke et navn du vil huske. De ExternalInterface og GatewayInterface innstillinger er oppstrøms og nedstrøms nettverksgrensesnitt på systemet, henholdsvis. I en vanlig konfigurasjon, ville du sette eth0 (et kablet Ethernet-grensesnitt) for å være den ExternalInterface, og wlan0 (et trådløst nettverkskort) til å være den GatewayInterface.

AuthServer innstilling består av en blokk som beskriver godkjenningsserveren at denne noden må kontakte for å godkjenne nye kunder. Flere AuthServer blokker er tillatt; igjen dette er å tillate distribuert oppsett – noden vil prøve dem i rekkefølge inntil det blir en reaksjon. En prøve blokk ser slik ut:


 AuthServer {Verts mylocalserver.lan SSLAvailable ja Sti /wifidog /} 

Dette forteller noden å kontakte godkjenningsserver på https: //mylocalserver .lan /wifidog /. Du kan tilpasse URI brukes for å nå godkjenningsserveren på flere måter, blant annet tilpasse banen til brukerpåloggingsskript og suksess siden; standardinnstillingene er som regel greit med mindre du allerede kjører en komplisert Apache konfigurasjonen på serveren

Du kan også angi tidsavbrudd og ". Keepalive " ping intervaller i konfigurasjonsfilen, sammen med grunnleggende brannmurregler, en liste over klienter å automatisk pass-through (den TrustedMACList alternativet), og en tilpasset ". portal destinasjonssiden " Når filen er satt opp, lagre det, og start gateway tjeneste fra en skallet spørsmål med sudo wifidog -f -d7. Bryteren -f holder prosessen kjører i forgrunnen, og -d 7 bryteren setter det til maksimalt detaljnivå – denne måten kan du trene alle de Kinks. For bruk produksjon, vil du utelater begge bryterne og la wifidog starte som en daemon

Installasjon og oppsett. Godkjenningsserveren

Oppsett og forutsetninger er merkbart høyere på godkjenningsserveren side; du trenger Apache, PHP, PostgreSQL, og rundt et dusin PHP extensions. De fleste er vanlige, som xmlrpc og Mhash, men noen er ikke, slik som Auth_RADIUS. Konsultere den offisielle dokumentasjonen for en oppdatert liste. De offisielle docs foreslår også å utvide minnekapasiteten i php.ini filen til minst 32 MB.

Med de forutsetningene på plass, men er grei setup. Last ned og pakk ut kildekoden, plassere den hvor du velger i ditt Document. Det bør være tilgjengelig for andre maskiner i nettadressen du har angitt i /etc/wifidog.conf på gateway – i dette eksempel http: //mylocalserver.lan/wifidog/. Når du besøker http: //mylocalserver.lan/wifidog/install.php, vil du bli møtt av godkjenningsserveren installasjonsveiviseren

Den nåværende Installatøren kan sjekke pakkeavhengigheter, og pass på at du har en støttet versjon. av PHP og PostgreSQL, men det skaper ikke den PostgreSQL database for deg automatisk. Det gjør forklare hvordan du gjør det, skjønt, inkludert steg-for-steg eksempel kommandoer for å lage " wifidog " database brukeren, etterfulgt av databasen og tabeller. Trinn gjennom pakken validerings sider én om gangen; verifisere riktig versjon av PHP biblioteker og filrettigheter. Til slutt, vil du bli bedt om å laste opp databaseskjemaet, og opprette en administratorkonto. Når dette er gjort, tar du install.php filen.

Konfigurering av godkjenningsserveren gjøres ved å redigere filen config.php i wifidog katalogen. Som med gateway, eksempler og kommentarer dokumentere de ulike alternativene. På toppen er typiske databaseinnstillinger (vertsnavn, database user) som du kanskje trenger å justere. Nedenfor at i " WiFiDog Basic Configuration " seksjonen er noen alternativer knyttet til Google Maps og andre bling; for det meste kan du la disse som det er.

Behandle en Gateway

Når serveren er oppe og går, må du koble til base URL (men ikke anbefale din Wi-Fi gateway ...) – du burde se WiFiDog påloggingssiden. Her bør du logge inn med administratorkontoen du opprettet tidligere; Dette gir tilgang til web-baserte verktøy. Første gang du kobler til, vil ingenting bli konfigurert, slik at du begynner med å lage en " nettverk " fra Nettverk administrasjon
menyen.

I enkelt tilfelle (en autentiseringsserver og en gateway), kan du tilordne det noe minneverdig navn som du selv velger, for eksempel MyBasicNetwork. Som standard bruker WiFiDog e-postkonto verifisering for å autentisere brukere; Hvis du ønsker å bruke en annen autentiseringsmetode, kan du velge det under " Nettverksgodkjenning ". &Quot; Validation grace period " innstillingen kan en nylig innlogget bruker en konfigurerbar tidsluke der de kan sjekke e-posten for validering meldingen (som standard er 20 minutter).

Etter det nye nettverket er definert, legger du inn gateway node til nettverket ved å velge " Legg Node " fra " Node administrasjon " meny. The Node-ID som du skriver inn
være navnet på noden som du opprettet i wifidog.conf på gateway maskinen: det ble kalt GatewayID i denne filen (inkonsekvens er WiFiDog problem, ikke ditt); vårt eksempel brukes MyHomeWifi. Lagre innstillingene, og kunder vil være i stand til å koble gjennom porten node, basert på de generelle regler som du setter opp på under MyBasicNetwork. Her igjen, WiFiDog evne til å fjernstyre flere noder på flere nettverk gir stor fleksibilitet i et distribuert system, selv om det virker som overkill for en enkelt hotspot.

Nå, fra grensesnittet for nettadministrasjon, kan du se hvilke kontoer er logget inn, sjekk deres båndbredde, bruk graf nettverk, og sjekke registrerings logger. Du kan også administrere brukerkontoer, hvis du oppdager fremmede som ikke hører hjemme, eller mistenkelig kontoopprettelse aktivitet

Extra Credit:. Ekstra Årvåkenhet

Prosedyren er skissert ovenfor vil ikke beskytte deg mot foraktede brønner alt på egen hånd; vi bare sette opp en enkel gateway uten noen tjeneste restriksjoner. For å holde dine hotspot besøkende fra å bringe ned lokalnettet, må du ta ekstra forholdsregler – starter med å sette opp brannmurregler på gateway i wifidog.conf. Du kan bruke alle de samme pakkefiltrering ordninger iptables støtter på Linux, slik at du kan sette opp regler for å blokkere Bittorrent-trafikk, begrense tilgangen til bestemte IP-adresse, og mer. Det finnes eksempler er beskrevet i kommentarene i wifidog.conf, eller du kan ta kontakt med noen iptables HOWTO.

På toppen av det, skjønt, er det fortsatt ditt ansvar å legge merke som kobler seg til nettverket ditt. Gjenkjenne og blokkerer nefarious besøkende er på ingen måte en enkel oppgave; ett av problemene med Wi-Fi generelt er at angripere kan snuse signalet, note autentisert IP- og MAC-adresser, og falske pakker fra dem til å imitere en innloggede klient. Så som vanligvis anbefales, når det gjelder å sikre din WiFiDog captive portal, kan du ikke få sikrere enn benekte som standard. Bare sørg for ikke å vandre for langt unna, for når de pårørende må du åpne opp noen flere porter. Anmeldelser