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

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

Es un caso de uso común: desea transmitir una red WiFi pública para que la use cualquier persona, pero tiene requisitos estrictos de que solo se permiten imágenes de gatos. Buenas noticias: tu Raspberry Pi es una perfecta transmogificación máquina. Intrigado? Sigue leyendo.

Lo que necesitarás

  • Raspberry Pi modelo B (¿Nuevo en Raspberry Pi? Aquí está todo lo que un principiante debería saber. ¿Sólo compró una Raspberry Pi? 11 Cosas que debe saber Acaba de comprar una Raspberry Pi? 11 Cosas que debe saber En este video, le explicamos todo lo que necesita saber Si acaba de comprar una Raspberry Pi, o está pensando en comprar una. Lea más, en forma de video)
  • Tarjeta SD de 4GB o mayor
  • Cable de ethernet
  • Adaptador WiFi compatible
  • Adaptador y cable de alimentación MicroUSB

La teoría

Este proyecto comienza idéntico al Onion Router. Crea tu propio: Safeplug (Tor Proxy Box) Construye el tuyo: Safeplug (Tor Proxy Box) ¿Por qué pagar $ 50 por un Tor Pro Proxy cuando puedes hacer el tuyo con una Raspberry Pi y USB WiFi? dongle Leer más construimos hace unas semanas. Primero convertiremos 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. Observe cómo los usuarios aturdidos se sienten intensamente frustrados, pero a la vez extrañamente calmados. Aquí está la BBC, modificaciones post-cat..

Haciendo una red wifi

Ya que esta parte del tutorial es exactamente igual a la del enrutador de cebolla DIY. Cree su propio: Safeplug (Tor Proxy Box) Construya el suyo: Safeplug (Tor Proxy Box) ¿Por qué pagar $ 50 por un Tor Pro Proxy cuando puede hacer el suyo con ¿Una Raspberry Pi y un USB WiFi dongle? Lea más, siga las instrucciones hasta el punto de Instalar tor.

El único pequeño cambio que debemos hacer es transmitir una red WiFi abierta en lugar de una protegida con WPA. Una vez que hayas seguido la configuración allí, cambia /etc/hostapd/hostapd.conf, pegar 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 debería tener una red inalámbrica que se está transmitiendo en su Raspberry Pi y que sea de acceso público. El resto de esta guía se centrará en conseguir que sucedan cosas interesantes..

Si las cosas no funcionan, escribe:

ifconfig -a 

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

sudo nano / etc / default / ifplugd 

Cambia las siguientes líneas desde:

INTERFACES = "auto" HOTPLUG_INTERFACES = "todos" 

a:

INTERFACES = "eth0" HOTPLUG_INTERFACES = "eth0" 

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

Squid Proxy e IPTables

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

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

Pegue 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 

Ignore las advertencias, solo significa que no hemos cumplido con algunas reglas de Debian (pero no rompe nada). Por último, todavía tenemos el viejo iptables reglas de arranque, así que quite la siguiente línea de / etc / network / interfaces

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

(Eliminar o comentarlo)

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

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

Pegue lo siguiente en el archivo en blanco:

cache_mgr pi cachemgr_passwd pi all redirect_program /home/pi/cats.pl administrador de acl 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 posible red interna acl Puerto SSL_ports puerto 443 acl Puerto Safe_ports 80 # puerto http Safe Safe 21 # ftp acl Puerto Safe_ports 443 # https puerto SafeLports 70 # gopher acl Puerto Safe_ports 210 # wais acl Safe_ports puerto 1025-65535 # sin registrar 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 método CONNECT http_access permita al gerente localhost http_access deny manager http_access deny! Safe_ports http_access deny http_access permitir localnet http_access permitir localhost http_access negar todo http_port 3128 umask transparente 022 cache_mem 128 MB dir_ caché 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 

Guardar y Salir. Inicialice los directorios del caché con el siguiente comando, luego edite el script que usaremos para catificar todas las imagenes

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

Pegar en

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

Haga el script 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 -datos: www-data / var / www / images toque /tmp/cats.log chmod 777 /tmp/cats.log 

Puedes seguir el registro en cualquier momento con:

cola -f /tmp/cats.log 

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

Si prefieres servir imágenes al revés. (Crédito por el script original a Ex-Parrot, solo lo modifiqué para solucionar algunos errores de permisos), crear upsidedown.pl y pegar en el siguiente.

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

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

servicio sudo squid3 reinicio 

Los resultados son bastante impresionantes en ambos casos. Si realiza alguna modificación o mejora en estos scripts con funciones adicionales, permítame incluir los comentarios y poner un enlace de Pastebin a su script..

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

Explora más acerca de: Raspberry Pi, Wi-Fi.