Hvordan lage et WiFi-nettverk som bare overfører kattebilder med en Raspberry Pi

Hvordan lage et WiFi-nettverk som bare overfører kattebilder med en Raspberry Pi / DIY

Det er et vanlig bruksscenario: Du vil kringkaste et offentlig WiFi-nettverk for alle som skal bruke, men du har strenge krav om at kun kattebilder skal tillates. Gode ​​nyheter: Din Raspberry Pi er en perfekt transmoggification maskin. Fascinert? Les videre.

Hva du trenger

  • Raspberry Pi modell B (Ny til Raspberry Pi? Her er alt en nybegynner trenger å vite Bare kjøpt en Raspberry Pi? 11 Ting du trenger å vite har du nettopp kjøpt en Raspberry Pi? 11 ting du trenger å vite I denne videoen forklarer vi alt du trenger å vite hvis du nettopp har kjøpt en Raspberry Pi, eller tenker på å kjøpe en. Les mer, i videoform)
  • 4 GB eller større SD-kort
  • Ethernet-kabel
  • Kompatibel WiFi-adapter
  • MicroUSB strømkabel og adapter

Teorien

Dette prosjektet begynner å være identisk med Onion Router. Bygg din egen: Safeplug (Tor Proxy Box). Bygg din egen: Safeplug (Tor Proxy Box). Hvorfor betale $ 50 for en Tor Proxy-boks når du kan lage din egen med Raspberry Pi og USB WiFi dongle? Les mer vi bygget noen uker tilbake. Vi vil gjøre Raspberry Pi til et standard WiFi-nettverk først, og deretter plassere en proxy i midten. Proxyen vil filtrere innlegg gjennom et Perl-skript, som erstatter bildene på hver HTTP-forespørsel med kattegifter fra TheCatAPI.com. Se som befuddled brukere er både intenst frustrert, men likevel rart beroliget. Her er BBC, post-cat modifikasjoner.

Lag et WiFi-nettverk

Siden denne delen av opplæringen er nøyaktig den samme som DIY Onion Router Bygg din egen: Safeplug (Tor Proxy Box) Bygg din egen: Safeplug (Tor Proxy Box) Hvorfor betale $ 50 for en Tor Proxy-boks når du kan lage din egen med en Raspberry Pi og USB WiFi dongle? Les mer, følg instruksjonene der opp til punktet Installer Tor.

Den eneste lille forandringen vi må gjøre er å kringkaste et åpent WiFi-nettverk i stedet for en sikret med WPA. Når du har fulgt oppsettet der, endrer du /etc/hostapd/hostapd.conf, lim inn i følgende konfigurasjoner i stedet. Start på nytt for å bruke endringene.

grensesnitt = wlan0 driver = nl80211 ssid = Kattunger hw_mode = g channel = 6 auth_algs = 1 wmm_enabled = 0

Du bør nå ha et trådløst nettverk som sendes på din Raspberry Pi som er offentlig tilgjengelig. Resten av denne guiden vil fokusere på å få interessante ting som skjer.

Hvis ting ikke virker, skriv:

ifconfig -a 

og se etter en IP-adresse på wlan0. Hvis en ikke blir tildelt ved omstart, kan du prøve følgende:

sudo nano / etc / default / ifplugd 

Endre følgende linjer fra:

INTERFACES = "auto" HOTPLUG_INTERFACES = "all" 

til:

INTERFACES = "et0" HOTPLUG_INTERFACES = "eth0" 

Start på nytt og bekreft at du kan koble til WiFi-nettverket, og få tilgang til Internett.

Squid Proxy og IPTables

Start med å installere forutsetningene, og opprett deretter et nytt rutetabell. Vi serverer bilder fra Raspberry Pi senere, så vi trenger også Apache webserver.

sudo apt-get install squid3 bridge-utils apache perl nano iptables.sh 

Lim inn følgende:

iptables -t nat -A POSTROUTING -j MASQUERADE iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp -dport 80 -j DNAT - til destinasjon 192.168.42.1:3128 iptables -t nat -A PREROUTING -i eth1-p tcp -m tcp - port 80 -j REDIRECT - til porter 3128 

Lagre, og avslutt deretter.

chmod + x iptables.sh sudo cp iptables.sh /etc/init.d/ sudo update-rc.d iptables.sh start 99 

Ignorer advarslene, det betyr bare at vi ikke har overholdt noen Debians regler (men ikke bryter noe). Til slutt har vi fortsatt den gamle iptables regler om oppstart, så fjern følgende linje fra / etc / network / grensesnitt

opp iptables-gjenoppretting < /etc/iptables.ipv4.nat 

(Slett eller kommentere det)

Start deretter på nytt. Neste Vi sletter standard Squid proxy config, og lager en ny.

sudo rm /etc/squid3/squid.conf sudo nano /etc/squid3/squid.conf 

Lim inn følgende i den tomme filen:

cache_mgr pi cachemgr_passwd pi alle redirect_program /home/pi/cats.pl acl manager proto cache_object acl localhost src 127.0.0.1/32 :: 1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 :: 1 acl lokalnett src 192.168. 42.0 / 24 # RFC1918 mulig internt nettverk acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # uregistrert porter acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT-metode CONNECT http_access tillat sjef localhost http_access nekte manager http_access nekte! Safe_ports http_access nekte CONNECT! SSL_ports http_access tillate lokalnett http_access tillate localhost http_access nekte alle http_port 3128 transparent umask 022 cache_mem 128 MB cache_dir ufs / var / spool / squid3 1500 16 256 coredump_dir / var / spool / squid3 refresh_patt ern ^ ftp: 1440 20% 10080 refresh_pattern ^ gopher: 1440 0% 1440 refresh_pattern -i (/ cgi-bin / | \?) 0 0% 0 refresh_pattern. 0 20% 4320 

Lagre og lukk. Initialiser hurtigbufferkatalogene med følgende kommando, og rediger deretter skriptet vi skal bruke til catify alle bildene:

sudo squid3 -z nano /home/pi/cats.pl 

Lim inn:

#! / usr / bin / perl $ | = 1; $ telle = 0; $ pid = $$; åpne (DEBUG, '>> / tmp / cats.log'); autoflush DEBUG 1; skrive DEBUG "############################################################################## ######################### \ n "; mens (<>) chomp $ _; hvis (m / nosquid /) print DEBUG "Inngang NOSQUID: $ url \ n"; skriv ut "$ _ \ n"; skriv ut DEBUG "Output NOSQUID: $ _ \ n";  elsif ($ _ = ~ /(.*\.jpg)/i) $ url = $ 1; skriv ut DEBUG "Input: $ url \ n"; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / få format = src & type = gif & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; skriv ut "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.*\.gif) /i) $ url = $ 1; skriv ut DEBUG "Input: $ url \ n"; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / få format = src & type = gif & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; skriv ut "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.*\.png)/i) $ url = $ 1; skriv ut DEBUG "Input: $ url \ n"; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / få format = src & type = gif & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; skriv ut "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.*\.jpeg)/i) $ url = $ 1; skriv ut DEBUG "Input: $ url \ n"; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / få format = src & type = gif & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; skriv ut "http://127.0.0.1/images/$pid-$count.gif\n";  annet skriv ut "$ _ \ n";  $ count ++;  

Gjør skriptet kjørbart, og vi også ned for å lage noen kataloger for at det skal fungere med.

sudo chmod + x cats.pl sudo mkdir / var / www / bilder sudo chmod 777 / var / www / bilder sudo usermod -a -G www-data proxy sudo chown www-data: www-data / var / www sudo chown www -data: www-data / var / www / bilder touch /tmp/cats.log chmod 777 /tmp/cats.log 

Du kan hale loggen til enhver tid med:

hale -f /tmp/cats.log 

Prøv å logge inn på Pinterest, og plutselig plukker alle de dumme DIY-potteplanteprosjektene og menneskemoteene seg og blir langt mer tiltalende.

Hvis du helst vil servere bilder på baksiden (kreditt for det opprinnelige skriptet til Ex-Parrot, jeg endret bare for å håndtere noen tillatelsesfeil), skape upsidedown.pl og lim inn i det følgende.

#! / usr / bin / perl $ | = 1; $ telle = 0; $ pid = $$; mens (<>) chomp $ _; hvis ($ _ = ~ /(.*\.jpg)/i) $ url = $ 1; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.jpg", "$ url"); system ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.jpg"); chmod 0777, "/ var / www / images / $ pid- $ count.jpg"; skriv ut "http://127.0.0.1/images/$pid-$count.jpg\n";  elsif ($ _ = ~ /(.*\.gif) /i) $ url = $ 1; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "$ url"); system ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.gif"); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; skriv ut "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.*\.png)/i) $ url = $ 1; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.png", "$ url"); system ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.png"); chmod 0777, "/ var / www / images / $ pid- $ count.png"; skriv ut "http://127.0.0.1/images/$pid-$count.png\n";  elsif ($ _ = ~ /(.*\.jpeg)/i) $ url = $ 1; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.jpeg", "$ url"); system ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.jpeg"); chmod 0777, "/ var / www / images / $ pid- $ count.jpeg"; skriv ut "http://127.0.0.1/images/$pid-$count.jpeg\n";  else print "$ _ \ n" ;;  $ count ++;  

Følg de andre trinnene ovenfor, endre filnavn, for å gjøre skriptet kjørbart, og modifiser Squid-konfigurasjonen for å peke på upsidedown.pl i stedet for cats.pl. Til slutt må du starte om blekksprut med:

sudo service squid3 restart 

Resultatene er ganske kjempebra i begge tilfeller. Hvis du gjør noen endringer eller forbedrer disse skriptene med tilleggsfunksjoner, vennligst gi meg beskjedene og sett en Pastebin-kobling til skriptet ditt..

Trenger du noe mer komplisert? Du kan prøve å kombinere dette prosjektet med en Raspberry Pi NAS Slå din Raspberry Pi inn i en NAS-boks Slå din Raspberry Pi inn i en NAS-bok Har du et par eksterne harddisker som ligger rundt og en Raspberry Pi? Lag en billig, lavdrevet nettverksmontert lagringsenhet ut av dem. Mens sluttresultatet sikkert ikke vil være som ... Les mer eller en alltid-på-torrent-nedlasting Hvordan slå din Raspberry Pi inn i en Alltid-på Nedlasting av Megalith Slik slår du din Raspberry Pi inn i en Alltid-på Nedlasting av Megalith Gjør din del for det globale "Linux distribusjonsnettverket" ved å bygge en dedikert, sikker, torrent-nedlasting megalitt som knapt bruker 10W strøm. Det vil selvfølgelig være basert på en Raspberry Pi. Les mer !

Utforsk mer om: Raspberry Pi, Wi-Fi.