Cum sa faci o retea WiFi care transmite doar imagini cat cu o zmeura Pi

Cum sa faci o retea WiFi care transmite doar imagini cat cu o zmeura Pi / DIY

Este un scenariu de utilizare obișnuită: doriți să difuzați o rețea WiFi publică pentru oricine să o folosească, dar aveți cerințe stricte că numai imaginile pisicilor vor fi permise. Vestea cea bună: Zmeura Pi este perfectă transmoggification maşină. Intrigat? Citește mai departe.

Ce ai nevoie

  • Raspberry Pi model B (Nou pentru Raspberry Pi? Iată tot ce ar trebui să știe un începător A cumpărat doar o zmeură Pi 11 lucruri de care trebuie să știți cumpărați doar o zmeură Pi 11 lucruri de care trebuie să știți În acest videoclip, vă explicăm tot ce trebuie să știți dacă tocmai ați cumpărat un Raspberry Pi sau vă gândiți să cumpărați unul. Citiți mai multe, în formă video)
  • Card SD de 4 GB sau mai mare
  • cablu Ethernet
  • Adaptor WiFi compatibil
  • Cablu de alimentare MicroUSB și adaptor

Teoria

Acest proiect incepe sa fie identic cu cel al Router-ului Onion: Safeplug (Tor Proxy Box) Construieste-ti propria: Safeplug (Tor Proxy Box) De ce sa platesti 50 de dolari pentru o casuta proxy Tor atunci cand poti face propriul cu Raspberry Pi si USB WiFi dongle? Citiți mai multe pe care le-am construit acum câteva săptămâni. Vom face mai întâi Raspberry Pi într-o rețea standard WiFi, apoi pune un proxy în mijloc. Proxy-ul va fi filtrarea posturilor printr-un script Perl, care va înlocui imaginile la fiecare solicitare HTTP cu GIF cat de la TheCatAPI.com. Uita-te la fel de bine ca utilizatorii sunt atât intens frustrat, dar ciudat calmat. Iată modificările BBC, post-cat.

Realizarea unei rețele WiFi

Din moment ce această parte a tutorialului este exact la fel ca DIY Router Onion Construiți propriul dvs.: Safeplug (Tor Proxy Box) Construiți propriul dvs.: Safeplug (Tor Proxy Box) De ce să plătiți 50 de dolari pentru o cutie proxy Tor atunci când vă puteți face cu o zmeură Pi și dongle USB WiFi? Citiți mai multe, urmați instrucțiunile de acolo până la punctul de Instalați Tor.

Singura mică modificare pe care trebuie să o facem este să difuzați o rețea Wi-Fi deschisă în locul unei rețele securizate cu WPA. Odată ce ați urmat configurarea acolo, schimbați-vă /etc/hostapd/hostapd.conf, păstrează în loc de configurații următoare. Reporniți pentru a aplica modificările.

interfață = wlan0 driver = nl80211 ssid = Kitte hw_mode = g canal = 6 auth_algs = 1 wmm_enabled = 0

Ar trebui să aveți acum o rețea wireless difuzată pe Raspberry Pi, care este accesibilă publicului. Restul acestui ghid se va concentra pe obținerea lucrurilor interesante care se întâmplă.

Dacă lucrurile nu funcționează, tastați:

ifconfig -a 

și căutați o adresă IP pe wlan0. Dacă unul nu este alocat la repornire, încercați următoarele:

sudo nano / etc / implicit / ifplugd 

Modificați următoarele linii din:

INTERFACES = "auto" HOTPLUG_INTERFACES = "toate" 

la:

INTERFACES = "eth0" HOTPLUG_INTERFACES = "eth0" 

Reporniți și verificați că vă puteți conecta la rețeaua WiFi și accesați Internetul.

Squid Proxy și IPTables

Începeți prin a instala cerințele prealabile, apoi creați un nou tabel de rutare. Vom servi mai târziu imagini de la Raspberry Pi, deci avem nevoie și de server web Apache.

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

Lipiți următoarele:

iptables -t nat -A POSTROUTING -j MASQUERADE iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp -dot 80 -j DNAT --to-destinație 192.168.42.1:3128 iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp -dport 80 -j REDIRECT -to-porturi 3128 

Salvați, apoi ieșiți.

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

Ignorați avertismentele, înseamnă că nu am respectat regulile Debian (dar nu rupe nimic). În cele din urmă, încă avem vechiul iptables regulile de pornire, eliminați astfel următoarea linie / etc / network / interfaces

up iptables-restore < /etc/iptables.ipv4.nat 

(Ștergeți sau comentați-l)

Apoi reporniți. Înainte de a șterge configurația proxy Squid implicită, faceți una nouă.

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

Inserați următoarele în fișierul gol:

cache_mgr pi cachemgr_passwd pi toate 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 localnet src 192.168. 42.0 / 24 # RFC1918 posibila rețea internă acl port SSL_ports 443 acl port Safe_ports 80 # http acl Port Safe_ports 21 # ftp acl port Safe_ports 443 # https acl port Safe_ports 70 # gopher acl port Safe_ports 210 # wais acl port Safe_ports 1025-65535 # neînregistrate porturi acl Portul Safe_ports 280 # http-mgmt acl portul Safe_ports 488 # gss-http acl Portul Safe_ports 591 # filem acl portul Safe_ports 777 # multiling http acl CONNECT metoda CONNECT http_access permite managerului localhost http_access refuza managerul http_access refuza Safe_ports http_access deni CONNECT! SSL_ports http_access permite localnet http_access permite localhost http_access neagă toate 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 

Salvează și ieși. Inițializați directoarele cache cu următoarea comandă, apoi editați scriptul pe care îl vom folosi catify toate imaginile:

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

Lipiți în:

#! / usr / bin / perl $ | = 1; $ count = 0; $ pid = $ $; deschideți (DEBUG, '>> / tmp / cats.log'); autoflush DEBUG 1; print DEBUG "####################################### ######################### \ n "; în timp ce (<>) chomp $ _; dacă (m / nosquid /) print DEBUG "Introduceți NOSQUID: $ url \ n"; tipăriți "$ _ \ n"; print DEBUG "Ieșire NOSQUID: $ _ \ n";  elsif ($ _ = ~ /(.*\.jpg)/i) $ url = $ 1; print DEBUG "Intrare: $ url \ n"; ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / obține formatul = src & type = GIF & nosquid "); chmod 0777, "/ var / www / imagini / $ pid- $ count.gif"; tipăriți "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.*\.gif)/i) $ url = $ 1; print DEBUG "Intrare: $ url \ n"; ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / obține formatul = src & type = GIF & nosquid "); chmod 0777, "/ var / www / imagini / $ pid- $ count.gif"; tipăriți "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.**.png) / i) $ url = $ 1; print DEBUG "Intrare: $ url \ n"; ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / obține formatul = src & type = GIF & nosquid "); chmod 0777, "/ var / www / imagini / $ pid- $ count.gif"; tipăriți "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.*\.jpeg)/i) $ url = $ 1; print DEBUG "Intrare: $ url \ n"; ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / obține formatul = src & type = GIF & nosquid "); chmod 0777, "/ var / www / imagini / $ pid- $ count.gif"; tipăriți "http://127.0.0.1/images/$pid-$count.gif\n";  altceva print "$ _ \ n";  $ count ++;  

Faceți scriptul executabil și, de asemenea, nu putem să facem niște directoare pentru care să lucreze.

sudo chmod + x cats.pl sudo mkdir / var / www / imagini sudo chmod 777 / var / www / imagini sudo usermod -a -G www-data proxy sudo chown www-data: www-data / var / -data: www-data / var / www / imagini atingeți /tmp/cats.log chmod 777 /tmp/cats.log 

Aveți posibilitatea să coadă jurnalul în orice moment cu:

tail -f /tmp/cats.log 

Încearcă să te autentifici în Pinterest și, brusc, toate proiectele proaspete de ghivece de plante și modelele de mens aleasă și vor fi mult mai atrăgătoare.

Dacă doriți mai degrabă imagini cu susul în jos (credit pentru scriptul original pentru Ex-Parrot, am modificat doar pentru a face față unor erori de permisiuni), crea upsidedown.pl și lipiți în următoarele.

#! / usr / bin / perl $ | = 1; $ count = 0; $ pid = $ $; în timp ce (<>) chomp $ _; dacă ($ _ = ~ /(.*\.jpg)/i) $ url = $ 1; ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.jpg", "$ url"); sistem ("/ usr / bin / mogrify", "-flip", "/ var / www / imagini / $ pid- $ count.jpg"); chmod 0777, "/ var / www / imagini / $ pid- $ count.jpg"; tipăriți "http://127.0.0.1/images/$pid-$count.jpg\n";  elsif ($ _ = ~ /(.*\.gif)/i) $ url = $ 1; ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "$ url"); sistem ("/ usr / bin / mogrify", "-flip", "/ var / www / imagini / $ pid- $ count.gif"); chmod 0777, "/ var / www / imagini / $ pid- $ count.gif"; tipăriți "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.**.png) / i) $ url = $ 1; ("/ usr / bin / wget", "-q", "-O", "/ var / www / imagini / $ pid- $ count.png", "$ url"); sistem ("/ usr / bin / mogrify", "-flip", "/ var / www / imagini / $ pid- $ count.png"); chmod 0777, "/ var / www / imagini / $ pid- $ count.png"; tipăriți "http://127.0.0.1/images/$pid-$count.png\n";  elsif ($ _ = ~ /(.*\.jpeg)/i) $ url = $ 1; ("/ usr / bin / wget", "-q", "-O", "/ var / www / imagini / $ pid- $ count.jpeg", "$ url"); sistem ("/ usr / bin / mogrify", "-flip", "/ var / www / imagini / $ pid- $ count.jpeg"); chmod 0777, "/ var / www / images / $ pid- $ count.jpeg"; tipăriți "http://127.0.0.1/images/$pid-$count.jpeg\n";  altceva print "$ _ \ n" ;;  $ count ++;  

Urmați ceilalți pași de mai sus, modificați numele fișierului, faceți scriptul executabil și modificați configurația Squid pentru a indica punctul upsidedown.pl in loc de cats.pl. În cele din urmă, va trebui să reporniți Squid cu:

sudo service squid3 reporniți 

Rezultatele sunt destul de minunate în ambele cazuri. Dacă faceți modificări sau îmbunătățiți aceste scripturi cu funcții suplimentare, vă rog să-mi spuneți comentariile și puneți un link Pastebin la scenariul dvs..

Aveți nevoie de ceva mai complicat? Ați putea încerca să combinați acest proiect cu un zmeier Pi NAS Întoarceți zmeura dvs. Pi într-o cutie NAS Întoarceți zmeura dvs. Pi într-o cutie NAS Aveți un cuplu de hard drive-uri externe situate în jurul valorii de și o Zmeura Pi? Faceți din ele un dispozitiv de stocare ieftin, cu putere redusă, atașat la rețea. În timp ce rezultatul final cu siguranță nu va fi la fel de ... Citește mai mult sau o întotdeauna pe downloader torrent Cum Pentru a transforma dvs. de zmeură Pi într-o întotdeauna pe descărcare Megalith Cum de a transforma dvs. de zmeură Pi într-o întotdeauna pe descărcare Megalith Faceți parte pentru "rețeaua de distribuție Linux" globală prin construirea unui megalit dedicat, securizat, descărcat de torenți, care utilizează abia 10W de putere. Va fi, desigur, bazată pe o piersică Pi. Citeste mai mult !

Exploreaza mai multe despre: Raspberry Pi, Wi-Fi.