
Brian Curtis
0
5220
21
To typowy przypadek użycia: chcesz nadawać publiczną sieć WiFi dla każdego, ale masz surowe wymagania, aby dozwolone były tylko zdjęcia kotów. Świetna wiadomość: Twoje Raspberry Pi jest idealne transmoggification maszyna. Zaintrygowany? Czytaj.
Co będziesz potrzebował
- Raspberry Pi model B (Nowy w Raspberry Pi? Oto wszystko, co powinien wiedzieć początkujący Just Bought A Raspberry Pi? 11 rzeczy, które musisz wiedzieć Just Bought A Raspberry Pi? 11 rzeczy, które musisz wiedzieć W tym filmie wyjaśniamy wszystko, co możesz wiedzieć jeśli właśnie kupiłeś Raspberry Pi lub zastanawiasz się nad jego zakupem w formie wideo)
- Karta SD 4 GB lub większa
- kabel Ethernet
- Kompatybilny adapter WiFi
- Kabel zasilający MicroUSB i adapter
Teoria
Ten projekt zaczyna się identycznie jak router cebulowy Zbuduj swój własny: Safeplug (Tor Proxy Box) Zbuduj swój własny: Safeplug (Tor Proxy Box) Po co płacić 50 $ za pudełko proxy Tor, gdy możesz zrobić własne za pomocą Raspberry Pi i USB WiFi klucz sprzętowy? zbudowaliśmy kilka tygodni temu. Najpierw przekształcimy Raspberry Pi w standardową sieć WiFi, a następnie umieścimy proxy na środku. Serwer proxy będzie filtrował posty za pomocą skryptu Perl, który zastąpi obrazy przy każdym żądaniu HTTP kotami GIF z TheCatAPI.com. Zobacz, jak oszołomieni użytkownicy są bardzo sfrustrowani, ale dziwnie uspokojeni. Oto BBC, modyfikacje post-cat.
Tworzenie sieci WiFi
Ponieważ ta część samouczka jest dokładnie taka sama, jak samodzielny router cebulowy Zbuduj swój własny: Safeplug (Tor Proxy Box) Zbuduj swój własny: Safeplug (Tor Proxy Box) Po co płacić 50 $ za pudełko proxy Tor, kiedy możesz zrobić własne za pomocą klucz Raspberry Pi i USB WiFi? , postępuj zgodnie z instrukcjami tam aż do Zainstaluj Tor.
Jedyną niewielką zmianą, którą musimy wprowadzić, jest nadawanie otwartej sieci Wi-Fi zamiast zabezpieczonej WPA. Po wykonaniu ustawień tam zmień /etc/hostapd/hostapd.conf, zamiast tego wklejanie w poniższych konfiguracjach. Uruchom ponownie, aby zastosować zmiany.
interfejs = sterownik wlan0 = nl80211 ssid = kocięta hw_mode = g kanał = 6 auth_algs = 1 wmm_enabled = 0
Powinieneś teraz mieć nadawaną bezprzewodową sieć na swoim Raspberry Pi, która jest publicznie dostępna. Pozostała część tego przewodnika skupi się na tworzeniu interesujących rzeczy.
Jeśli coś nie działa, wpisz:
ifconfig -a
i poszukaj adresu IP na wlan0. Jeśli nie zostanie przypisany do ponownego uruchomienia, spróbuj wykonać następujące czynności:
sudo nano / etc / default / ifplugd
Zmień następujące linie z:
INTERFACES = „auto” HOTPLUG_INTERFACES = „wszystkie”
do:
INTERFEJSY = „eth0” HOTPLUG_INTERFACES = „eth0”
Uruchom ponownie i sprawdź, czy możesz połączyć się z siecią Wi-Fi i uzyskać dostęp do Internetu.
Squid Proxy i IPTables
Zacznij od zainstalowania wymagań wstępnych, a następnie utwórz nową tabelę routingu. Później będziemy obsługiwać obrazy z Raspberry Pi, więc potrzebujemy również serwera WWW Apache.
sudo apt-get install squid3 bridge-utils apache perl nano iptables.sh
Wklej następujące:
iptables -t nat -A POSTROUTING -j MASQUERADE iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j DNAT - to-destination 192.168.42.1:3128 iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --port 80 -j REDIRECT --to-porty 3128
Zapisz, a następnie wyjdź.
chmod + x iptables.sh sudo cp iptables.sh /etc/init.d/ sudo update-rc.d iptables.sh start 99
Zignoruj ostrzeżenia, oznacza to po prostu, że nie przestrzegaliśmy niektórych zasad Debiana (ale niczego nie łamie). Wreszcie, wciąż mamy stare iptables reguły przy uruchamianiu, więc usuń następujący wiersz / etc / network / interfaces
iptables-restore < /etc/iptables.ipv4.nat
(Usuń lub skomentuj to)
Następnie uruchom ponownie. Dalej Usuniemy domyślną konfigurację proxy Squid i stworzymy nową.
sudo rm /etc/squid3/squid.conf sudo nano /etc/squid3/squid.conf
Wklej następujące elementy do pustego pliku:
cache_mgr pi cachemgr_passwd pi wszystkie program przekierowujący /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 możliwa sieć wewnętrzna 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 # niezarejestrowany porty 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 metoda CONNECT CONNECT http_access zezwól menedżerowi localhost http_access odmów menedżerowi http_access deny! http_access zezwól na localnet http_access zezwól na localhost http_access odmów wszystkie http_port 3128 przezroczysty umask 022 cache_mem 128 MB katalog_pamięci podręcznej ufs / var / spool / squid3 1500 16256 katalog_kopii_zadanych / var / spool / squid3 ern ^ ftp: 1440 20% 10080 refresh_pattern ^ gopher: 1440 0% 1440 refresh_pattern -i (/ cgi-bin / | \?) 0 0% 0 refresh_pattern. 0 20% 4320
Zapisz i wyjdź. Zainicjuj katalogi pamięci podręcznej za pomocą następującego polecenia, a następnie edytuj skrypt, którego użyjemy katify wszystkie obrazy:
sudo squid3 -z nano /home/pi/cats.pl
Wklej:
#! / usr / bin / perl $ | = 1; $ count = 0; $ pid = $$; open (DEBUG, '>> / tmp / cats.log'); automatyczne spłukiwanie DEBUG 1; drukuj DEBUG "##################################################################### ######################### \ n "; while () chomp $ _; if (m / nosquid /) print DEBUG "Wpisz NOSQUID: $ url \ n"; wypisz „$ _ \ n”; print DEBUG "Wyjście NOSQUID: $ _ \ n"; elsif ($ _ = ~ /(.*\.jpg)/i) $ url = 1 $; print DEBUG "Wejście: $ url \ n"; system („/ usr / bin / wget”, „-q”, „-O”, „/ var / www / images / $ pid- $ count.gif”, „http://thecatapi.com/api/images / get? format = src & type = gif & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; wydrukuj „http://127.0.0.1/images/$pid-$count.gif\n”; elsif ($ _ = ~ /(.*\.gif)/i) $ url = 1 $; print DEBUG "Wejście: $ url \ n"; system („/ usr / bin / wget”, „-q”, „-O”, „/ var / www / images / $ pid- $ count.gif”, „http://thecatapi.com/api/images / get? format = src & type = gif & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; wydrukuj „http://127.0.0.1/images/$pid-$count.gif\n”; elsif ($ _ = ~ /(.*\.png)/i) $ url = 1 $; print DEBUG "Wejście: $ url \ n"; system („/ usr / bin / wget”, „-q”, „-O”, „/ var / www / images / $ pid- $ count.gif”, „http://thecatapi.com/api/images / get? format = src & type = gif & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; wydrukuj „http://127.0.0.1/images/$pid-$count.gif\n”; elsif ($ _ = ~ /(.*\.jpeg)/i) $ url = 1 $; print DEBUG "Wejście: $ url \ n"; system („/ usr / bin / wget”, „-q”, „-O”, „/ var / www / images / $ pid- $ count.gif”, „http://thecatapi.com/api/images / get? format = src & type = gif & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; wydrukuj „http://127.0.0.1/images/$pid-$count.gif\n”; else print "$ _ \ n"; $ count ++;
Spraw, aby skrypt był wykonywalny, a także musimy stworzyć katalogi, z którymi będzie on działał.
sudo chmod + x cats.pl sudo mkdir / var / www / images sudo chmod 777 / var / www / images sudo usermod -a -G www-data proxy sudo chown www-data: www-data / var / www sudo chown www -dane: www-data / var / www / images touch /tmp/cats.log chmod 777 /tmp/cats.log
Możesz dostosować dziennik w dowolnym momencie za pomocą:
tail -f /tmp/cats.log
Spróbuj zalogować się na Pintereście, a nagle wszystkie te głupie projekty roślin doniczkowych DIY i wybór mod męskich będą znacznie bardziej atrakcyjne.
Jeśli wolisz wyświetlać obrazy do góry nogami (podziękowania dla oryginalnego skryptu dla Ex-Parrot, zmodyfikowałem tylko, aby rozwiązać niektóre błędy uprawnień), Stwórz upsidedown.pl i wklej poniżej.
#! / usr / bin / perl $ | = 1; $ count = 0; $ pid = $$; while () chomp $ _; if ($ _ = ~ /(.*\.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"; wydrukuj „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"; wydrukuj „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"; wydrukuj „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"; wydrukuj „http://127.0.0.1/images/$pid-$count.jpeg\n”; else print "$ _ \ n" ;; $ count ++;
Wykonaj pozostałe powyższe kroki, zmieniając nazwę pliku, aby skrypt był wykonywalny i zmodyfikuj konfigurację Squid, aby wskazywała upsidedown.pl zamiast cats.pl. Na koniec musisz ponownie uruchomić Squid za pomocą:
usługa sudo squid3 restart
W obu przypadkach wyniki są niesamowite. Jeśli wprowadzisz jakiekolwiek modyfikacje lub ulepszysz te skrypty dzięki dodatkowym funkcjom, pozwól mi w komentarzach i umieść link Pastebin do skryptu.
Potrzebujesz czegoś bardziej skomplikowanego? Możesz spróbować połączyć ten projekt z Raspberry Pi NAS Zamień Raspberry Pi w skrzynkę NAS Zamień Raspberry Pi w skrzynkę NAS Czy masz kilka zewnętrznych dysków twardych i Raspberry Pi? Stwórz z nich tanie, podłączone do sieci urządzenie pamięci masowej o niskiej mocy. Chociaż wynik końcowy z pewnością nie będzie tak… lub zawsze działającym narzędziem do pobierania torrentów Jak zamienić Raspberry Pi w nieustannie pobieraną megalitę Jak zamienić Raspberry Pi w nieustannie pobieraną megalitę Zrób swoją rolę na całym świecie „Linux Distribution Network”, budując dedykowany, bezpieczny megawith pobierający torrenty, który zużywa zaledwie 10 W. Będzie oczywiście oparty na Raspberry Pi. !