Для того чтобы устроить полный переворот интрернета нам понадобится
1) Сервер раздающий интернет для локальной сети
2) Прокси сервер
3) 15 минут времени
Схема очень проста. Прокси будет работать в прозрачном режиме и все ссылки на картинки передавать скрипту, который сможет эти картинки скачивать и изменять.
Настройка squid:
acl localnet src 192.168.0.0/24 http_access allow localnet http_port 3128 transparent url_rewrite_program /usr/local/bin/flip.pl
Картики будут падать в /var/www/images
Необходимо правильно настроить права. Так как в ubuntu squid будет работать из-под пользователя proxy
Скрипт на конвертирование картинок. Сохраним как /usr/local/bin/flip.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"); print "http://127.0.0.1/images/$pid-$count.jpgn"; } 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"); print "http://127.0.0.1/images/$pid-$count.gifn"; } 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"); print "http://127.0.0.1/images/$pid-$count.pngn"; } else { print "$_n";; } $count++; }
После этого включаем редирект на iptables:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
Автор: mgyk