
рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рд╕рдВрдкреВрд░реНрдг рдХреНрд░рд╛рдВрддрд┐ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
1) рдПрдХ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рд╡рд┐рддрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд░реНрд╡рд░
2) рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░
3) 15 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп
рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдкреНрд░реЙрдХреНрд╕реА рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ рдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ рдЗрди рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реНрдХреНрд╡реАрдб:
рдПрд╕рдПрд▓ рд▓реЛрдХрд▓рдиреЗрдЯ src 192.168.0.0/24
http_access рд▓реЛрдХрд▓рдиреЗрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
http_port 3128 рдкрд╛рд░рджрд░реНрд╢реА
url_rewrite_program/usr/local/bin/flip.pl
рдХрд╛рд░реНрддрд┐рдХреА / var / www / рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧреА
рдЖрдкрдХреЛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЪреВрдВрдХрд┐ ubuntu рд╡рд┐рджреНрд░реВрдк рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛
рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯред /Usr/local/bin/flip.pl рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ
#! / usr / рдмрд┐рди / рдкрд░реНрд▓
$ | = 1;
$ рдЧрд┐рдирддреА = 0;
$ pid = $$;
рдЬрдмрдХрд┐ (<>) {
chomp $ _;
рдЕрдЧрд░ ($ _ = ~ /(.*\.jpg)/i) {
$ url = $ 1;
рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.jpg", "$ url");
рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.jpg");
рдкреНрд░рд┐рдВрдЯ "http://127.0.0.1/images/$pid-$count.jpg\n";
}
elsif ($ _ = ~ /(.*\.gif)/i) {
$ url = $ 1;
рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.gif", "$ url");
рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.gif");
"http://127.0.0.1/images/$pid-$count.gif\n" рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ;
}
elsif ($ _ = ~ /(.*\.png)/i) {
$ url = $ 1;
рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / wget", "-q", "-O", "/ var / www / images / $ pid- $ count.png", "$ url");
рд╕рд┐рд╕реНрдЯрдо ("/ usr / bin / mogrify", "-flip", "/ var / www / images / $ pid- $ count.png");
рдкреНрд░рд┐рдВрдЯ "http://127.0.0.1/images/$pid-$count.png\n";
}
рдФрд░ {
рдкреНрд░рд┐рдВрдЯ "$ _ \ n" ;;
}
$ рдЧрд┐рдирддреА ++;
}
рдЙрд╕рдХреЗ рдмрд╛рдж, iptables рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ:
рд╕реВрджреЛ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128