
Для того чтобы устроить полный переворот интрернета нам понадобится
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.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");
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");
print "http://127.0.0.1/images/$pid-$count.png\n";
}
else {
print "$_\n";;
}
$count++;
}
После этого включаем редирект на iptables:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
