AdZapper is a redirector for squid that intercepts advertising (banners, popup windows, flash animations, etc), page counters and some web bugs (as found)
. It will help users to get rid of those annoying popup windows, flash animations and malicious cookies and will help you save bandwidth and cache resources.
We will make use of three scripts:
The installation procedure is very simple. Download and extract the tarball, then copy the squid_redirect, wrapzap and zapchain scripts to /usr/local/bin, or wherever you prefer.
# tar -zxvf adzap-xxxxxxxx.tar.gz [...] # cd adzap-xxxxxxxx/scripts # cp squid_redirect wrapzap zapchain /usr/local/bin/
The zaps directory contains the images that will replace the zapped ads: copy them to where the web server can find them. They're not really works of art, so feel free to customize them.
# scp -r ../zaps root@www.kernel-panic.it:/var/www/icons/
AdZapper configuration takes place in the wrapzap script; below is a sample configuration script:
#!/bin/sh squidclamav=/usr/local/bin/squidclamav zapper=/usr/local/bin/squid_redirect # Setting ZAP_MODE to "CLEAR" will cause the zapper to use transparent images, # thus completely hiding ads. This may, however, hide useful markup. ZAP_MODE= # Base URL of the directory containing the replacement images ZAP_BASE=http://www.kernel-panic.it/icons/zaps ZAP_BASE_SSL=https://www.kernel-panic.it/icons/zaps # The following variables contain the path to extra pattern files. # ZAP_PREMATCH patterns are consulted before the main pattern list. Use it to # prevent overzapping by some erroneous patterns in the main pattern file. ZAP_PREMATCH= # ZAP_POSTMATCH patterns are consulted after the main pattern list. Use it to # add extra patterns ZAP_POSTMATCH= # ZAP_MATCH patterns are consulted instead of the main pattern list. Use it to # fully customize AdZapper ZAP_MATCH= # Should you use Apache2 instead of Squid, set this to "NULL" ZAP_NO_CHANGE= # Placeholder images names. "Clear" versions have "-clear" appended to the root # portion of the file name; e.g. "ad.gif" becomes "ad-clear.gif". STUBURL_AD=$ZAP_BASE/ad.gif STUBURL_ADSSL=$ZAP_BASE_SSL/ad.gif STUBURL_ADBG=$ZAP_BASE/adbg.gif STUBURL_ADJS=$ZAP_BASE/no-op.js STUBURL_ADJSTEXT= STUBURL_ADHTML=$ZAP_BASE/no-op.html STUBURL_ADHTMLTEXT= STUBURL_ADMP3=$ZAP_BASE/ad.mp3 STUBURL_ADPOPUP=$ZAP_BASE/closepopup.html STUBURL_ADSWF=$ZAP_BASE/ad.swf STUBURL_COUNTER=$ZAP_BASE/counter.gif STUBURL_COUNTERJS=$ZAP_BASE/no-op-counter.js STUBURL_COUNTERHTML=$ZAP_BASE/no-op-counter.html STUBURL_WEBBUG=$ZAP_BASE/webbug.gif STUBURL_WEBBUGJS=$ZAP_BASE/webbug.js STUBURL_WEBBUGHTML=$ZAP_BASE/webbug.html # Set this to "1" to use the rewrite facility to get the printer-friendly # version of some pages STUBURL_PRINT= export ZAP_MODE ZAP_BASE ZAP_BASE_SSL ZAP_PREMATCH ZAP_POSTMATCH ZAP_MATCH ZAP_NO_CHANGE export STUBURL_AD STUBURL_ADSSL STUBURL_ADJS STUBURL_ADHTML STUBURL_ADMP3 \ STUBURL_ADPOPUP STUBURL_ADSWF STUBURL_COUNTER STUBURL_COUNTERJS \ STUBURL_COUNTERHTML STUBURL_WEBBUG STUBURL_WEBBUGJS STUBURL_WEBBUGHTML \ STUBURL_PRINT STUBURL_ADHTMLTEXT STUBURL_ADJSTEXT # Exec the real zapper (chained with SquidClamav) exec /usr/local/bin/zapchain "$zapper" "$squidclamav"
Now we only have to update the url_rewrite_program in Squid's configuration file:
url_rewrite_program /usr/local/bin/wrapzap
and reload Squid.
# squid -k reconfigure
Now the ads should magically disappear from web sites!