View difference between Paste ID: pcGtB9r3 and 0MzUt9Ww
SHOW: | | - or go back to the newest paste.
1
#!/bin/bash
2
wget -O /etc/apt/sources.list http://pastebin.com/raw/B9atBpyw
3
apt-get update
4
apt-get install build-essential devscripts libcppunit-dev openssl libssl-dev libcap-dev libsasl2-dev ccze pkg-config libkrb5-dev php5 apache2 -y
5
wget -O /etc/apache2/ports.conf http://pastebin.com/raw/4pvrFczN
6
# apabila belum memiliki folder cache, lalukan mkdir -p /cache , bila sudah memiliki folder cache, abaikan saja
7
mkdir -p /cache
8
chmod -R 777 /cache
9
cd /var/www
10
mkdir id
11
mkdir flash
12
wget http://c.speedtest.net/mini/mini.zip
13
unzip mini.zip
14
cp -arv mini/speedtest /var/www
15
wget -O /var/www/flash/speedtest.swf http://c.speedtest.net/flash/speedtest.swf
16
wget -O /var/www/flash/speedtest-long.swf http://c.speedtest.net/flash/speedtest-long.swf
17
wget -O /var/www/speedtest-config.php http://www.speedtest.net/speedtest-config.php
18
wget -O /var/www/ipaddress.php http://api.ookla.com/ipaddress.php
19
wget -O /var/www/id/speedtest-config.php http://www.speedtest.net/id/speedtest-config.php
20
cd
21
wget http://www.measurement-factory.com/tmp/ecap/libecap-1.0.0.tar.gz
22
tar xvf libecap-1.0.0.tar.gz
23
cd libecap-1.0.0
24
./configure && make && make install
25
echo '/usr/local/lib' >> /etc/ld.so.conf
26
ldconfig
27
cd
28
wget http://www.measurement-factory.com/tmp/ecap/ecap_adapter_sample-1.0.0.tar.gz
29
tar xzvf ecap_adapter_sample-1.0.0.tar.gz
30
wget -O /root/ecap_adapter_sample-1.0.0/src/adapter_async.cc http://pastebin.com/raw/2iaykJAw
31
cd ecap_adapter_sample-1.0.0
32
./configure && make && make install
33
cd
34
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.20.tar.gz
35
tar xzvf squid-3.5.20.tar.gz
36
wget -O squid_forgery.patch http://pastebin.com/raw/cs6fKaAh
37
cd squid-3.5.20
38
patch -p0 <../squid_forgery.patch
39
./configure --prefix=/usr \
40
--bindir=/usr/bin \
41
--sbindir=/usr/sbin \
42
--libexecdir=/usr/lib/squid \
43
--sysconfdir=/etc/squid \
44
--localstatedir=/var \
45
--libdir=/usr/lib \
46
--includedir=/usr/include \
47
--datadir=/usr/share/squid \
48
--mandir=/usr/share/man \
49
--enable-storeio=ufs,aufs,diskd,rock \
50
--enable-removal-policies=lru,heap \
51
--enable-stacktrace \
52
--enable-zph=qos \
53
--enable-ecap \
54
--enable-icap-client \
55
--enable-wccp \
56
--enable-wccpv2 \
57
--enable-linux-netfilter \
58
--disable-ident-lookup \
59
--disable-auth \
60
--disable-auth-basic \
61
--disable-auth-digest \
62
--disable-auth-negotiate \
63
--disable-auth-ntlm \
64
--disable-url-rewriter-helpers \
65
--disable-storeid-rewrite-helpers \
66
--with-logdir=/var/log/squid \
67
--with-pid-file=/var/run/squid.pid \
68
--with-swap-dir=/cache \
69
--enable-large-cache-files \
70
--with-large-files \
71
--with-openssl
72
make 
73
make install
74
cd
75
chown -R nobody /var/log/squid
76
chown -R nobody /cache
77
mkdir -p /etc/squid/ssl_cert
78
openssl req -new -newkey rsa:2048 -sha256 -days 3652 -nodes -x509 -keyout /etc/squid/ssl_cert/proxy.pem -out /etc/squid/ssl_cert/proxy.pem -subj "/C=ID/ST=Jawa Tengah/L=Semarang/O=TSI/CN=Terapi Squid Indonesia"
79
openssl x509 -in /etc/squid/ssl_cert/proxy.pem -outform DER -out /etc/squid/ssl_cert/proxy.der
80
openssl x509 -in /etc/squid/ssl_cert/proxy.pem -outform DER -out /etc/squid/ssl_cert/proxy.crt
81
cp -arv /etc/squid/ssl_cert /var/www
82
echo '#
83
dns_v4_first on
84
reply_header_access Alternate-Protocol deny all
85
reply_header_access Alt-Svc deny all
86
refresh_all_ims on
87
reload_into_ims on
88
89
#asumsi sisa hardisk 900Gban
90
#(720000000/256/256)*2
91
cache_dir aufs /cache 720000 21980 256
92
cache_mem 2 MB
93
cache_swap_high 95
94
cache_swap_low 90
95
96
cache_replacement_policy heap LFUDA
97
memory_replacement_policy heap GDSF
98
99
maximum_object_size 4096000 KB
100
maximum_object_size_in_memory 0 KB
101
102
cache_mgr cespun@gmail.com
103
visible_hostname cespun-proxy
104
strip_query_terms off
105
httpd_suppress_version_string on
106
log_mime_hdrs off
107
forwarded_for off
108
via off
109
110
coredump_dir /var/log/squid
111
logfile_rotate 1
112
113
max_filedescriptors 65536
114
115
fqdncache_size 4096
116
ipcache_size 4096
117
ipcache_high 95
118
ipcache_low 90
119
120
http_port 3128
121
http_port 3129 tproxy
122
#https_port 3127 tproxy ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_cert/warnet.pem
123
https_port 3127 tproxy ssl-bump generate-host-certificates=on cert=/etc/squid/ssl_cert/warnet.pem
124
125
qos_flows local-hit=0x30
126
127
acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
128
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
129
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
130
acl localnet src fc00::/7       # RFC 4193 local private network range
131
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
132
acl SSL_ports port 443
133
acl Safe_ports port 80		# http
134
acl Safe_ports port 182		# http
135
acl Safe_ports port 21		# ftp
136
acl Safe_ports port 443		# https
137
acl Safe_ports port 70		# gopher
138
acl Safe_ports port 210		# wais
139
acl Safe_ports port 1025-65535	# unregistered ports
140
acl Safe_ports port 280		# http-mgmt
141
acl Safe_ports port 488		# gss-http
142
acl Safe_ports port 591		# filemaker
143
acl Safe_ports port 777		# multiling http
144
acl PURGE method PURGE	
145
acl step1 at_step SslBump1
146
acl step2 at_step SslBump2
147
acl step3 at_step SslBump3
148
acl range206 req_header Range -i byte
149
acl iphone browser -i regexp (iPhone|iPad)
150
acl BB browser -i regexp (BlackBerry|PlayBook)
151
acl Winphone browser -i regexp (Windows.*Phone|Trident|IEMobile)
152
acl Android browser -i regexp Android
153
acl yt-rewrite url_regex -i ^https?\:\/\/(www|gaming)\.youtube\.com\/(watch\?v|embed|v)[=%&?\/]
154
acl youtube url_regex -i ^http.*(youtube|googlevideo|videoplayback|videogoodput)
155
acl urltomiss url_regex -i ^http.*(update|patch).*versi
156
acl urltomiss url_regex -i ^http.*versi.*(update|patch)
157
acl urltomiss url_regex -i ^http.*(update|patch|versi|version)\.ini
158
acl urltomiss url_regex -i ^http.*(hsupdate|antihack|xigncode|gameguard|captcha|gameid|game_id|idgame|id_game|launcher|\.aspx|\.html|\.shtml|\.xhtml|\.ini)
159
acl urltomiss url_regex -i ^http.*googlevideo\.com\/video(playback|goodput).*source[\&\=\?\/]yt_live
160
acl urltomiss url_regex -i ^http.*googleapis\.com\/game
161
acl patchpartial url_regex -i ^http.*patch.*garena
162
acl patchpartial url_regex -i ^http.*garena.*patch
163
acl httptomiss http_status 302
164
acl mimehtml rep_mime_type -i mime-type ^text/html
165
acl mimeplain rep_mime_type -i mime-type ^text/plain
166
acl tostoreid url_regex -i ^http.*(youtube|googlevideo|videoplayback|videogoodput)
167
acl tostoreid url_regex -i ^http.*(fbcdn|akamaihd)
168
acl tostoreid url_regex -i ^http.*c2lo\.reverbnation\.com\/audio_player\/ec_stream_song\/.*\?
169
acl tostoreid url_regex -i ^http.*\.c\.android\.clients\.google\.com\/market\/GetBinary\/GetBinary\/.*\/.*\?
170
acl tostoreid url_regex -i ^http.*datafilehost.*\/get\.php.*file\=.*
171
acl tostoreid url_regex -i ^http.*\.filehippo\.com\/.*\?
172
acl tostoreid url_regex -i ^http.*\.4shared\.com\/.*\/.*\/.*\/dlink.*preview.mp3
173
acl tostoreid url_regex -i ^http.*\.4shared\.com\/download\/.*\/.*\?tsid
174
acl tostoreid url_regex -i ^http.*steam(powered|content)
175
acl tostoreid url_regex -i ^http.*savefile\.co\:182\/.*\/.*\.(mp4|flv|3gp)
176
acl tostoreid url_regex -i ^http.*video\-http\.media\-imdb\.com\/.*\.mp4\?
177
acl tostoreid url_regex -i ^http.*\.dl\.sourceforge\.net
178
acl speedtest url_regex -i ^http.*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|speedtest|espeed|api\.ookla).*\/(speedtest\.swf|speedtest-long\.swf|latency\.txt|upload\.php|speedtest-config\.php|ipaddress\.php|random.*\.jpg)
179
acl blokir url_regex -i ^http.*kendedes\.uzone\.id
180
acl blokir url_regex -i ^http.*internetpositif\.uzone\.id
181
182
acl CONNECT method CONNECT
183
acl getmethod method GET
184
185
deny_info http://103.80.80.246 blokir
186
http_access deny blokir
187
188
http_access deny !Safe_ports
189
http_access deny CONNECT !SSL_ports
190
http_access allow localhost manager
191
http_access deny manager
192
http_access allow localhost purge
193
http_access deny purge
194
http_access allow localnet
195
http_access allow localhost
196
http_access deny all
197
198
access_log /var/log/squid/access.log !CONNECT
199
#access_log none
200
201
range_offset_limit none range206 patchpartial
202
range_offset_limit 128 KB range206 !patchpartial
203
quick_abort_min 1 KB
204
quick_abort_max 1 KB
205
quick_abort_pct 95
206
207
cache deny speedtest
208
cache deny urltomiss
209
cache deny localhost
210
ssl_bump splice localhost
211
ssl_bump peek step1 all
212
ssl_bump bump all
213
214
cache_peer 10.212.212.212 parent 8033 0 no-digest no-tproxy
215
dead_peer_timeout 5 seconds
216
cache_peer_access 10.212.212.212 allow speedtest
217
cache_peer_access 10.212.212.212 deny all
218
always_direct deny speedtest
219
never_direct allow speedtest
220
221
url_rewrite_access allow yt-rewrite !iphone !BB !Winphone !Android
222
url_rewrite_access deny all
223
url_rewrite_program /etc/squid/storerewrite.pl
224
url_rewrite_children 2000 startup=30 idle=1
225
226
request_header_access Accept-Encoding deny yt-rewrite !iphone !BB !Winphone !Android
227
#yt_quality: tiny = 144px small = 240px medium = 360px large = 480px HD720 = Hd720px
228
ecap_enable on
229
loadable_modules /usr/local/lib/ecap_adapter_modifying.so
230
ecap_service modif respmod_precache uri=ecap://e-cap.org/ecap/services/sample/modifying victim="enablejsapi" replacement="dash":"1","vq":"tiny","enablejsapi"
231
adaptation_access modif allow yt-rewrite !iphone !BB !Winphone !Android
232
adaptation_access modif deny all
233
234
store_id_bypass off
235
store_id_extras "%{Referer}>h"
236
store_id_program /etc/squid/storeid.pl
237
store_id_children 2000 startup=30 idle=1
238
store_id_access allow tostoreid
239
store_id_access deny all
240
241
store_miss deny youtube httptomiss
242
send_hit deny youtube httptomiss
243
store_miss deny youtube mimeplain
244
send_hit deny youtube mimeplain
245
store_miss deny mimehtml
246
send_hit deny mimehtml
247
store_miss deny urltomiss
248
send_hit deny urltomiss
249
store_miss deny speedtest
250
send_hit deny speedtest
251
252
refresh_pattern -i .* 0 90% 432000 override-expire override-lastmod reload-into-ims refresh-ims ignore-no-store ignore-must-revalidate ignore-private ignore-auth
253
254
max_stale 100 years ' > /etc/squid/squid.conf
255
256
echo '#!/usr/bin/perl
257
#!/usr/bin/perl
258
$|=1;
259
while (<>) {
260
@X = split;
261
if ($X[0] =~ m/^http.*/) {
262
	$url		= $X[0];
263
	$referer	= $X[1];
264
	$urlreferer	= $X[0] ." ". $X[1];	
265
} else { 
266
	$chanel		= $X[0];
267
	$url		= $X[1];
268
	$referer	= $X[2];
269
	$urlreferer	= $X[1] ." ". $X[2];
270
}
271
272
#youtube googlevideo
273
if ($url =~ m/^https?\:\/\/.*google.*video(playback|goodput).*/){
274
	@cpn	= m/[=%&?\/]cpn[=%&?\/]([^\&\s]*)/;
275
	@id	= m/[=%&?\/]id[=%&?\/]([^\&\s]*)/;
276
	@itag	= m/[=%&?\/]itag[=%&?\/]([\d]*)/;
277
	@range	= m/[=%&?\/]range[=%&?\/]([\d]*-[\d]*)/;
278
	@mime	= m/[=%&?\/]mime[=%&?\/]([^\&\s]*)/;
279
	if ($referer =~ m/^https?\:\/\/(www|gaming)\.youtube\.com\/(watch\?v|embed|v)[=%&?\/]([^\&\s\?]*)/){
280
		@id	= $3;
281
	} else {
282
		if (defined(@cpn[0])){
283
			if (-e "/var/log/squid/@cpn"){
284
				open FILE, "/var/log/squid/@cpn";
285
				@id = <FILE>;
286
				close FILE;
287
			}
288
		}
289
	}
290
	$out="OK store-id=http://squid/google/video/id=@id/itag=@itag/mime=@mime/range=@range";
291
292
#youtube parameter
293
} elsif (
294
	($url =~ m/^https?\:\/\/.*youtube.*(stream_204|watchtime|qoe|atr|csi_204|playback).*[=%&?\/]docid[=%&?\/]([^\&\s]*)/) ||
295
	($url =~ m/^https?\:\/\/.*youtube.*(ptracking|set_awesome).*[=%&?\/]video_id[=%&?\/]([^\&\s]*)/) ||
296
	($url =~ m/^https?\:\/\/.*youtube.*(player_204).*[=%&?\/]v[=%&?\/]([^\&\s]*)/)
297
	){
298
	@id	= $2;
299
	@cpn    = m/[=%&?\/]cpn[=%&?\/]([^\&\s]*)/;
300
	if ($referer !~ m/^https?\:\/\/(www|gaming)\.youtube\.com\/(watch\?v|embed|v)[=%&?\/]([^\&\s\?]*)/){
301
		unless (-e "/var/log/squid/@cpn"){
302
			open FILE, ">/var/log/squid/@cpn";
303
			print FILE @id;
304
			close FILE;
305
		}
306
	}
307
	$out = "ERR";
308
309
#utmgif
310
} elsif ($url =~ m/^https?\:\/\/www\.google-analytics\.com\/__utm\.gif\?.*/) {
311
	$out="OK store-id=http://squid/google-analytics/__utm.gif";
312
313
#fbcdn.net or akamaihd.net video range
314
} elsif ($url =~ m/^https?\:\/\/.*(fbcdn\.net|akamaihd\.net).*\/([\w-]+\.[\w]{2,4}).*(bytestart[=%&?\/][\d]+[&\/]byteend[=%&?\/][\d]+)/) {
315
	$out="OK store-id=http://squid/$1/$2/$3";
316
317
#fbcdn.net or akamaihd.net with size
318
} elsif ($url =~ m/^https?\:\/\/.*(fbcdn\.net|akamaihd\.net).*\/([a-zA-Z][\d]+[x][\d]+\/[\w-]+\.[\w]{2,4})($|\?)/) {
319
	$out="OK store-id=http://squid/$1/$2";
320
321
#fbcdn.net or akamaihd.net safe_image.php
322
} elsif ($url =~ m/^https?\:\/\/.*(fbcdn\.net|akamaihd\.net).*\/safe_image\.php\?(.*)/) {
323
	$out="OK store-id=http://squid/$1/$2";
324
325
#reverbnation
326
} elsif ($url =~ m/^https?\:\/\/c2lo\.reverbnation\.com\/audio_player\/ec_stream_song\/(.*)\?.*/) {
327
	$out="OK store-id=http://squid/reverbnation/$1";
328
 
329
#playstore
330
} elsif ($url =~ m/^https?\:\/\/.*\.c\.android\.clients\.google\.com\/market\/GetBinary\/GetBinary\/(.*\/.*)\?.*/) {
331
	$out="OK store-id=http://squid/android/market/$1";
332
333
334
#filehost
335
} elsif ($url =~ m/^https?\:\/\/.*datafilehost.*\/get\.php.*file\=(.*)/) {
336
	$out="OK store-id=http://squid/datafilehost/$1";
337
338
339
#speedtest
340
} elsif ($url =~ m/^https?\:\/\/.*(speedtest|espeed).*\/(.*\.(txt|jpg)).*/) {
341
	$out="OK store-id=http://squid/speedtest/$2";
342
343
344
#filehippo
345
} elsif ($url =~ m/^https?\:\/\/.*\.filehippo\.com\/.*\/([\w-]+\.[\w]{2,4})\?.*/) {
346
	$out="OK store-id=http://squid/filehippo/$1";
347
348
349
#4shared preview.mp3
350
} elsif ($url =~ m/^https?\:\/\/.*\.4shared\.com\/.*\/(.*\/.*)\/dlink.*preview.mp3/) {
351
	$out="OK store-id=http://squid/4shared/preview/$1";
352
353
#4shared
354
} elsif ($url =~ m/^https?\:\/\/.*\.4shared\.com\/download\/(.*\/.*)\?tsid.*/) {
355
	$out="OK store-id=http://squid/4shared/download/$1";
356
357
#savefile-animeindo.tv
358
} elsif ($url =~ m/^https?:\/\/www\.savefile\.co\:182\/.*\/(.*\.(mp4|flv|3gp)).*/) {
359
	$out="OK store-id=http://squid/savefile:182/$1";
360
361
#imdb
362
} elsif ($url =~ m/^https?\:\/\/video\-http\.media\-imdb\.com\/(.*\.mp4)\?.*/) {
363
	$out="OK store-id=http://squid/imdb/$1";
364
365
#sourceforge
366
} elsif ($url =~ m/^https?\:\/\/.*\.dl\.sourceforge\.net\/([\w-]+\.[\w]{2,3})/) {
367
	$out="OK store-id=http://squid/sourceforge/$1";
368
369
#steampowered dota 2
370
} elsif ($url =~ m/^https?\:\/\/(.*steam(powered|content).*\/(client|depot)\/[\d]+\/(chunk|manifest)\/[^\?\s]*).*/) {
371
	$out="OK store-id=http://squid/$1";
372
373
} else {
374
	$out="ERR";
375
}
376
377
if ($X[0] =~ m/^http.*/) {
378
	print "$out\n";
379
} else {
380
	print "$chanel $out\n";
381
}
382
} ' > /etc/squid/storeid.pl
383
384
385
echo '#!/usr/bin/perl
386
387
$|=1;
388
while (<>) {
389
@X = split;
390
if ($X[0] =~ m/^http.*/) {
391
	$url		= $X[0];
392
	$referer	= $X[1];
393
	$urlreferer	= $X[0] ." ". $X[1];	
394
} else { 
395
	$chanel		= $X[0];
396
	$url		= $X[1];
397
	$referer	= $X[2];
398
	$urlreferer	= $X[1] ." ". $X[2];
399
}
400
401
402
#watch rewrite
403
if ($url=~ m/(^https?\:\/\/(www|gaming)\.youtube\.com\/(watch\?v|embed|v)[\=\%\&\?\/].*[\=\%\&\?\/])(nohtml5\=1|html5\=1)(.*)/) {
404
    $out="OK rewrite-url=$1" . "nohtml5=1" . $5;
405
406
} elsif ($url=~ m/(^https?\:\/\/(www|gaming)\.youtube\.com\/(watch\?v|embed|v)[\=\%\&\?\/].*[\=\%\&\?\/].*)/) {
407
    $out="OK rewrite-url=$1" . "&nohtml5=1";
408
409
} elsif ($url=~ m/(^https?\:\/\/(www|gaming)\.youtube\.com\/(watch\?v)[\=\%\&\?\/][^\?^\&]*$)/) {
410
    $out="OK rewrite-url=$1" ."&nohtml5=1";
411
412
} elsif ($url=~ m/(^https?\:\/\/(www|gaming)\.youtube\.com\/(embed|v)[\=\%\&\?\/][^\?^\&]*$)/) {
413
    $out="OK rewrite-url=$1" ."?nohtml5=1";
414
415
} else {
416
$out="ERR";
417
}
418
419
if ($X[0] =~ m/^http.*/) {
420
	print "$out\n";
421
} else {
422
	print "$chanel $out\n";
423
}
424
} ' > /etc/squid/storerewrite.pl
425
426
427
chmod +x /etc/squid/storeid.pl
428
chmod +x /etc/squid/storerewrite.pl
429
chmod +x /etc/squid/squid.conf
430
squid -zN
431
wget -O /etc/init.d/squid http://pastebin.com/raw/A77yKwbi
432
chmod +x /etc/init.d/squid
433
update-rc.d squid defaults
434
service squid start
435
echo '#tproxy
436
iptables -t mangle -N DIVERT
437
iptables -t mangle -A DIVERT -j MARK --set-mark 1
438
iptables -t mangle -A DIVERT -j ACCEPT
439
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
440
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
441
iptables -t mangle -A PREROUTING -p tcp --dport 8080 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
442
iptables -t mangle -A PREROUTING -p tcp --dport 8777 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
443
iptables -t mangle -A PREROUTING -p tcp --dport 182 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
444
iptables -t mangle -A PREROUTING -p tcp --dport 5050 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
445
iptables -t mangle -A PREROUTING -p tcp --dport 443 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3127
446
ip rule add fwmark 1 lookup 212
447
ip route add local 0.0.0.0/0 dev lo table 212
448
449
#intercept
450
#iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3129
451
#iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3127
452
453
exit 0' > /etc/rc.local
454
reboot