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

  • Michael Fisher
  • 0
  • 4592
  • 452
Anuncio

Es un escenario de caso de uso común: desea transmitir una red WiFi pública para que cualquiera la use, pero tiene requisitos estrictos de que solo se permitan imágenes de gatos. Buenas noticias: tu Raspberry Pi es 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 necesitaría saber ¿Acabo de comprar una Raspberry Pi? 11 cosas que debes saber ¿Acabas de comprar una Raspberry Pi? 11 cosas que debes saber En este video, explicamos todo lo que necesitas saber si acabas de comprar una Raspberry Pi, o estás pensando en comprar una, en forma de video)
  • Tarjeta SD de 4GB o más grande
  • Cable de ethernet
  • Adaptador WiFi compatible
  • Cable de alimentación y adaptador MicroUSB

La teoría

Este proyecto comienza de manera idéntica al Onion Router. Crea tu propio: Safeplug (Tor Proxy Box) Crea el tuyo: Safeplug (Tor Proxy Box) ¿Por qué pagar $ 50 por un Tor proxy box cuando puedes hacer el tuyo con un Raspberry Pi y USB WiFi? dongle? 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 de Perl, que reemplazará las imágenes en cada solicitud HTTP con GIF cat de TheCatAPI.com. Observe cómo los usuarios aturdidos están intensamente frustrados, pero extrañamente tranquilos. Aquí está la BBC, modificaciones posteriores al gato.

Hacer una red WiFi

Dado que esta parte del tutorial es exactamente lo mismo que el DIY Onion Router Crea tu propio: Safeplug (Tor Proxy Box) Construye el tuyo: Safeplug (Tor Proxy Box) ¿Por qué pagar $ 50 por un Tor proxy box cuando puedes hacer el tuyo con un dongle Raspberry Pi y USB WiFi? , siga las instrucciones allí hasta el punto de Instalar Tor.

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

interfaz = controlador wlan0 = nl80211 ssid = Gatitos hw_mode = g canal = 6 auth_algs = 1 wmm_enabled = 0

Ahora debería tener una red inalámbrica transmitida en su Raspberry Pi que sea de acceso público. El resto de esta guía se centrará 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 

Cambie 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 acceda a Internet.

Squid Proxy e IPTables

Comience instalando los requisitos previos, luego cree una nueva tabla de enrutamiento. Serviremos imágenes de la Raspberry Pi más tarde, 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 en el arranque, así que elimine la siguiente línea de / etc / network / interfaces

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

(Eliminar o comentarlo)

Luego reinicie. A continuación, eliminaremos la configuración de proxy Squid predeterminada y crearemos 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 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 posible red interna acl SSL_ports puerto 443 acl Safe_ports puerto 80 # http acl Safe_ports puerto 21 # ftp acl Safe_ports puerto 443 # https acl Safe_ports puerto 70 # gopher acl Safe_ports puerto 210 # wais acl Safe_ports puerto 1025-65535 # no registrado puertos acl Safe_ports puerto 280 # http-mgmt acl Safe_ports puerto 488 # gss-http acl Safe_ports puerto 591 # filemaker acl Safe_ports puerto 777 # multilingue http acl método CONNECT CONNECT http_access permitir administrador localhost http_access negar administrador http_access negar! Safe_ports http_access negar CONECTAR SSL_ports http_access permitir localnet http_access permitir localhost http_access negar todos http_port 3128 transparente 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 

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

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

Pegar en:

#! / usr / bin / perl $ | = 1; $ cuenta = 0; $ pid = $$; abierto (DEPURACIÓN, '>> / tmp / cats.log'); depuración automática DEBUG 1; print DEBUG "############################################### #########################\norte"; while () chomp $ _; if (m / nosquid /) print DEBUG "Entrada NOSQUID: $ url \ n"; imprime "$ _ \ n"; print DEBUG "Salida NOSQUID: $ _ \ n";  elsif ($ _ = ~ /(.*\.jpg)/i) $ url = $ 1; print DEPURACIÓN "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; print DEPURACIÓN "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; print DEPURACIÓN "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; print DEPURACIÓN "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";  $ cuenta ++;  

Haga que el script sea ejecutable, y también necesitamos crear 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 touch /tmp/cats.log chmod 777 /tmp/cats.log 

Puede seguir el registro en cualquier momento con:

tail -f /tmp/cats.log 

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

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

#! / usr / bin / perl $ | = 1; $ cuenta = 0; $ pid = $$; while () chomp $ _; if ($ _ = ~ /(.*\.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" ;;  $ cuenta ++;  

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 vez de cats.pl. Por último, deberás reiniciar Squid con:

reinicio de sudo squid3 

Los resultados son bastante impresionantes en cualquier caso. Si realiza alguna modificación o mejora estos scripts con características adicionales, por favor déjeme en los comentarios y ponga un enlace 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 caja NAS. ¿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. Si bien el resultado final ciertamente no será como ... o un descargador de torrents siempre encendido Cómo convertir su Raspberry Pi en un megalito de descarga siempre activo Cómo convertir su Raspberry Pi en un megalito de descarga siempre activo Haga su parte para el mundo "Red de distribución de Linux" mediante la construcción de un megalito dedicado, seguro y de descarga de torrents que apenas utiliza 10 W de potencia. Por supuesto, se basará en una Raspberry Pi. !




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.