Comment créer un réseau WiFi transmettant uniquement des images de chat avec un Raspberry Pi

Comment créer un réseau WiFi transmettant uniquement des images de chat avec un Raspberry Pi / DIY

C'est un scénario d'usage courant: vous souhaitez diffuser un réseau Wi-Fi public accessible à tous, mais vous devez également respecter les règles strictes imposant que seules les images de chats soient autorisées. Bonne nouvelle: votre Raspberry Pi est un parfait transmoggification machine. Intrigué? Continuer à lire.

Ce dont vous aurez besoin

  • Raspberry Pi modèle B (Nouveau sur Raspberry Pi? Voici tout ce qu'un débutant aurait besoin de savoir Vient d'acheter un Raspberry Pi? 11 Ce que vous devez savoir Vraiment acheté un Raspberry Pi? 11 Ce que vous devez savoir Dans cette vidéo, nous expliquons tout ce que vous pourriez avoir besoin de savoir. si vous venez d'acheter un Raspberry Pi ou si vous envisagez de vous en procurer un. Lire la suite, au format vidéo)
  • Carte SD 4 Go ou supérieure
  • câble Ethernet
  • Adaptateur WiFi compatible
  • Câble d'alimentation et adaptateur MicroUSB

La théorie

Ce projet au départ est identique au routeur Onion. Construisez votre propre: Safeplug (Boîte de proxy Tor) Créez votre propre: Safeplug (Boîte de proxy Tor) Pourquoi payer 50 $ pour une boîte de proxy Tor lorsque vous pouvez créer le vôtre avec un Raspberry Pi et un USB WiFi dongle? Lire la suite, nous avons construit quelques semaines en arrière. Nous allons d’abord transformer le Raspberry Pi en un réseau WiFi standard, puis placer un proxy au milieu. Le proxy filtrera les publications via un script Perl, qui remplacera les images de chaque requête HTTP par des GIF cat de TheCatAPI.com. Regardez comme des utilisateurs confus sont à la fois extrêmement frustrés et étrangement calmés. Voici la BBC, modifications post-chat.

Faire un réseau WiFi

Etant donné que cette partie du didacticiel est identique à celle du routeur DIY Onion, créez votre propre: Safeplug (boîte de proxy Tor) Créez votre propre: Safeplug (Boîte de proxy Tor) Pourquoi payer 50 USD pour une boîte de proxy Tor lorsque vous pouvez créer votre propre un dongle WiFi Raspberry Pi et USB? Lire la suite, veuillez suivre les instructions jusqu’au point Installer Tor.

Le seul petit changement que nous devons faire est de diffuser un réseau WiFi ouvert au lieu d’un réseau sécurisé avec WPA. Une fois que vous avez suivi la configuration, changez /etc/hostapd/hostapd.conf, coller à la place dans les configurations suivantes. Redémarrer pour appliquer les modifications.

interface = pilote wlan0 = nl80211 ssid = chatons hw_mode = g canal = 6 auth_algs = 1 wmm_enabled = 0

Vous devriez maintenant avoir un réseau sans fil en cours de diffusion sur votre Raspberry Pi et qui est accessible au public. La suite de ce guide se concentrera sur la réalisation de choses intéressantes.

Si les choses ne fonctionnent pas, tapez:

ifconfig -a 

et recherchez une adresse IP sur wlan0. Si aucun n’est assigné au redémarrage, essayez ce qui suit:

sudo nano / etc / default / ifplugd 

Changer les lignes suivantes de:

INTERFACES = "auto" HOTPLUG_INTERFACES = "tous" 

à:

INTERFACES = "eth0" HOTPLUG_INTERFACES = "eth0" 

Redémarrez et vérifiez que vous pouvez vous connecter au réseau WiFi et accéder à Internet..

Squid Proxy et IPTables

Commencez par installer les composants requis, puis créez une nouvelle table de routage. Nous servirons des images du Raspberry Pi plus tard, nous aurons donc également besoin du serveur Web Apache..

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

Collez ce qui suit:

iptables -t nat -A POSTROUTING -j MASQUERADE iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j DNAT - vers-destination 192.168.42.1:3128 iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 

Sauvegarder, puis quitter.

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

Ignorer les avertissements, cela signifie simplement que nous n’avons pas respecté certaines règles de Debian (sans rien casser). Enfin, nous avons encore l'ancien iptables règles au démarrage, supprimez donc la ligne suivante de / etc / network / interfaces

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

(Supprimer ou commenter)

Puis redémarrez. Ensuite, nous allons supprimer la configuration par défaut du proxy Squid et en créer une nouvelle..

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

Collez ce qui suit dans le fichier vierge:

cache_mgr pi cachemgr_passwd pi all redirect_program /home/pi/cats.pl gestionnaire 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 réseau interne possible 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 Safe 1045-35535 # unregister 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 méthode CONNECT CONNECT http_acc permet au gestionnaire localhost http_access refuser le gestionnaire http_access deny! Safe_ports http_access refus_signal! http_access allow localnet http_access allow localhost http_access nier tout http_port 3128 transparent umask 022 cache_mem 128 Mo cache_dir ufs / var / spool / squid3 1500 16 256 rép_presse / 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 

Sauvegarder et quitter. Initialisez les répertoires de cache avec la commande suivante, puis éditez le script que nous utiliserons pour catifier toutes les images:

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

Coller dans:

#! / usr / bin / perl $ | = 1; $ count = 0; $ pid = $$; open (DEBUG, '>> / tmp / cats.log'); autoflush DEBUG 1; print DEBUG "############################################## ############################ \ n "; tandis que (<>) chomp $ _; if (m / nosquid /) print DEBUG "Entrée NOSQUID: $ url \ n"; print "$ _ \ n"; print DEBUG "NOSQUID en sortie: $ _ \ n";  elsif ($ _ = ~ /(.*\.jpg)/i) $ url = $ 1; print DEBUG "Entrée: $ url \ n"; système ("/ 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 "Entrée: $ url \ n"; système ("/ 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 "Entrée: $ url \ n"; système ("/ 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 "Entrée: $ url \ n"; système ("/ 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 ++;  

Rendre le script exécutable, et nous avons aussi besoin de créer des répertoires pour qu’il fonctionne avec.

sudo chmod + x cats.pl sudo mkdir / var / www / images sudo chmod 777 / var / www / images sudo usermod -a -G proxy de données www sud data chown www-data / var / www sudo chown www -data: www-data / var / www / images touch /tmp/cats.log chmod 777 /tmp/cats.log 

Vous pouvez suivre le journal à tout moment avec:

tail -f /tmp/cats.log 

Essayez de vous connecter à Pinterest, et soudainement, tous ces stupides projets de plantes en pot de bricolage et de choix de vêtements pour hommes seront plus attrayants..

Si vous préférez servir des images à l'envers (crédit pour le script original à Ex-Parrot, je l'ai seulement modifié pour traiter certaines erreurs d'autorisations), créer upsidedown.pl et coller dans le suivant.

#! / usr / bin / perl $ | = 1; $ count = 0; $ pid = $$; tandis que (<>) 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 ++;  

Suivez les étapes ci-dessus, en changeant le nom du fichier, pour rendre le script exécutable, et modifiez la configuration de Squid pour qu'elle pointe vers upsidedown.pl au lieu de cats.pl. Enfin, vous devrez redémarrer Squid avec:

sudo service squid3 redémarrer 

Les résultats sont assez impressionnants dans les deux cas. Si vous apportez des modifications ou améliorez ces scripts avec des fonctionnalités supplémentaires, merci de me laisser les commentaires et de mettre un lien Pastebin vers votre script..

Besoin de quelque chose de plus compliqué? Vous pouvez essayer de combiner ce projet avec un NAS Raspberry Pi Transformez votre Raspberry Pi en une boîte NAS Transformez votre Raspberry Pi en une NAS Box Avez-vous quelques disques durs externes et un Raspberry Pi? Créez-y un périphérique de stockage en réseau bon marché et de faible puissance. Le résultat final ne sera certainement pas… Lire la suite ou un téléchargeur de torrent permanent Comment transformer votre Raspberry Pi en un téléchargement permanent Megalith Comment transformer votre Raspberry Pi en un téléchargement permanent Megalith Faites votre part pour le "réseau de distribution Linux" mondial en construisant un mégalithe dédié, sécurisé, à téléchargement torrent, qui utilise à peine 10 W de puissance. Il sera bien sûr basé sur un Raspberry Pi. Lire la suite !

En savoir plus sur: Raspberry Pi, Wi-Fi.