Cómo hacer una red WiFi que solo transmita imágenes de gato con una frambuesa Pi

Mira como los usuarios confusos están intensamente frustrados, pero extrañamente calmado.

Mira como los usuarios confusos están intensamente frustrados, pero extrañamente calmado.
Anuncio

Es un escenario de uso común: desea transmitir una red WiFi pública para que la use cualquiera, pero tiene requisitos estrictos de que solo se permitan imágenes de gato. Una gran noticia: su Raspberry Pi es una máquina de transmoggificación perfecta. ¿Intrigado? Sigue leyendo.

Lo que necesitarás

  • Raspberry Pi modelo B (Nuevo en Raspberry Pi) Aquí hay todo lo que un principiante debería saber. Acaba de comprar una Raspberry Pi. 11 cosas que necesitas saber Acabas de comprar una Raspberry Pi. 11 cosas que necesitas saber En este video, explicamos todo lo que Puede que necesite saber si acaba de comprar una Raspberry Pi, o si está pensando en comprar una. Lea más, en formato de video)
  • Tarjeta SD de 4GB o mayor
  • Cable de ethernet
  • Adaptador WiFi compatible
  • Cable de alimentación MicroUSB y adaptador

La teoría

Este proyecto comienza de manera idéntica al Onion Router. Crea tu propio: Safeplug (Tor Proxy Box) Crea tu propio: Safeplug (Tor Proxy Box). ¿Por qué pagar $ 50 por un Tor proxy box cuando puedes hacer tu propio con un Raspberry Pi y USB WiFi? dongle? Lea más que construimos hace unas semanas. Primero haremos la Raspberry Pi en una red WiFi estándar, luego colocaremos un proxy en el medio. El proxy filtrar las publicaciones a través de un script Perl, que reemplazará las imágenes en cada solicitud HTTP con cat GIF de TheCatAPI.com. Mira como los usuarios confusos están intensamente frustrados, pero extrañamente calmado. Aquí está la BBC, modificaciones posteriores al gato.

post-cat-bbc

Hacer una red WiFi

Dado que esta parte del tutorial es exactamente la misma que la del DIY Onion Router, crea la tuya propia: Safeplug (Tor Proxy Box) Crea tu propia: Safeplug (Tor Proxy Box) ¿Por qué pagar $ 50 por una caja proxy Tor cuando puedes hacer la tuya? ¿un dongle WiFi Raspberry Pi y USB? Lea más, siga las instrucciones allí hasta el punto de Instalar Tor .

El único cambio pequeño que debemos hacer es transmitir una red WiFi abierta en lugar de una protegida con WPA. Una vez que haya seguido la configuración allí, cambie /etc/hostapd/hostapd.conf, pegando en las siguientes configuraciones en su lugar. Reinicie para aplicar los cambios.

interface=wlan0 driver=nl80211 ssid=Kittens hw_mode=g channel=6 auth_algs=1 wmm_enabled=0 

Ahora debe tener una red inalámbrica que se transmita en su Raspberry Pi que sea de acceso público. El resto de esta guía se enfocará en lograr que sucedan cosas interesantes.

Si las cosas no funcionan, escriba:

 ifconfig -a 

y busque una dirección IP en wlan0. Si no se le asigna uno al reiniciar, intente lo siguiente:

 sudo nano /etc/default/ifplugd 

Cambiar las siguientes líneas de:

 INTERFACES="auto" HOTPLUG_INTERFACES="all" 

a:

 INTERFACES="eth0" HOTPLUG_INTERFACES="eth0" 

Reinicie y verifique que puede conectarse a la red WiFi y acceder a Internet.

Squid Proxy y IPTables

Comience instalando los requisitos previos, luego cree una nueva tabla de enrutamiento. Más adelante publicaremos imágenes de la Raspberry Pi, por lo que también necesitaremos el servidor web Apache.

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

Pega lo siguiente:

 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 --dport 80 -j REDIRECT --to-ports 3128 

Guardar, luego salir.

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

iptable-sh-error

Ignora las advertencias, solo significa que no hemos cumplido con algunas reglas de Debian (pero no se rompe nada). Por último, todavía tenemos las antiguas reglas de iptables en el arranque, por lo tanto, elimine la siguiente línea de / etc / network / interfaces

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

(Eliminar o comentarlo)

Luego reinicie. Siguiente Eliminaremos la configuración de proxy Squid predeterminada y crearemos una nueva.

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

Pega lo siguiente en el archivo en blanco:

 cache_mgr pi cachemgr_passwd pi all 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 possible internal network 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 # unregistered ports 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 method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_access allow localhost http_access deny all 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_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 

Guardar y Salir. Inicialice los directorios de la memoria caché con el siguiente comando, luego edite la secuencia de comandos que usaremos para catalogar todas las imágenes:

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

Pegar en:

 #!/usr/bin/perl $|=1; $count = 0; $pid = $$; open (DEBUG, '>>/tmp/cats.log'); autoflush DEBUG 1; print DEBUG "########################################################################\n"; while () { chomp $_; if (m/nosquid/) { print DEBUG "Input NOSQUID: $url\n"; print "$_\n"; print DEBUG "Output NOSQUID: $_\n"; } elsif ($_ =~ /(.*\.jpg")/i) { $url = $1; print DEBUG "Input: $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"; print "http://127.0.0.1/images/$pid-$count.gif\n"; } elsif ($_ =~ /(.*\.gif)/i) { $url = $1; print DEBUG "Input: $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"; print "http://127.0.0.1/images/$pid-$count.gif\n"; } elsif ($_ =~ /(.*\.png")/i) { $url = $1; print DEBUG "Input: $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"; print "http://127.0.0.1/images/$pid-$count.gif\n"; } elsif ($_ =~ /(.*\.jpeg)/i) { $url = $1; print DEBUG "Input: $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"; print "http://127.0.0.1/images/$pid-$count.gif\n"; } else { print "$_\n"; } $count++; } 

Haga que el script sea ejecutable, y también necesitamos hacer algunos directorios para que funcione.

 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-data:www-data /var/www/images touch /tmp/cats.log chmod 777 /tmp/cats.log 

Puede alinear el registro en cualquier momento con:

 tail -f /tmp/cats.log 

registro de cola

Intenta iniciar sesión en Pinterest y, de repente, todos esos estúpidos proyectos de planta en macetas de bricolaje y moda para hombre son mucho más atractivos.

mejor-pinterest

Si prefieres mostrar imágenes al revés (crédito por el guión original a Ex-Parrot, solo lo modifiqué para tratar algunos errores de permisos), crea upsidedown.pl y pega lo siguiente.

 #!/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""; print "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"; print "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""; print "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"; print "http://127.0.0.1/images/$pid-$count.jpeg\n"; } else { print "$_\n";; } $count++; } 

Siga los otros pasos anteriores, cambie el nombre del archivo, haga que el script sea ejecutable y modifique la configuración de Squid para que apunte a upsidedown.pl en lugar de a cats.pl. Por último, deberás reiniciar Squid con:

 sudo service squid3 restart 

Los resultados son geniales en ambos casos. Si realiza alguna modificación o mejora en estos scripts con características adicionales, déjenme en los comentarios y coloque un enlace Pastebin en su script.

¿Necesitas algo más complicado? Podría intentar combinar este proyecto con un NAS Raspberry Pi. Convertir su Raspberry Pi en un NAS Box. Convertir su Raspberry Pi en un NAS Box. ¿Tiene un par de discos duros externos y una Raspberry Pi? Haga de ellos un dispositivo de almacenamiento conectado en red de baja potencia y económico. Mientras que el resultado final ciertamente no será tan ... Leer más o un programa de descarga de torrents siempre activado Cómo convertir tu Raspberry Pi en una siempre activa Descarga de Megalith Cómo convertir tu Raspberry Pi en una siempre activa Descarga de Megalith Haz tu formar parte de la "red de distribución Linux" global mediante la construcción de un megalito de descargas de torrents dedicado y seguro que apenas usa 10W de potencia. Por supuesto, se basará en una Raspberry Pi. Lee mas !

In this article