Переворачиваем интернет на 1-е апреля

в 13:36, , рубрики: linux, proxy, squid, метки: ,

image

Для того чтобы устроить полный переворот интрернета нам понадобится

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

Поделиться

* - обязательные к заполнению поля