Como fazer uma rede wifi que só transmite imagens do gato com um pi framboesa

É um cenário de caso de uso comum: você quer transmitir uma rede WiFi pública para qualquer um usar, mas você tem exigências rigorosas que só é permitida imagens do gato. Grande notícia: o Raspberry Pi é um perfeito transmoggification

máquina. Intrigado? Leia.

O que você precisa

  • Raspberry Pi modelo B (Novo para Raspberry Pi? Aqui está tudo que um iniciante precisa saber, em forma de vídeo)
  • 4GB ou cartão SD maior
  • Cabo Ethernet
  • adaptador WiFi compatível
  • MicroUSB cabo de alimentação e o adaptador

A teoria

Este projeto começa idêntico ao Onion Router nós construímos algumas semanas atrás. Nós vamos fazer o Raspberry Pi em uma rede Wi-Fi padrão em primeiro lugar, em seguida, coloque um proxy no meio. O proxy será filtrar mensagens através de um script Perl, que irá substituir as imagens em cada solicitação HTTP com GIFs gato de TheCatAPI.com. Veja como usuários befuddled são ambos intensamente frustrados, mas estranhamente acalmou. Aqui está a BBC, modificações pós-gato.Construa seu próprio: Safeplug (Box Proxy Tor)Construa seu próprio: Safeplug (Box Proxy Tor)Por que pagar US $ 50 para uma caixa de proxy Tor quando você pode fazer o seu próprio com um dongle Raspberry Pi e Wi-Fi USB?consulte Mais informação

pós-cat-bbc

Fazendo uma rede Wi-Fi

Uma vez que esta parte do tutorial é exatamente o mesmo que o DIY Onion Router, Por favor, siga as instruções até o ponto de instalar Tor.Construa seu próprio: Safeplug (Box Proxy Tor)Construa seu próprio: Safeplug (Box Proxy Tor)Por que pagar US $ 50 para uma caixa de proxy Tor quando você pode fazer o seu próprio com um dongle Raspberry Pi e Wi-Fi USB?consulte Mais informação

A única pequena mudança que precisamos fazer é transmitir uma rede Wi-Fi aberta em vez de um protegido com WPA. Uma vez que você seguiu a configuração lá, mudança /etc/hostapd/hostapd.conf, colando as seguintes configurações em vez disso. Reiniciar para aplicar as alterações.

interface=wlan0driver=nl80211ssid=Kittenshw_mode=gchannel=6auth_algs=1wmm_enabled=0

Agora você deve ter uma rede sem fio que está sendo transmitido em seu Pi Raspberry que é acessível ao público. O restante deste guia irá se concentrar em obter as coisas interessantes acontecendo.

Se as coisas não estão funcionando, digite:

ifconfig -uma

e procurar por um endereço IP na wlan0. Se a pessoa não está sendo atribuído na reinicialização, tente o seguinte:

Video: Como fazer gato miar menos - Papo Pet por Pet Anjo

sudo nano / Etc / default / ifplugd

Alterar as seguintes linhas de:

INTERFACES="auto"HOTPLUG_INTERFACES="todos"

para:

INTERFACES="eth0"HOTPLUG_INTERFACES="eth0"

Reiniciar e verificar que você é capaz de se conectar à rede Wi-Fi, e acessar a Internet.

Squid Proxy e IPTables

Comece por instalar os pré-requisitos, em seguida, criar uma nova tabela de roteamento. Nós estaremos servindo imagens do Raspberry Pi mais tarde, por isso também vai precisar de servidor web Apache.

sudo apt-get instalar squid3 ponte-utils Apache perlnano iptables.sh

Cole a seguinte:

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

Salvar, em seguida, sair.

chmod +x iptables.shsudo cp iptables.sh /etc/init.d/sudo update-rc.d iptables.sh começar 99

iptable-sh-erro



Ignorar os avisos, isso significa apenas que não cumpriram algumas regras Debian (mas não quebra nada). Por último, ainda temos a velha iptables regras sobre a inicialização, então remova a seguinte linha de / etc / rede / interfaces

até iptables-restore lt; /etc/iptables.ipv4.nat

(Excluir ou comentá-la)

Em seguida, reinicie. Em seguida, vamos apagar o padrão Proxy Squid configuração, e fazer um novo.

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

Cole o seguinte no arquivo em branco:

cache_mgr picachemgr_passwd pi allredirect_program gerente /home/pi/cats.placl proto cache_objectacl localhost src 127.0.0.1/32 :: 1acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 :: 1acl localnet src 192.168.42.0/24 # RFC1918 possível rede internaporta acl SSL_ports 443acl porta Safe_ports 80 # httpporta acl Safe_ports 21 # ftpporta acl Safe_ports 443 # httpsporta acl Safe_ports 70 # gopherporta acl Safe_ports 210 # waisporta acl Safe_ports 1025-65535 # portos não registradasporta acl Safe_ports 280 # Http-mgmtporta acl Safe_ports 488 # GSS-httpporta acl Safe_ports 591 # filemakerporta acl Safe_ports 777 # MultiLing httpacl CONNECT método CONNECThttp_access permitir gerente localhosthttp_access negar managerhttp_access negar !Safe_portshttp_access deny CONNECT !SSL_portshttp_access permitir localnethttp_access permitir localhosthttp_access negar allhttp_port 3128 transparenteumask 022cache_mem 128 MBcache_dir ufs / var / spool / squid3 1500 16 256coredump_dir / var / spool / squid3refresh_pattern ^ ftp: 1440 20% 10080refresh_pattern ^ Gopher: 1440 0% -i 1440refresh_pattern (/ Cgi-bin /|?) 0 0% 0refresh_pattern . 0 20% 4320

Salvar e sair. Inicializar os diretórios de cache com o seguinte comando, em seguida, editar o script usaremos para catify todas as imagens:

sudo squid3 -znano /home/pi/cats.pl

Cole em:

#! / Usr / bin / perl$|=1-$ count = 0-$ pid = $$-aberto (DEPURAR, `Gt; gt; /tmp/cats.log`)-autoflush DEPURAR 1-DEBUG de impressão "################################################## ###################### n"-enquanto (lt;gt;) {chomp $ _-E se (m / nosquid /) {DEBUG de impressão "NOSQUID de entrada: $ url n"-impressão "$ _ n"-DEBUG de impressão "Saída NOSQUID: $ _ n"-}ELSIF ($ _ =~ /(.* . Jpg)/Eu) {$ url = $ 1-DEBUG de impressão "Entrada: $ url n"-sistema("/ Usr / bin / wget", "-q", "-O","/ Var / www / images /$ pid-$ count.gif", "http://thecatapi.com/api/images/get?format=src&tipo = gif&nosquid")-chmod 0777,"/ Var / www / images /$ pid-$ count.gif"-impressão "http://127.0.0.1/images/$ pid-$ count.gif n"-}ELSIF ($ _ =~ /(.* . Gif)/Eu) {$ url = $ 1-DEBUG de impressão "Entrada: $ url n"-sistema("/ Usr / bin / wget", "-q", "-O","/ Var / www / images /$ pid-$ count.gif", "http://thecatapi.com/api/images/get?format=src&tipo = gif&nosquid")-chmod 0777,"/ Var / www / images /$ pid-$ count.gif"-impressão "http://127.0.0.1/images/$ pid-$ count.gif n"-}ELSIF ($ _ =~ /(.* . Png)/Eu) {$ url = $ 1-DEBUG de impressão "Entrada: $ url n"-sistema("/ Usr / bin / wget", "-q", "-O","/ Var / www / images /$ pid-$ count.gif", "http://thecatapi.com/api/images/get?format=src&tipo = gif&nosquid")-chmod 0777,"/ Var / www / images /$ pid-$ count.gif"-impressão "http://127.0.0.1/images/$ pid-$ count.gif n"-}ELSIF ($ _ =~ /(.* . Jpeg)/Eu) {$ url = $ 1-DEBUG de impressão "Entrada: $ url n"-sistema("/ Usr / bin / wget", "-q", "-O","/ Var / www / images /$ pid-$ count.gif", "http://thecatapi.com/api/images/get?format=src&tipo = gif&nosquid")-chmod 0777,"/ Var / www / images /$ pid-$ count.gif"-impressão "http://127.0.0.1/images/$ pid-$ count.gif n"-}outro {impressão "$ _ n"-}$ count++-}

Tornar o script executável, e também definido para fazer alguns diretórios para que ele funcione com.

sudo chmod +x cats.plsudo mkdir / Var / www / imagenssudo chmod 777 / var / www / imagenssudo usermod -um proxy -G-www dadossudo chown www-data: www-data / var / wwwsudo chown www-data: www-data / var / www / imagestocar /tmp/cats.logchmod 777 /tmp/cats.log

Você cauda do log a qualquer momento com possível:

rabo -f /tmp/cats.log

tail-log

Tente fazer login em Pinterest, e de repente todos esses estúpidos DIY vasos de projetos de plantas e formas dos homens picaretas e será muito mais atraente.

melhor-Pinterest

Se você preferir servem imagens de cabeça para baixo (Crédito para o roteiro original para Ex-Papagaio, eu só modificado para lidar com alguns erros de permissão), crio upsidedown.pl e colar no seguinte.

#! / Usr / bin / perl$|=1-$ count = 0-$ pid = $$-enquanto (lt;gt;) {chomp $ _-E se ($ _ =~ /(.* . Jpg)/Eu) {$ url = $ 1-sistema("/ Usr / bin / wget", "-q", "-O","/ Var / www / images /$ pid-$ count.jpg", "$ url")-sistema("/ Usr / bin / mogrify", "-giro","/ Var / www / images /$ pid-$ count.jpg")-chmod 0777,"/ Var / www / images /$ pid-$ count.jpg"-impressão "http://127.0.0.1/images/$ pid-$ count.jpg n"-}ELSIF ($ _ =~ /(.* . Gif)/Eu) {$ url = $ 1-sistema("/ Usr / bin / wget", "-q", "-O","/ Var / www / images /$ pid-$ count.gif", "$ url")-sistema("/ Usr / bin / mogrify", "-giro","/ Var / www / images /$ pid-$ count.gif")-chmod 0777,"/ Var / www / images /$ pid-$ count.gif"-impressão "http://127.0.0.1/images/$ pid-$ count.gif n"-}ELSIF ($ _ =~ /(.* . Png)/Eu) {$ url = $ 1-sistema("/ Usr / bin / wget", "-q", "-O","/ Var / www / images /$ pid-$ count.png", "$ url")-sistema("/ Usr / bin / mogrify", "-giro","/ Var / www / images /$ pid-$ count.png")-chmod 0777,"/ Var / www / images /$ pid-$ count.png"-impressão "http://127.0.0.1/images/$ pid-$ count.PNG n"-}ELSIF ($ _ =~ /(.* . Jpeg)/Eu) {$ url = $ 1-sistema("/ Usr / bin / wget", "-q", "-O","/ Var / www / images /$ pid-$ count.jpeg", "$ url")-sistema("/ Usr / bin / mogrify", "-giro","/ Var / www / images /$ pid-$ count.jpeg")-chmod 0777,"/ Var / www / images /$ pid-$ count.jpeg"-impressão "http://127.0.0.1/images/$ pid-$ count.jpeg n"-}outro {impressão "$ _ n"--}$ count++-}

Seguir os outros passos acima, mudando o nome do arquivo, para fazer o script executável, e modificar a configuração do Squid para apontar para upsidedown.pl ao invés de cats.pl. Por último, você precisa reiniciar o Squid com:

sudo serviço restart squid3

Os resultados são incríveis em ambos os casos. Se você fazer quaisquer modificações ou melhorar esses scripts com recursos adicionais, por favor, deixe-me nos comentários e colocar um link Pastebin para o seu script.

Video: COMO INTRODUZIR UM NOVO GATO - Aloka por Gatos #4

Precisa de algo mais complicado? Você poderia tentar combinar este projeto com um Raspberry Pi NAS ou um always-on torrent downloader!Transforme sua Raspberry Pi em uma caixa de NASTransforme sua Raspberry Pi em uma caixa de NASVocê tem um par de discos rígidos externos em torno de mentir e de um Pi Raspberry? Faça um dispositivo barato, de baixa potência rede anexado armazenamento fora delas. Embora o resultado final certamente não vai ser tão ...consulte Mais informação


Artigos relacionados