Как сделать сеть WiFi, которая передает только изображения кошек с Raspberry Pi

  • Joseph Goodman
  • 0
  • 2831
  • 162
Реклама

Это типичный сценарий использования: вы хотите транслировать общедоступную сеть Wi-Fi для всех, но у вас есть строгие требования, разрешающие только изображения кошек. Отличные новости: ваш Raspberry Pi - идеальный transmoggification машина. Заинтригованный? Читать дальше.

Что вам нужно

  • Raspberry Pi модель B (Новичок в Raspberry Pi? Здесь есть все, что нужно знать новичку Только что купил Raspberry Pi? 11 вещей, которые нужно знать Только что купил Raspberry Pi? 11 Что вам нужно знать В этом видео мы объясняем все, что вам может понадобиться знать если вы только что купили Raspberry Pi или планируете его купить, в виде видео)
  • SD-карта 4 ГБ или больше
  • сетевой кабель
  • Совместимый адаптер WiFi
  • Кабель питания MicroUSB и адаптер

Теория

Этот проект начинается с Onion Router. Создайте свой собственный: Safeplug (Tor Proxy Box) Создайте свой собственный: Safeplug (Tor Proxy Box) Зачем платить 50 долларов за Tor прокси-бокс, если вы можете сделать свой собственный с Raspberry Pi и USB WiFi Dongle? мы построили несколько недель назад. Сначала мы сделаем Raspberry Pi в стандартной сети WiFi, а затем разместим прокси в середине. Прокси будет фильтровать сообщения с помощью сценария Perl, который будет заменять изображения в каждом HTTP-запросе GIF-файлами cat от TheCatAPI.com. Посмотрите, как озадаченные пользователи сильно расстроены, но в то же время странно успокоены. Вот BBC, пост-кошачьи модификации.

Создание сети WiFi

Так как эта часть учебного пособия точно такая же, как и у DIY Onion Router. Создайте свой собственный: Safeplug (Tor Proxy Box) Создайте свой собственный: Safeplug (Tor Proxy Box) Зачем платить 50 долларов за прокси-сервер Tor, когда вы можете сделать свой собственный с ключ Raspberry Pi и USB WiFi? Пожалуйста, следуйте инструкциям там до точки Установить Tor.

Единственное небольшое изменение, которое нам нужно сделать, - это широковещательная открытая сеть WiFi, а не защищенная с помощью WPA. После того, как вы выполните настройку, измените /etc/hostapd/hostapd.conf, вместо этого вставьте в следующие конфигурации. Перезапустите, чтобы применить изменения.

интерфейс = wlan0 драйвер = nl80211 ssid = котята hw_mode = g канал = 6 auth_algs = 1 wmm_enabled = 0

Теперь у вас должна быть беспроводная сеть, транслируемая на вашем Raspberry Pi, которая является общедоступной. Остальная часть этого руководства будет посвящена интересным вещам..

Если что-то не работает, введите:

ifconfig -a 

и ищите IP-адрес на wlan0. Если один из них не назначается при перезагрузке, попробуйте следующее:

sudo nano / etc / default / ifplugd 

Измените следующие строки из:

INTERFACES = "auto" HOTPLUG_INTERFACES = "all" 

чтобы:

ИНТЕРФЕЙСЫ = "eth0" HOTPLUG_INTERFACES = "eth0" 

Перезагрузитесь и убедитесь, что вы можете подключиться к сети Wi-Fi и получить доступ к Интернету..

Squid Proxy и IPTables

Начните с установки необходимых компонентов, затем создайте новую таблицу маршрутизации. Мы будем обслуживать изображения с Raspberry Pi позже, поэтому нам также понадобится веб-сервер Apache.

sudo apt-get установить squid3 bridge-utils apache perl nano iptables.sh 

Вставьте следующее:

iptables -t nat -A POSTROUTING -j MASQUERADE iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j DNAT - к месту назначения 192.168.42.1:3128 iptables -t nat -A ПРЕДОТВРАЩЕНИЕ -i eth1 -p tcp -m tcp --dport 80 -j НАПРАВИТЬ --to-ports 3128 

Сохранить, затем выйти.

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

Игнорируйте предупреждения, это просто означает, что мы не выполнили некоторые правила Debian (но ничего не нарушаем). Наконец, у нас еще есть старый Iptables правила загрузки, поэтому удалите следующую строку из / и т.д. / сеть / интерфейсы

до iptables-restore < /etc/iptables.ipv4.nat 

(Удалить или закомментировать)

Затем перезагрузите. Далее мы удалим конфигурацию прокси Squid по умолчанию и сделаем новую.

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

Вставьте следующее в пустой файл:

cache_mgr pi cachemgr_passwd pi все redirect_program /home/pi/cats.pl менеджер acl прото 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 возможная внутренняя сеть acl SSL_ports порт 443 acl Safe_ports порт 80 # http acl Safe_ports порт 21 # ftp acl Safe_ports порт 443 # https acl Safe_ports порт 70 # gopher acl Safe_ports порт 210 # wais acl Safe_ports порт 1025-65535 # незарегистрированный порты acl Safe_ports порт 280 # http-mgmt acl Safe_ports порт 488 # gss-http acl Safe_ports порт 591 # filemaker acl Safe_ports порт 777 # multiling http acl CONNECT метод ПОДКЛЮЧИТЬ http_access разрешить менеджер localhost http_access отклонить менеджер http_access deny! Safe_ports http_access deny ПОДКЛЮЧИТЬ! http_access разрешить localnet http_access разрешить localhost http_access запретить все http_port 3128 прозрачный 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 

Сохранить и выйти. Инициализируйте каталоги кеша следующей командой, затем отредактируйте скрипт, который мы будем использовать для catify все изображения:

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

Вставить в:

#! / usr / bin / perl $ | = 1; $ count = 0; $ pid = $$; open (DEBUG, '>> / tmp / cats.log'); автозапуск отладки 1; распечатать DEBUG "##################################################### ######################### \ п "; while () chomp $ _; if (m / nosquid /) print DEBUG "Input NOSQUID: $ url \ n"; выведите «$ _ \ n»; вывести отладку "Output NOSQUID: $ _ \ n";  elsif ($ _ = ~ /(.*\.jpg)/i) $ url = $ 1; печатать отладку "Input: $ url \ n"; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / получить формат = Src и тип = GIF & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; напечатать "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.*\.gif)/i) $ url = $ 1; печатать отладку "Input: $ url \ n"; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / получить формат = Src и тип = GIF & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; напечатать "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.*\.png)/i) $ url = $ 1; печатать отладку "Input: $ url \ n"; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / получить формат = Src и тип = GIF & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; напечатать "http://127.0.0.1/images/$pid-$count.gif\n";  elsif ($ _ = ~ /(.*\.jpeg)/i) $ url = $ 1; печатать отладку "Input: $ url \ n"; system ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "http://thecatapi.com/api/images / получить формат = Src и тип = GIF & nosquid "); chmod 0777, "/ var / www / images / $ pid- $ count.gif"; напечатать "http://127.0.0.1/images/$pid-$count.gif\n";  else print "$ _ \ n";  $ count ++;  

Сделайте сценарий исполняемым, и нам также нужно создать несколько каталогов для работы с ним..

sudo chmod + x cats.pl sudo mkdir / var / www / images sudo chmod 777 / var / www / images sudo usermod -a -G www-прокси-сервер данных 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 

Вы можете в любое время записать журнал с:

tail -f /tmp/cats.log 

Попробуйте войти в Pinterest, и вдруг все эти глупые проекты DIY в горшках и выбор мужской моды станут намного привлекательнее..

Если вы предпочитаете использовать перевернутые изображения (благодарность за оригинальный сценарий Ex-Parrot, я только изменил, чтобы иметь дело с некоторыми ошибками разрешений), Создайте upsidedown.pl и вставьте в следующее.

#! / 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"; напечатать "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"; распечатать "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 ++;  

Выполните другие шаги, описанные выше, изменив имя файла, чтобы сделать исполняемый скрипт, и измените конфигурацию Squid так, чтобы она указывала на upsidedown.pl вместо cats.pl. Наконец, вам нужно перезапустить Squid с помощью:

перезапуск службы sudo squid3 

Результаты довольно впечатляющие в любом случае. Если вы вносите какие-либо изменения или улучшаете эти сценарии с помощью дополнительных функций, пожалуйста, дайте мне в комментариях добавить ссылку на ваш скрипт в Pastebin..

Нужно что-то более сложное? Вы можете попробовать объединить этот проект с Raspberry Pi NAS. Превратите свой Raspberry Pi в ящик NAS. Превратите свой Raspberry Pi в ящик NAS. У вас есть пара внешних жестких дисков и Raspberry Pi? Сделайте из них дешевое сетевое подключенное устройство хранения с низким энергопотреблением. Хотя конечный результат определенно не будет таким ... или постоянно включенным торрент-загрузчиком. Как превратить ваш Raspberry Pi в постоянно загружаемый мегалит Как превратить ваш Raspberry Pi в постоянно загружаемый мегалит. «Сеть дистрибуции Linux» - создание выделенного безопасного защищенного мегалита с торрент-загрузкой, потребляющего всего 10 Вт. Это, конечно, будет основано на Raspberry Pi. !




О современных технологиях, просто и доступно.
Ваш гид в мире современных технологий. Узнайте как использовать технологии и гаджеты, которые нас окружают каждый день и научитесь открывать интересные вещи в Интернете.